diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 562de40..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/base) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index b51aba4..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/base) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 99f9850..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '12 12 * * 1' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n +``` -```javascript -var ns = require( '@stdlib/ndarray-base' ); +If no recognized module system is present, access bundle contents via the global scope: + +```html + ``` #### ns @@ -324,11 +330,21 @@ The namespace contains the following sub-namespaces: -```javascript -var objectKeys = require( '@stdlib/utils-keys' ); -var ns = require( '@stdlib/ndarray-base' ); +```html + + + + + + + + ```
@@ -417,445 +433,445 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. -[@stdlib/ndarray/base/assert]: https://github.com/stdlib-js/ndarray-base-assert +[@stdlib/ndarray/base/assert]: https://github.com/stdlib-js/ndarray-base-assert/tree/umd -[@stdlib/ndarray/base/any-by]: https://github.com/stdlib-js/ndarray-base-any-by +[@stdlib/ndarray/base/any-by]: https://github.com/stdlib-js/ndarray-base-any-by/tree/umd -[@stdlib/ndarray/base/any]: https://github.com/stdlib-js/ndarray-base-any +[@stdlib/ndarray/base/any]: https://github.com/stdlib-js/ndarray-base-any/tree/umd -[@stdlib/ndarray/base/append-singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-append-singleton-dimensions +[@stdlib/ndarray/base/append-singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-append-singleton-dimensions/tree/umd -[@stdlib/ndarray/base/assign-diagonal]: https://github.com/stdlib-js/ndarray-base-assign-diagonal +[@stdlib/ndarray/base/assign-diagonal]: https://github.com/stdlib-js/ndarray-base-assign-diagonal/tree/umd -[@stdlib/ndarray/base/assign-scalar]: https://github.com/stdlib-js/ndarray-base-assign-scalar +[@stdlib/ndarray/base/assign-scalar]: https://github.com/stdlib-js/ndarray-base-assign-scalar/tree/umd -[@stdlib/ndarray/base/assign]: https://github.com/stdlib-js/ndarray-base-assign +[@stdlib/ndarray/base/assign]: https://github.com/stdlib-js/ndarray-base-assign/tree/umd -[@stdlib/ndarray/base/atleast1d]: https://github.com/stdlib-js/ndarray-base-atleast1d +[@stdlib/ndarray/base/atleast1d]: https://github.com/stdlib-js/ndarray-base-atleast1d/tree/umd -[@stdlib/ndarray/base/atleast2d]: https://github.com/stdlib-js/ndarray-base-atleast2d +[@stdlib/ndarray/base/atleast2d]: https://github.com/stdlib-js/ndarray-base-atleast2d/tree/umd -[@stdlib/ndarray/base/atleast3d]: https://github.com/stdlib-js/ndarray-base-atleast3d +[@stdlib/ndarray/base/atleast3d]: https://github.com/stdlib-js/ndarray-base-atleast3d/tree/umd -[@stdlib/ndarray/base/atleastnd]: https://github.com/stdlib-js/ndarray-base-atleastnd +[@stdlib/ndarray/base/atleastnd]: https://github.com/stdlib-js/ndarray-base-atleastnd/tree/umd -[@stdlib/ndarray/base/binary-input-casting-dtype]: https://github.com/stdlib-js/ndarray-base-binary-input-casting-dtype +[@stdlib/ndarray/base/binary-input-casting-dtype]: https://github.com/stdlib-js/ndarray-base-binary-input-casting-dtype/tree/umd -[@stdlib/ndarray/base/binary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-binary-loop-interchange-order +[@stdlib/ndarray/base/binary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-binary-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/binary-output-dtype]: https://github.com/stdlib-js/ndarray-base-binary-output-dtype +[@stdlib/ndarray/base/binary-output-dtype]: https://github.com/stdlib-js/ndarray-base-binary-output-dtype/tree/umd -[@stdlib/ndarray/base/binary-reduce-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-binary-reduce-strided1d-dispatch-factory +[@stdlib/ndarray/base/binary-reduce-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-binary-reduce-strided1d-dispatch-factory/tree/umd -[@stdlib/ndarray/base/binary-reduce-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-binary-reduce-strided1d-dispatch +[@stdlib/ndarray/base/binary-reduce-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-binary-reduce-strided1d-dispatch/tree/umd -[@stdlib/ndarray/base/binary-reduce-strided1d]: https://github.com/stdlib-js/ndarray-base-binary-reduce-strided1d +[@stdlib/ndarray/base/binary-reduce-strided1d]: https://github.com/stdlib-js/ndarray-base-binary-reduce-strided1d/tree/umd -[@stdlib/ndarray/base/binary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-binary-tiling-block-size +[@stdlib/ndarray/base/binary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-binary-tiling-block-size/tree/umd -[@stdlib/ndarray/base/binary]: https://github.com/stdlib-js/ndarray-base-binary +[@stdlib/ndarray/base/binary]: https://github.com/stdlib-js/ndarray-base-binary/tree/umd -[@stdlib/ndarray/base/bind2vind]: https://github.com/stdlib-js/ndarray-base-bind2vind +[@stdlib/ndarray/base/bind2vind]: https://github.com/stdlib-js/ndarray-base-bind2vind/tree/umd -[@stdlib/ndarray/base/broadcast-array-except-dimensions]: https://github.com/stdlib-js/ndarray-base-broadcast-array-except-dimensions +[@stdlib/ndarray/base/broadcast-array-except-dimensions]: https://github.com/stdlib-js/ndarray-base-broadcast-array-except-dimensions/tree/umd -[@stdlib/ndarray/base/broadcast-array]: https://github.com/stdlib-js/ndarray-base-broadcast-array +[@stdlib/ndarray/base/broadcast-array]: https://github.com/stdlib-js/ndarray-base-broadcast-array/tree/umd -[@stdlib/ndarray/base/broadcast-arrays]: https://github.com/stdlib-js/ndarray-base-broadcast-arrays +[@stdlib/ndarray/base/broadcast-arrays]: https://github.com/stdlib-js/ndarray-base-broadcast-arrays/tree/umd -[@stdlib/ndarray/base/broadcast-scalar-like]: https://github.com/stdlib-js/ndarray-base-broadcast-scalar-like +[@stdlib/ndarray/base/broadcast-scalar-like]: https://github.com/stdlib-js/ndarray-base-broadcast-scalar-like/tree/umd -[@stdlib/ndarray/base/broadcast-scalar]: https://github.com/stdlib-js/ndarray-base-broadcast-scalar +[@stdlib/ndarray/base/broadcast-scalar]: https://github.com/stdlib-js/ndarray-base-broadcast-scalar/tree/umd -[@stdlib/ndarray/base/broadcast-shapes]: https://github.com/stdlib-js/ndarray-base-broadcast-shapes +[@stdlib/ndarray/base/broadcast-shapes]: https://github.com/stdlib-js/ndarray-base-broadcast-shapes/tree/umd -[@stdlib/ndarray/base/buffer-ctors]: https://github.com/stdlib-js/ndarray-base-buffer-ctors +[@stdlib/ndarray/base/buffer-ctors]: https://github.com/stdlib-js/ndarray-base-buffer-ctors/tree/umd -[@stdlib/ndarray/base/buffer-dtype-enum]: https://github.com/stdlib-js/ndarray-base-buffer-dtype-enum +[@stdlib/ndarray/base/buffer-dtype-enum]: https://github.com/stdlib-js/ndarray-base-buffer-dtype-enum/tree/umd -[@stdlib/ndarray/base/buffer-dtype]: https://github.com/stdlib-js/ndarray-base-buffer-dtype +[@stdlib/ndarray/base/buffer-dtype]: https://github.com/stdlib-js/ndarray-base-buffer-dtype/tree/umd -[@stdlib/ndarray/base/buffer]: https://github.com/stdlib-js/ndarray-base-buffer +[@stdlib/ndarray/base/buffer]: https://github.com/stdlib-js/ndarray-base-buffer/tree/umd -[@stdlib/ndarray/base/bytes-per-element]: https://github.com/stdlib-js/ndarray-base-bytes-per-element +[@stdlib/ndarray/base/bytes-per-element]: https://github.com/stdlib-js/ndarray-base-bytes-per-element/tree/umd -[@stdlib/ndarray/base/char2dtype]: https://github.com/stdlib-js/ndarray-base-char2dtype +[@stdlib/ndarray/base/char2dtype]: https://github.com/stdlib-js/ndarray-base-char2dtype/tree/umd -[@stdlib/ndarray/base/clamp-index]: https://github.com/stdlib-js/ndarray-base-clamp-index +[@stdlib/ndarray/base/clamp-index]: https://github.com/stdlib-js/ndarray-base-clamp-index/tree/umd -[@stdlib/ndarray/base/clip-index]: https://github.com/stdlib-js/ndarray-base-clip-index +[@stdlib/ndarray/base/clip-index]: https://github.com/stdlib-js/ndarray-base-clip-index/tree/umd -[@stdlib/ndarray/base/complement-shape]: https://github.com/stdlib-js/ndarray-base-complement-shape +[@stdlib/ndarray/base/complement-shape]: https://github.com/stdlib-js/ndarray-base-complement-shape/tree/umd -[@stdlib/ndarray/base/consensus-order]: https://github.com/stdlib-js/ndarray-base-consensus-order +[@stdlib/ndarray/base/consensus-order]: https://github.com/stdlib-js/ndarray-base-consensus-order/tree/umd -[@stdlib/ndarray/base/copy]: https://github.com/stdlib-js/ndarray-base-copy +[@stdlib/ndarray/base/copy]: https://github.com/stdlib-js/ndarray-base-copy/tree/umd -[@stdlib/ndarray/base/count-falsy]: https://github.com/stdlib-js/ndarray-base-count-falsy +[@stdlib/ndarray/base/count-falsy]: https://github.com/stdlib-js/ndarray-base-count-falsy/tree/umd -[@stdlib/ndarray/base/count-if]: https://github.com/stdlib-js/ndarray-base-count-if +[@stdlib/ndarray/base/count-if]: https://github.com/stdlib-js/ndarray-base-count-if/tree/umd -[@stdlib/ndarray/base/count-truthy]: https://github.com/stdlib-js/ndarray-base-count-truthy +[@stdlib/ndarray/base/count-truthy]: https://github.com/stdlib-js/ndarray-base-count-truthy/tree/umd -[@stdlib/ndarray/base/ctor]: https://github.com/stdlib-js/ndarray-base-ctor +[@stdlib/ndarray/base/ctor]: https://github.com/stdlib-js/ndarray-base-ctor/tree/umd -[@stdlib/ndarray/base/data-buffer]: https://github.com/stdlib-js/ndarray-base-data-buffer +[@stdlib/ndarray/base/data-buffer]: https://github.com/stdlib-js/ndarray-base-data-buffer/tree/umd -[@stdlib/ndarray/base/descriptor]: https://github.com/stdlib-js/ndarray-base-descriptor +[@stdlib/ndarray/base/descriptor]: https://github.com/stdlib-js/ndarray-base-descriptor/tree/umd -[@stdlib/ndarray/base/diagonal]: https://github.com/stdlib-js/ndarray-base-diagonal +[@stdlib/ndarray/base/diagonal]: https://github.com/stdlib-js/ndarray-base-diagonal/tree/umd -[@stdlib/ndarray/base/dtype-alignment]: https://github.com/stdlib-js/ndarray-base-dtype-alignment +[@stdlib/ndarray/base/dtype-alignment]: https://github.com/stdlib-js/ndarray-base-dtype-alignment/tree/umd -[@stdlib/ndarray/base/dtype-char]: https://github.com/stdlib-js/ndarray-base-dtype-char +[@stdlib/ndarray/base/dtype-char]: https://github.com/stdlib-js/ndarray-base-dtype-char/tree/umd -[@stdlib/ndarray/base/dtype-chars]: https://github.com/stdlib-js/ndarray-base-dtype-chars +[@stdlib/ndarray/base/dtype-chars]: https://github.com/stdlib-js/ndarray-base-dtype-chars/tree/umd -[@stdlib/ndarray/base/dtype-desc]: https://github.com/stdlib-js/ndarray-base-dtype-desc +[@stdlib/ndarray/base/dtype-desc]: https://github.com/stdlib-js/ndarray-base-dtype-desc/tree/umd -[@stdlib/ndarray/base/dtype-enum2str]: https://github.com/stdlib-js/ndarray-base-dtype-enum2str +[@stdlib/ndarray/base/dtype-enum2str]: https://github.com/stdlib-js/ndarray-base-dtype-enum2str/tree/umd -[@stdlib/ndarray/base/dtype-enums]: https://github.com/stdlib-js/ndarray-base-dtype-enums +[@stdlib/ndarray/base/dtype-enums]: https://github.com/stdlib-js/ndarray-base-dtype-enums/tree/umd -[@stdlib/ndarray/base/dtype-objects]: https://github.com/stdlib-js/ndarray-base-dtype-objects +[@stdlib/ndarray/base/dtype-objects]: https://github.com/stdlib-js/ndarray-base-dtype-objects/tree/umd -[@stdlib/ndarray/base/dtype-resolve-enum]: https://github.com/stdlib-js/ndarray-base-dtype-resolve-enum +[@stdlib/ndarray/base/dtype-resolve-enum]: https://github.com/stdlib-js/ndarray-base-dtype-resolve-enum/tree/umd -[@stdlib/ndarray/base/dtype-resolve-str]: https://github.com/stdlib-js/ndarray-base-dtype-resolve-str +[@stdlib/ndarray/base/dtype-resolve-str]: https://github.com/stdlib-js/ndarray-base-dtype-resolve-str/tree/umd -[@stdlib/ndarray/base/dtype-str2enum]: https://github.com/stdlib-js/ndarray-base-dtype-str2enum +[@stdlib/ndarray/base/dtype-str2enum]: https://github.com/stdlib-js/ndarray-base-dtype-str2enum/tree/umd -[@stdlib/ndarray/base/dtype-strings]: https://github.com/stdlib-js/ndarray-base-dtype-strings +[@stdlib/ndarray/base/dtype-strings]: https://github.com/stdlib-js/ndarray-base-dtype-strings/tree/umd -[@stdlib/ndarray/base/dtype]: https://github.com/stdlib-js/ndarray-base-dtype +[@stdlib/ndarray/base/dtype]: https://github.com/stdlib-js/ndarray-base-dtype/tree/umd -[@stdlib/ndarray/base/dtype2c]: https://github.com/stdlib-js/ndarray-base-dtype2c +[@stdlib/ndarray/base/dtype2c]: https://github.com/stdlib-js/ndarray-base-dtype2c/tree/umd -[@stdlib/ndarray/base/dtypes2enums]: https://github.com/stdlib-js/ndarray-base-dtypes2enums +[@stdlib/ndarray/base/dtypes2enums]: https://github.com/stdlib-js/ndarray-base-dtypes2enums/tree/umd -[@stdlib/ndarray/base/dtypes2signatures]: https://github.com/stdlib-js/ndarray-base-dtypes2signatures +[@stdlib/ndarray/base/dtypes2signatures]: https://github.com/stdlib-js/ndarray-base-dtypes2signatures/tree/umd -[@stdlib/ndarray/base/dtypes2strings]: https://github.com/stdlib-js/ndarray-base-dtypes2strings +[@stdlib/ndarray/base/dtypes2strings]: https://github.com/stdlib-js/ndarray-base-dtypes2strings/tree/umd -[@stdlib/ndarray/base/empty-like]: https://github.com/stdlib-js/ndarray-base-empty-like +[@stdlib/ndarray/base/empty-like]: https://github.com/stdlib-js/ndarray-base-empty-like/tree/umd -[@stdlib/ndarray/base/empty]: https://github.com/stdlib-js/ndarray-base-empty +[@stdlib/ndarray/base/empty]: https://github.com/stdlib-js/ndarray-base-empty/tree/umd -[@stdlib/ndarray/base/every-by]: https://github.com/stdlib-js/ndarray-base-every-by +[@stdlib/ndarray/base/every-by]: https://github.com/stdlib-js/ndarray-base-every-by/tree/umd -[@stdlib/ndarray/base/every]: https://github.com/stdlib-js/ndarray-base-every +[@stdlib/ndarray/base/every]: https://github.com/stdlib-js/ndarray-base-every/tree/umd -[@stdlib/ndarray/base/expand-dimensions]: https://github.com/stdlib-js/ndarray-base-expand-dimensions +[@stdlib/ndarray/base/expand-dimensions]: https://github.com/stdlib-js/ndarray-base-expand-dimensions/tree/umd -[@stdlib/ndarray/base/falses-like]: https://github.com/stdlib-js/ndarray-base-falses-like +[@stdlib/ndarray/base/falses-like]: https://github.com/stdlib-js/ndarray-base-falses-like/tree/umd -[@stdlib/ndarray/base/falses]: https://github.com/stdlib-js/ndarray-base-falses +[@stdlib/ndarray/base/falses]: https://github.com/stdlib-js/ndarray-base-falses/tree/umd -[@stdlib/ndarray/base/fill-by]: https://github.com/stdlib-js/ndarray-base-fill-by +[@stdlib/ndarray/base/fill-by]: https://github.com/stdlib-js/ndarray-base-fill-by/tree/umd -[@stdlib/ndarray/base/fill-diagonal]: https://github.com/stdlib-js/ndarray-base-fill-diagonal +[@stdlib/ndarray/base/fill-diagonal]: https://github.com/stdlib-js/ndarray-base-fill-diagonal/tree/umd -[@stdlib/ndarray/base/fill]: https://github.com/stdlib-js/ndarray-base-fill +[@stdlib/ndarray/base/fill]: https://github.com/stdlib-js/ndarray-base-fill/tree/umd -[@stdlib/ndarray/base/find]: https://github.com/stdlib-js/ndarray-base-find +[@stdlib/ndarray/base/find]: https://github.com/stdlib-js/ndarray-base-find/tree/umd -[@stdlib/ndarray/base/flag]: https://github.com/stdlib-js/ndarray-base-flag +[@stdlib/ndarray/base/flag]: https://github.com/stdlib-js/ndarray-base-flag/tree/umd -[@stdlib/ndarray/base/flags]: https://github.com/stdlib-js/ndarray-base-flags +[@stdlib/ndarray/base/flags]: https://github.com/stdlib-js/ndarray-base-flags/tree/umd -[@stdlib/ndarray/base/flatten-shape-from]: https://github.com/stdlib-js/ndarray-base-flatten-shape-from +[@stdlib/ndarray/base/flatten-shape-from]: https://github.com/stdlib-js/ndarray-base-flatten-shape-from/tree/umd -[@stdlib/ndarray/base/flatten-shape]: https://github.com/stdlib-js/ndarray-base-flatten-shape +[@stdlib/ndarray/base/flatten-shape]: https://github.com/stdlib-js/ndarray-base-flatten-shape/tree/umd -[@stdlib/ndarray/base/fliplr]: https://github.com/stdlib-js/ndarray-base-fliplr +[@stdlib/ndarray/base/fliplr]: https://github.com/stdlib-js/ndarray-base-fliplr/tree/umd -[@stdlib/ndarray/base/flipud]: https://github.com/stdlib-js/ndarray-base-flipud +[@stdlib/ndarray/base/flipud]: https://github.com/stdlib-js/ndarray-base-flipud/tree/umd -[@stdlib/ndarray/base/for-each]: https://github.com/stdlib-js/ndarray-base-for-each +[@stdlib/ndarray/base/for-each]: https://github.com/stdlib-js/ndarray-base-for-each/tree/umd -[@stdlib/ndarray/base/from-array]: https://github.com/stdlib-js/ndarray-base-from-array +[@stdlib/ndarray/base/from-array]: https://github.com/stdlib-js/ndarray-base-from-array/tree/umd -[@stdlib/ndarray/base/from-scalar-like]: https://github.com/stdlib-js/ndarray-base-from-scalar-like +[@stdlib/ndarray/base/from-scalar-like]: https://github.com/stdlib-js/ndarray-base-from-scalar-like/tree/umd -[@stdlib/ndarray/base/from-scalar]: https://github.com/stdlib-js/ndarray-base-from-scalar +[@stdlib/ndarray/base/from-scalar]: https://github.com/stdlib-js/ndarray-base-from-scalar/tree/umd -[@stdlib/ndarray/base/full-by]: https://github.com/stdlib-js/ndarray-base-full-by +[@stdlib/ndarray/base/full-by]: https://github.com/stdlib-js/ndarray-base-full-by/tree/umd -[@stdlib/ndarray/base/full]: https://github.com/stdlib-js/ndarray-base-full +[@stdlib/ndarray/base/full]: https://github.com/stdlib-js/ndarray-base-full/tree/umd -[@stdlib/ndarray/base/includes]: https://github.com/stdlib-js/ndarray-base-includes +[@stdlib/ndarray/base/includes]: https://github.com/stdlib-js/ndarray-base-includes/tree/umd -[@stdlib/ndarray/base/ind]: https://github.com/stdlib-js/ndarray-base-ind +[@stdlib/ndarray/base/ind]: https://github.com/stdlib-js/ndarray-base-ind/tree/umd -[@stdlib/ndarray/base/ind2sub]: https://github.com/stdlib-js/ndarray-base-ind2sub +[@stdlib/ndarray/base/ind2sub]: https://github.com/stdlib-js/ndarray-base-ind2sub/tree/umd -[@stdlib/ndarray/base/iteration-order]: https://github.com/stdlib-js/ndarray-base-iteration-order +[@stdlib/ndarray/base/iteration-order]: https://github.com/stdlib-js/ndarray-base-iteration-order/tree/umd -[@stdlib/ndarray/base/loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-loop-interchange-order +[@stdlib/ndarray/base/loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/map]: https://github.com/stdlib-js/ndarray-base-map +[@stdlib/ndarray/base/map]: https://github.com/stdlib-js/ndarray-base-map/tree/umd -[@stdlib/ndarray/base/max-view-buffer-index]: https://github.com/stdlib-js/ndarray-base-max-view-buffer-index +[@stdlib/ndarray/base/max-view-buffer-index]: https://github.com/stdlib-js/ndarray-base-max-view-buffer-index/tree/umd -[@stdlib/ndarray/base/maybe-broadcast-array-except-dimensions]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-array-except-dimensions +[@stdlib/ndarray/base/maybe-broadcast-array-except-dimensions]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-array-except-dimensions/tree/umd -[@stdlib/ndarray/base/maybe-broadcast-array]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-array +[@stdlib/ndarray/base/maybe-broadcast-array]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-array/tree/umd -[@stdlib/ndarray/base/maybe-broadcast-arrays]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays +[@stdlib/ndarray/base/maybe-broadcast-arrays]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/tree/umd -[@stdlib/ndarray/base/meta-data-props]: https://github.com/stdlib-js/ndarray-base-meta-data-props +[@stdlib/ndarray/base/meta-data-props]: https://github.com/stdlib-js/ndarray-base-meta-data-props/tree/umd -[@stdlib/ndarray/base/min-signed-integer-dtype]: https://github.com/stdlib-js/ndarray-base-min-signed-integer-dtype +[@stdlib/ndarray/base/min-signed-integer-dtype]: https://github.com/stdlib-js/ndarray-base-min-signed-integer-dtype/tree/umd -[@stdlib/ndarray/base/min-unsigned-integer-dtype]: https://github.com/stdlib-js/ndarray-base-min-unsigned-integer-dtype +[@stdlib/ndarray/base/min-unsigned-integer-dtype]: https://github.com/stdlib-js/ndarray-base-min-unsigned-integer-dtype/tree/umd -[@stdlib/ndarray/base/min-view-buffer-index]: https://github.com/stdlib-js/ndarray-base-min-view-buffer-index +[@stdlib/ndarray/base/min-view-buffer-index]: https://github.com/stdlib-js/ndarray-base-min-view-buffer-index/tree/umd -[@stdlib/ndarray/base/minmax-view-buffer-index]: https://github.com/stdlib-js/ndarray-base-minmax-view-buffer-index +[@stdlib/ndarray/base/minmax-view-buffer-index]: https://github.com/stdlib-js/ndarray-base-minmax-view-buffer-index/tree/umd -[@stdlib/ndarray/base/nans-like]: https://github.com/stdlib-js/ndarray-base-nans-like +[@stdlib/ndarray/base/nans-like]: https://github.com/stdlib-js/ndarray-base-nans-like/tree/umd -[@stdlib/ndarray/base/nans]: https://github.com/stdlib-js/ndarray-base-nans +[@stdlib/ndarray/base/nans]: https://github.com/stdlib-js/ndarray-base-nans/tree/umd -[@stdlib/ndarray/base/ndarraylike2descriptor]: https://github.com/stdlib-js/ndarray-base-ndarraylike2descriptor +[@stdlib/ndarray/base/ndarraylike2descriptor]: https://github.com/stdlib-js/ndarray-base-ndarraylike2descriptor/tree/umd -[@stdlib/ndarray/base/ndarraylike2ndarray]: https://github.com/stdlib-js/ndarray-base-ndarraylike2ndarray +[@stdlib/ndarray/base/ndarraylike2ndarray]: https://github.com/stdlib-js/ndarray-base-ndarraylike2ndarray/tree/umd -[@stdlib/ndarray/base/ndarraylike2object]: https://github.com/stdlib-js/ndarray-base-ndarraylike2object +[@stdlib/ndarray/base/ndarraylike2object]: https://github.com/stdlib-js/ndarray-base-ndarraylike2object/tree/umd -[@stdlib/ndarray/base/ndarraylike2scalar]: https://github.com/stdlib-js/ndarray-base-ndarraylike2scalar +[@stdlib/ndarray/base/ndarraylike2scalar]: https://github.com/stdlib-js/ndarray-base-ndarraylike2scalar/tree/umd -[@stdlib/ndarray/base/ndims]: https://github.com/stdlib-js/ndarray-base-ndims +[@stdlib/ndarray/base/ndims]: https://github.com/stdlib-js/ndarray-base-ndims/tree/umd -[@stdlib/ndarray/base/next-cartesian-index]: https://github.com/stdlib-js/ndarray-base-next-cartesian-index +[@stdlib/ndarray/base/next-cartesian-index]: https://github.com/stdlib-js/ndarray-base-next-cartesian-index/tree/umd -[@stdlib/ndarray/base/nonsingleton-dimensions]: https://github.com/stdlib-js/ndarray-base-nonsingleton-dimensions +[@stdlib/ndarray/base/nonsingleton-dimensions]: https://github.com/stdlib-js/ndarray-base-nonsingleton-dimensions/tree/umd -[@stdlib/ndarray/base/normalize-index]: https://github.com/stdlib-js/ndarray-base-normalize-index +[@stdlib/ndarray/base/normalize-index]: https://github.com/stdlib-js/ndarray-base-normalize-index/tree/umd -[@stdlib/ndarray/base/normalize-indices]: https://github.com/stdlib-js/ndarray-base-normalize-indices +[@stdlib/ndarray/base/normalize-indices]: https://github.com/stdlib-js/ndarray-base-normalize-indices/tree/umd -[@stdlib/ndarray/base/nullary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-nullary-loop-interchange-order +[@stdlib/ndarray/base/nullary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-nullary-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/nullary-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-nullary-strided1d-dispatch-factory +[@stdlib/ndarray/base/nullary-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-nullary-strided1d-dispatch-factory/tree/umd -[@stdlib/ndarray/base/nullary-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-nullary-strided1d-dispatch +[@stdlib/ndarray/base/nullary-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-nullary-strided1d-dispatch/tree/umd -[@stdlib/ndarray/base/nullary-strided1d]: https://github.com/stdlib-js/ndarray-base-nullary-strided1d +[@stdlib/ndarray/base/nullary-strided1d]: https://github.com/stdlib-js/ndarray-base-nullary-strided1d/tree/umd -[@stdlib/ndarray/base/nullary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-nullary-tiling-block-size +[@stdlib/ndarray/base/nullary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-nullary-tiling-block-size/tree/umd -[@stdlib/ndarray/base/nullary]: https://github.com/stdlib-js/ndarray-base-nullary +[@stdlib/ndarray/base/nullary]: https://github.com/stdlib-js/ndarray-base-nullary/tree/umd -[@stdlib/ndarray/base/nulls-like]: https://github.com/stdlib-js/ndarray-base-nulls-like +[@stdlib/ndarray/base/nulls-like]: https://github.com/stdlib-js/ndarray-base-nulls-like/tree/umd -[@stdlib/ndarray/base/nulls]: https://github.com/stdlib-js/ndarray-base-nulls +[@stdlib/ndarray/base/nulls]: https://github.com/stdlib-js/ndarray-base-nulls/tree/umd -[@stdlib/ndarray/base/numel-dimension]: https://github.com/stdlib-js/ndarray-base-numel-dimension +[@stdlib/ndarray/base/numel-dimension]: https://github.com/stdlib-js/ndarray-base-numel-dimension/tree/umd -[@stdlib/ndarray/base/numel]: https://github.com/stdlib-js/ndarray-base-numel +[@stdlib/ndarray/base/numel]: https://github.com/stdlib-js/ndarray-base-numel/tree/umd -[@stdlib/ndarray/base/offset]: https://github.com/stdlib-js/ndarray-base-offset +[@stdlib/ndarray/base/offset]: https://github.com/stdlib-js/ndarray-base-offset/tree/umd -[@stdlib/ndarray/base/offsets]: https://github.com/stdlib-js/ndarray-base-offsets +[@stdlib/ndarray/base/offsets]: https://github.com/stdlib-js/ndarray-base-offsets/tree/umd -[@stdlib/ndarray/base/ones-like]: https://github.com/stdlib-js/ndarray-base-ones-like +[@stdlib/ndarray/base/ones-like]: https://github.com/stdlib-js/ndarray-base-ones-like/tree/umd -[@stdlib/ndarray/base/ones]: https://github.com/stdlib-js/ndarray-base-ones +[@stdlib/ndarray/base/ones]: https://github.com/stdlib-js/ndarray-base-ones/tree/umd -[@stdlib/ndarray/base/order]: https://github.com/stdlib-js/ndarray-base-order +[@stdlib/ndarray/base/order]: https://github.com/stdlib-js/ndarray-base-order/tree/umd -[@stdlib/ndarray/base/output-dtype]: https://github.com/stdlib-js/ndarray-base-output-dtype +[@stdlib/ndarray/base/output-dtype]: https://github.com/stdlib-js/ndarray-base-output-dtype/tree/umd -[@stdlib/ndarray/base/output-order]: https://github.com/stdlib-js/ndarray-base-output-order +[@stdlib/ndarray/base/output-order]: https://github.com/stdlib-js/ndarray-base-output-order/tree/umd -[@stdlib/ndarray/base/output-policy-enum2str]: https://github.com/stdlib-js/ndarray-base-output-policy-enum2str +[@stdlib/ndarray/base/output-policy-enum2str]: https://github.com/stdlib-js/ndarray-base-output-policy-enum2str/tree/umd -[@stdlib/ndarray/base/output-policy-resolve-enum]: https://github.com/stdlib-js/ndarray-base-output-policy-resolve-enum +[@stdlib/ndarray/base/output-policy-resolve-enum]: https://github.com/stdlib-js/ndarray-base-output-policy-resolve-enum/tree/umd -[@stdlib/ndarray/base/output-policy-resolve-str]: https://github.com/stdlib-js/ndarray-base-output-policy-resolve-str +[@stdlib/ndarray/base/output-policy-resolve-str]: https://github.com/stdlib-js/ndarray-base-output-policy-resolve-str/tree/umd -[@stdlib/ndarray/base/output-policy-str2enum]: https://github.com/stdlib-js/ndarray-base-output-policy-str2enum +[@stdlib/ndarray/base/output-policy-str2enum]: https://github.com/stdlib-js/ndarray-base-output-policy-str2enum/tree/umd -[@stdlib/ndarray/base/pop]: https://github.com/stdlib-js/ndarray-base-pop +[@stdlib/ndarray/base/pop]: https://github.com/stdlib-js/ndarray-base-pop/tree/umd -[@stdlib/ndarray/base/prepend-singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-prepend-singleton-dimensions +[@stdlib/ndarray/base/prepend-singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-prepend-singleton-dimensions/tree/umd -[@stdlib/ndarray/base/promote-dtypes]: https://github.com/stdlib-js/ndarray-base-promote-dtypes +[@stdlib/ndarray/base/promote-dtypes]: https://github.com/stdlib-js/ndarray-base-promote-dtypes/tree/umd -[@stdlib/ndarray/base/quaternary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-quaternary-loop-interchange-order +[@stdlib/ndarray/base/quaternary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-quaternary-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/quaternary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-quaternary-tiling-block-size +[@stdlib/ndarray/base/quaternary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-quaternary-tiling-block-size/tree/umd -[@stdlib/ndarray/base/quinary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-quinary-loop-interchange-order +[@stdlib/ndarray/base/quinary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-quinary-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/quinary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-quinary-tiling-block-size +[@stdlib/ndarray/base/quinary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-quinary-tiling-block-size/tree/umd -[@stdlib/ndarray/base/reinterpret-boolean]: https://github.com/stdlib-js/ndarray-base-reinterpret-boolean +[@stdlib/ndarray/base/reinterpret-boolean]: https://github.com/stdlib-js/ndarray-base-reinterpret-boolean/tree/umd -[@stdlib/ndarray/base/reinterpret-complex]: https://github.com/stdlib-js/ndarray-base-reinterpret-complex +[@stdlib/ndarray/base/reinterpret-complex]: https://github.com/stdlib-js/ndarray-base-reinterpret-complex/tree/umd -[@stdlib/ndarray/base/reinterpret-complex128]: https://github.com/stdlib-js/ndarray-base-reinterpret-complex128 +[@stdlib/ndarray/base/reinterpret-complex128]: https://github.com/stdlib-js/ndarray-base-reinterpret-complex128/tree/umd -[@stdlib/ndarray/base/reinterpret-complex64]: https://github.com/stdlib-js/ndarray-base-reinterpret-complex64 +[@stdlib/ndarray/base/reinterpret-complex64]: https://github.com/stdlib-js/ndarray-base-reinterpret-complex64/tree/umd -[@stdlib/ndarray/base/remove-singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-remove-singleton-dimensions +[@stdlib/ndarray/base/remove-singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-remove-singleton-dimensions/tree/umd -[@stdlib/ndarray/base/reverse-dimension]: https://github.com/stdlib-js/ndarray-base-reverse-dimension +[@stdlib/ndarray/base/reverse-dimension]: https://github.com/stdlib-js/ndarray-base-reverse-dimension/tree/umd -[@stdlib/ndarray/base/reverse-dimensions]: https://github.com/stdlib-js/ndarray-base-reverse-dimensions +[@stdlib/ndarray/base/reverse-dimensions]: https://github.com/stdlib-js/ndarray-base-reverse-dimensions/tree/umd -[@stdlib/ndarray/base/reverse]: https://github.com/stdlib-js/ndarray-base-reverse +[@stdlib/ndarray/base/reverse]: https://github.com/stdlib-js/ndarray-base-reverse/tree/umd -[@stdlib/ndarray/base/rot180]: https://github.com/stdlib-js/ndarray-base-rot180 +[@stdlib/ndarray/base/rot180]: https://github.com/stdlib-js/ndarray-base-rot180/tree/umd -[@stdlib/ndarray/base/rot90]: https://github.com/stdlib-js/ndarray-base-rot90 +[@stdlib/ndarray/base/rot90]: https://github.com/stdlib-js/ndarray-base-rot90/tree/umd -[@stdlib/ndarray/base/rotl90]: https://github.com/stdlib-js/ndarray-base-rotl90 +[@stdlib/ndarray/base/rotl90]: https://github.com/stdlib-js/ndarray-base-rotl90/tree/umd -[@stdlib/ndarray/base/rotr90]: https://github.com/stdlib-js/ndarray-base-rotr90 +[@stdlib/ndarray/base/rotr90]: https://github.com/stdlib-js/ndarray-base-rotr90/tree/umd -[@stdlib/ndarray/base/serialize-meta-data]: https://github.com/stdlib-js/ndarray-base-serialize-meta-data +[@stdlib/ndarray/base/serialize-meta-data]: https://github.com/stdlib-js/ndarray-base-serialize-meta-data/tree/umd -[@stdlib/ndarray/base/set-descriptor-offsets]: https://github.com/stdlib-js/ndarray-base-set-descriptor-offsets +[@stdlib/ndarray/base/set-descriptor-offsets]: https://github.com/stdlib-js/ndarray-base-set-descriptor-offsets/tree/umd -[@stdlib/ndarray/base/shape]: https://github.com/stdlib-js/ndarray-base-shape +[@stdlib/ndarray/base/shape]: https://github.com/stdlib-js/ndarray-base-shape/tree/umd -[@stdlib/ndarray/base/shape2strides]: https://github.com/stdlib-js/ndarray-base-shape2strides +[@stdlib/ndarray/base/shape2strides]: https://github.com/stdlib-js/ndarray-base-shape2strides/tree/umd -[@stdlib/ndarray/base/shift]: https://github.com/stdlib-js/ndarray-base-shift +[@stdlib/ndarray/base/shift]: https://github.com/stdlib-js/ndarray-base-shift/tree/umd -[@stdlib/ndarray/base/singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-singleton-dimensions +[@stdlib/ndarray/base/singleton-dimensions]: https://github.com/stdlib-js/ndarray-base-singleton-dimensions/tree/umd -[@stdlib/ndarray/base/slice-assign]: https://github.com/stdlib-js/ndarray-base-slice-assign +[@stdlib/ndarray/base/slice-assign]: https://github.com/stdlib-js/ndarray-base-slice-assign/tree/umd -[@stdlib/ndarray/base/slice-dimension-from]: https://github.com/stdlib-js/ndarray-base-slice-dimension-from +[@stdlib/ndarray/base/slice-dimension-from]: https://github.com/stdlib-js/ndarray-base-slice-dimension-from/tree/umd -[@stdlib/ndarray/base/slice-dimension-to]: https://github.com/stdlib-js/ndarray-base-slice-dimension-to +[@stdlib/ndarray/base/slice-dimension-to]: https://github.com/stdlib-js/ndarray-base-slice-dimension-to/tree/umd -[@stdlib/ndarray/base/slice-dimension]: https://github.com/stdlib-js/ndarray-base-slice-dimension +[@stdlib/ndarray/base/slice-dimension]: https://github.com/stdlib-js/ndarray-base-slice-dimension/tree/umd -[@stdlib/ndarray/base/slice-from]: https://github.com/stdlib-js/ndarray-base-slice-from +[@stdlib/ndarray/base/slice-from]: https://github.com/stdlib-js/ndarray-base-slice-from/tree/umd -[@stdlib/ndarray/base/slice-to]: https://github.com/stdlib-js/ndarray-base-slice-to +[@stdlib/ndarray/base/slice-to]: https://github.com/stdlib-js/ndarray-base-slice-to/tree/umd -[@stdlib/ndarray/base/slice]: https://github.com/stdlib-js/ndarray-base-slice +[@stdlib/ndarray/base/slice]: https://github.com/stdlib-js/ndarray-base-slice/tree/umd -[@stdlib/ndarray/base/some-by]: https://github.com/stdlib-js/ndarray-base-some-by +[@stdlib/ndarray/base/some-by]: https://github.com/stdlib-js/ndarray-base-some-by/tree/umd -[@stdlib/ndarray/base/some]: https://github.com/stdlib-js/ndarray-base-some +[@stdlib/ndarray/base/some]: https://github.com/stdlib-js/ndarray-base-some/tree/umd -[@stdlib/ndarray/base/spread-dimensions]: https://github.com/stdlib-js/ndarray-base-spread-dimensions +[@stdlib/ndarray/base/spread-dimensions]: https://github.com/stdlib-js/ndarray-base-spread-dimensions/tree/umd -[@stdlib/ndarray/base/stride]: https://github.com/stdlib-js/ndarray-base-stride +[@stdlib/ndarray/base/stride]: https://github.com/stdlib-js/ndarray-base-stride/tree/umd -[@stdlib/ndarray/base/strides]: https://github.com/stdlib-js/ndarray-base-strides +[@stdlib/ndarray/base/strides]: https://github.com/stdlib-js/ndarray-base-strides/tree/umd -[@stdlib/ndarray/base/strides2offset]: https://github.com/stdlib-js/ndarray-base-strides2offset +[@stdlib/ndarray/base/strides2offset]: https://github.com/stdlib-js/ndarray-base-strides2offset/tree/umd -[@stdlib/ndarray/base/strides2order]: https://github.com/stdlib-js/ndarray-base-strides2order +[@stdlib/ndarray/base/strides2order]: https://github.com/stdlib-js/ndarray-base-strides2order/tree/umd -[@stdlib/ndarray/base/sub2ind]: https://github.com/stdlib-js/ndarray-base-sub2ind +[@stdlib/ndarray/base/sub2ind]: https://github.com/stdlib-js/ndarray-base-sub2ind/tree/umd -[@stdlib/ndarray/base/ternary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-ternary-loop-interchange-order +[@stdlib/ndarray/base/ternary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-ternary-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/ternary-output-dtype]: https://github.com/stdlib-js/ndarray-base-ternary-output-dtype +[@stdlib/ndarray/base/ternary-output-dtype]: https://github.com/stdlib-js/ndarray-base-ternary-output-dtype/tree/umd -[@stdlib/ndarray/base/ternary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-ternary-tiling-block-size +[@stdlib/ndarray/base/ternary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-ternary-tiling-block-size/tree/umd -[@stdlib/ndarray/base/ternary]: https://github.com/stdlib-js/ndarray-base-ternary +[@stdlib/ndarray/base/ternary]: https://github.com/stdlib-js/ndarray-base-ternary/tree/umd -[@stdlib/ndarray/base/tile]: https://github.com/stdlib-js/ndarray-base-tile +[@stdlib/ndarray/base/tile]: https://github.com/stdlib-js/ndarray-base-tile/tree/umd -[@stdlib/ndarray/base/tiling-block-size]: https://github.com/stdlib-js/ndarray-base-tiling-block-size +[@stdlib/ndarray/base/tiling-block-size]: https://github.com/stdlib-js/ndarray-base-tiling-block-size/tree/umd -[@stdlib/ndarray/base/to-array]: https://github.com/stdlib-js/ndarray-base-to-array +[@stdlib/ndarray/base/to-array]: https://github.com/stdlib-js/ndarray-base-to-array/tree/umd -[@stdlib/ndarray/base/to-flippedlr]: https://github.com/stdlib-js/ndarray-base-to-flippedlr +[@stdlib/ndarray/base/to-flippedlr]: https://github.com/stdlib-js/ndarray-base-to-flippedlr/tree/umd -[@stdlib/ndarray/base/to-flippedud]: https://github.com/stdlib-js/ndarray-base-to-flippedud +[@stdlib/ndarray/base/to-flippedud]: https://github.com/stdlib-js/ndarray-base-to-flippedud/tree/umd -[@stdlib/ndarray/base/to-normalized-indices]: https://github.com/stdlib-js/ndarray-base-to-normalized-indices +[@stdlib/ndarray/base/to-normalized-indices]: https://github.com/stdlib-js/ndarray-base-to-normalized-indices/tree/umd -[@stdlib/ndarray/base/to-reversed-dimension]: https://github.com/stdlib-js/ndarray-base-to-reversed-dimension +[@stdlib/ndarray/base/to-reversed-dimension]: https://github.com/stdlib-js/ndarray-base-to-reversed-dimension/tree/umd -[@stdlib/ndarray/base/to-reversed-dimensions]: https://github.com/stdlib-js/ndarray-base-to-reversed-dimensions +[@stdlib/ndarray/base/to-reversed-dimensions]: https://github.com/stdlib-js/ndarray-base-to-reversed-dimensions/tree/umd -[@stdlib/ndarray/base/to-reversed]: https://github.com/stdlib-js/ndarray-base-to-reversed +[@stdlib/ndarray/base/to-reversed]: https://github.com/stdlib-js/ndarray-base-to-reversed/tree/umd -[@stdlib/ndarray/base/to-rot180]: https://github.com/stdlib-js/ndarray-base-to-rot180 +[@stdlib/ndarray/base/to-rot180]: https://github.com/stdlib-js/ndarray-base-to-rot180/tree/umd -[@stdlib/ndarray/base/to-rot90]: https://github.com/stdlib-js/ndarray-base-to-rot90 +[@stdlib/ndarray/base/to-rot90]: https://github.com/stdlib-js/ndarray-base-to-rot90/tree/umd -[@stdlib/ndarray/base/to-rotl90]: https://github.com/stdlib-js/ndarray-base-to-rotl90 +[@stdlib/ndarray/base/to-rotl90]: https://github.com/stdlib-js/ndarray-base-to-rotl90/tree/umd -[@stdlib/ndarray/base/to-rotr90]: https://github.com/stdlib-js/ndarray-base-to-rotr90 +[@stdlib/ndarray/base/to-rotr90]: https://github.com/stdlib-js/ndarray-base-to-rotr90/tree/umd -[@stdlib/ndarray/base/to-transposed]: https://github.com/stdlib-js/ndarray-base-to-transposed +[@stdlib/ndarray/base/to-transposed]: https://github.com/stdlib-js/ndarray-base-to-transposed/tree/umd -[@stdlib/ndarray/base/to-unflattened]: https://github.com/stdlib-js/ndarray-base-to-unflattened +[@stdlib/ndarray/base/to-unflattened]: https://github.com/stdlib-js/ndarray-base-to-unflattened/tree/umd -[@stdlib/ndarray/base/to-unique-normalized-indices]: https://github.com/stdlib-js/ndarray-base-to-unique-normalized-indices +[@stdlib/ndarray/base/to-unique-normalized-indices]: https://github.com/stdlib-js/ndarray-base-to-unique-normalized-indices/tree/umd -[@stdlib/ndarray/base/transpose]: https://github.com/stdlib-js/ndarray-base-transpose +[@stdlib/ndarray/base/transpose]: https://github.com/stdlib-js/ndarray-base-transpose/tree/umd -[@stdlib/ndarray/base/trues-like]: https://github.com/stdlib-js/ndarray-base-trues-like +[@stdlib/ndarray/base/trues-like]: https://github.com/stdlib-js/ndarray-base-trues-like/tree/umd -[@stdlib/ndarray/base/trues]: https://github.com/stdlib-js/ndarray-base-trues +[@stdlib/ndarray/base/trues]: https://github.com/stdlib-js/ndarray-base-trues/tree/umd -[@stdlib/ndarray/base/unary-accumulate]: https://github.com/stdlib-js/ndarray-base-unary-accumulate +[@stdlib/ndarray/base/unary-accumulate]: https://github.com/stdlib-js/ndarray-base-unary-accumulate/tree/umd -[@stdlib/ndarray/base/unary-addon-dispatch]: https://github.com/stdlib-js/ndarray-base-unary-addon-dispatch +[@stdlib/ndarray/base/unary-addon-dispatch]: https://github.com/stdlib-js/ndarray-base-unary-addon-dispatch/tree/umd -[@stdlib/ndarray/base/unary-by]: https://github.com/stdlib-js/ndarray-base-unary-by +[@stdlib/ndarray/base/unary-by]: https://github.com/stdlib-js/ndarray-base-unary-by/tree/umd -[@stdlib/ndarray/base/unary-input-casting-dtype]: https://github.com/stdlib-js/ndarray-base-unary-input-casting-dtype +[@stdlib/ndarray/base/unary-input-casting-dtype]: https://github.com/stdlib-js/ndarray-base-unary-input-casting-dtype/tree/umd -[@stdlib/ndarray/base/unary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-unary-loop-interchange-order +[@stdlib/ndarray/base/unary-loop-interchange-order]: https://github.com/stdlib-js/ndarray-base-unary-loop-interchange-order/tree/umd -[@stdlib/ndarray/base/unary-output-dtype]: https://github.com/stdlib-js/ndarray-base-unary-output-dtype +[@stdlib/ndarray/base/unary-output-dtype]: https://github.com/stdlib-js/ndarray-base-unary-output-dtype/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d-assign-struct]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-assign-struct +[@stdlib/ndarray/base/unary-reduce-strided1d-assign-struct]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-assign-struct/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d-by]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-by +[@stdlib/ndarray/base/unary-reduce-strided1d-by]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-by/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by-factory]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch-by-factory +[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by-factory]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch-by-factory/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch-by +[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch-by/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch-factory +[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch-factory/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch +[@stdlib/ndarray/base/unary-reduce-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d-dispatch/tree/umd -[@stdlib/ndarray/base/unary-reduce-strided1d]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d +[@stdlib/ndarray/base/unary-reduce-strided1d]: https://github.com/stdlib-js/ndarray-base-unary-reduce-strided1d/tree/umd -[@stdlib/ndarray/base/unary-reduce-subarray-by]: https://github.com/stdlib-js/ndarray-base-unary-reduce-subarray-by +[@stdlib/ndarray/base/unary-reduce-subarray-by]: https://github.com/stdlib-js/ndarray-base-unary-reduce-subarray-by/tree/umd -[@stdlib/ndarray/base/unary-reduce-subarray]: https://github.com/stdlib-js/ndarray-base-unary-reduce-subarray +[@stdlib/ndarray/base/unary-reduce-subarray]: https://github.com/stdlib-js/ndarray-base-unary-reduce-subarray/tree/umd -[@stdlib/ndarray/base/unary-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-unary-strided1d-dispatch-factory +[@stdlib/ndarray/base/unary-strided1d-dispatch-factory]: https://github.com/stdlib-js/ndarray-base-unary-strided1d-dispatch-factory/tree/umd -[@stdlib/ndarray/base/unary-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-unary-strided1d-dispatch +[@stdlib/ndarray/base/unary-strided1d-dispatch]: https://github.com/stdlib-js/ndarray-base-unary-strided1d-dispatch/tree/umd -[@stdlib/ndarray/base/unary-strided1d]: https://github.com/stdlib-js/ndarray-base-unary-strided1d +[@stdlib/ndarray/base/unary-strided1d]: https://github.com/stdlib-js/ndarray-base-unary-strided1d/tree/umd -[@stdlib/ndarray/base/unary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-unary-tiling-block-size +[@stdlib/ndarray/base/unary-tiling-block-size]: https://github.com/stdlib-js/ndarray-base-unary-tiling-block-size/tree/umd -[@stdlib/ndarray/base/unary]: https://github.com/stdlib-js/ndarray-base-unary +[@stdlib/ndarray/base/unary]: https://github.com/stdlib-js/ndarray-base-unary/tree/umd -[@stdlib/ndarray/base/unflatten-shape]: https://github.com/stdlib-js/ndarray-base-unflatten-shape +[@stdlib/ndarray/base/unflatten-shape]: https://github.com/stdlib-js/ndarray-base-unflatten-shape/tree/umd -[@stdlib/ndarray/base/unflatten]: https://github.com/stdlib-js/ndarray-base-unflatten +[@stdlib/ndarray/base/unflatten]: https://github.com/stdlib-js/ndarray-base-unflatten/tree/umd -[@stdlib/ndarray/base/vind2bind]: https://github.com/stdlib-js/ndarray-base-vind2bind +[@stdlib/ndarray/base/vind2bind]: https://github.com/stdlib-js/ndarray-base-vind2bind/tree/umd -[@stdlib/ndarray/base/wrap-index]: https://github.com/stdlib-js/ndarray-base-wrap-index +[@stdlib/ndarray/base/wrap-index]: https://github.com/stdlib-js/ndarray-base-wrap-index/tree/umd -[@stdlib/ndarray/base/zeros-like]: https://github.com/stdlib-js/ndarray-base-zeros-like +[@stdlib/ndarray/base/zeros-like]: https://github.com/stdlib-js/ndarray-base-zeros-like/tree/umd -[@stdlib/ndarray/base/zeros]: https://github.com/stdlib-js/ndarray-base-zeros +[@stdlib/ndarray/base/zeros]: https://github.com/stdlib-js/ndarray-base-zeros/tree/umd -[@stdlib/ndarray/base/zip2views1d]: https://github.com/stdlib-js/ndarray-base-zip2views1d +[@stdlib/ndarray/base/zip2views1d]: https://github.com/stdlib-js/ndarray-base-zip2views1d/tree/umd diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/branches.md b/branches.md deleted file mode 100644 index 555cd35..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/base" -%% click B href "https://github.com/stdlib-js/ndarray-base/tree/main" -%% click C href "https://github.com/stdlib-js/ndarray-base/tree/production" -%% click D href "https://github.com/stdlib-js/ndarray-base/tree/esm" -%% click E href "https://github.com/stdlib-js/ndarray-base/tree/deno" -%% click F href "https://github.com/stdlib-js/ndarray-base/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/base -[production-url]: https://github.com/stdlib-js/ndarray-base/tree/production -[deno-url]: https://github.com/stdlib-js/ndarray-base/tree/deno -[deno-readme]: https://github.com/stdlib-js/ndarray-base/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/ndarray-base/tree/umd -[umd-readme]: https://github.com/stdlib-js/ndarray-base/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/ndarray-base/tree/esm -[esm-readme]: https://github.com/stdlib-js/ndarray-base/blob/esm/README.md \ No newline at end of file diff --git a/browser.js b/browser.js new file mode 100644 index 0000000..e591adc --- /dev/null +++ b/browser.js @@ -0,0 +1,3 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +!function(r,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(r="undefined"!=typeof globalThis?globalThis:r||self).ns=o()}(this,(function(){"use strict";var r="function"==typeof Object.defineProperty?Object.defineProperty:null;var o=Object.defineProperty;function t(r){return"number"==typeof r}function e(r){var o,t="";for(o=0;o0&&(t-=1),e=r.toExponential(t)):e=r.toPrecision(o.precision),o.alternate||(e=c.call(e,m,"$1e"),e=c.call(e,v,"e"),e=c.call(e,y,""));break;default:throw new Error("invalid double notation. Value: "+o.specifier)}return e=c.call(e,h,"e+0$1"),e=c.call(e,p,"e-0$1"),o.alternate&&(e=c.call(e,l,"$1."),e=c.call(e,g,"$1.e")),r>=0&&o.sign&&(e=o.sign+e),e=o.specifier===d.call(o.specifier)?d.call(e):u.call(e)}function b(r){var o,t="";for(o=0;o127)throw new Error("invalid character code. Value: "+s.arg);s.arg=E(i)?String(s.arg):x(i)}break;case"e":case"E":case"f":case"F":case"g":case"G":if(o||(s.precision=6),c=parseFloat(s.arg),!isFinite(c)){if(!t(s.arg))throw new Error("invalid floating-point number. Value: "+u);c=s.arg,s.padZeros=!1}s.arg=w(c,s);break;default:throw new Error("invalid specifier: "+s.specifier)}s.maxWidth>=0&&s.arg.length>s.maxWidth&&(s.arg=s.arg.substring(0,s.maxWidth)),s.padZeros?s.arg=f(s.arg,s.width||s.precision,s.padRight):s.width&&(s.arg=(l=s.arg,g=s.width,y=s.padRight,v=void 0,(v=g-l.length)<0?l:l=y?l+b(v):b(v)+l)),u+=s.arg||"",d+=1}return u}var j=/%(?:([1-9]\d*)\$)?([0 +\-#]*)(\*|\d+)?(?:(\.)(\*|\d+)?)?[hlL]?([%A-Za-z])/g;function A(r){var o={mapping:r[1]?parseInt(r[1],10):void 0,flags:r[2],width:r[3],precision:r[5],specifier:r[6]};return"."===r[4]&&void 0===r[5]&&(o.precision="1"),o}function O(r){var o,t,e,f;for(t=[],f=0,e=j.exec(r);e;)(o=r.slice(f,j.lastIndex-e[0].length)).length&&t.push(o),"%"===e[6]?t.push("%"):t.push(A(e)),f=j.lastIndex,e=j.exec(r);return(o=r.slice(f)).length&&t.push(o),t}function S(r){var o,t;if("string"!=typeof r)throw new TypeError(S("invalid argument. First argument must be a string. Value: `%s`.",r));for(o=[O(r)],t=1;t0?s+=n*(r[a]-1):n<0&&(f+=n*(r[a]-1))}return[f,s]}function W(r,o,t,e){var f,s,n,a,i;for(f=r.length,s=t,n=t,i=0;i0?n+=a*(r[i]-1):a<0&&(s+=a*(r[i]-1))}return e[0]=s,e[1]=n,e}J($,"assign",W);var G="function";function Z(r){return typeof r.get===G&&typeof r.set===G}var K={complex128:function(r,o){return r.get(o)},complex64:function(r,o){return r.get(o)},default:function(r,o){return r.get(o)}};function X(r){var o=K[r];return"function"==typeof o?o:K.default}var H={complex128:function(r,o,t){r.set(t,o)},complex64:function(r,o,t){r.set(t,o)},default:function(r,o,t){r.set(t,o)}};function Q(r){var o=H[r];return"function"==typeof o?o:H.default}var rr={float64:function(r,o){return r[o]},float32:function(r,o){return r[o]},int32:function(r,o){return r[o]},int16:function(r,o){return r[o]},int8:function(r,o){return r[o]},uint32:function(r,o){return r[o]},uint16:function(r,o){return r[o]},uint8:function(r,o){return r[o]},uint8c:function(r,o){return r[o]},generic:function(r,o){return r[o]},default:function(r,o){return r[o]}};function or(r){var o=rr[r];return"function"==typeof o?o:rr.default}var tr={float64:function(r,o,t){r[o]=t},float32:function(r,o,t){r[o]=t},int32:function(r,o,t){r[o]=t},int16:function(r,o,t){r[o]=t},int8:function(r,o,t){r[o]=t},uint32:function(r,o,t){r[o]=t},uint16:function(r,o,t){r[o]=t},uint8:function(r,o,t){r[o]=t},uint8c:function(r,o,t){r[o]=t},generic:function(r,o,t){r[o]=t},default:function(r,o,t){r[o]=t}};function er(r){var o=tr[r];return"function"==typeof o?o:tr.default}function fr(r){var o,t,e;if(0===(o=r.length))return 0;for(t=1,e=0;e=0;f--)t[f]=e,e*=r[f];return t}(r)}J(br,"isPrimitive",ir),J(br,"isObject",wr),J(_r,"assign",(function(r,o,t){return xr(o)?function(r,o){var t,e;for(t=1,e=0;e=0;e--)o[e]=t,t*=r[e];return o}(r,t)}));var Er="row-major";function Tr(r,o){var t,e,f;return"object"!=typeof(f=r.strides)||null===f?0===(e=r.shape).length?[0]:(ir(t=r.order)||(t=Er),_r(e,t)):o?nr(f):f}function Vr(r){return"number"==typeof r}var jr=Number,Ar=jr.prototype.toString;var Or=dr();function Sr(r){return"object"==typeof r&&(r instanceof jr||(Or?function(r){try{return Ar.call(r),!0}catch(r){return!1}}(r):"[object Number]"===yr(r)))}function Pr(r){return Vr(r)||Sr(r)}function Rr(r,o){var t,e,f;for(e=r.length,t=0,f=0;ff&&(e=!1),!e&&!o)return 0;f=s}return e&&o?3:e?1:2}J(Pr,"isPrimitive",Vr),J(Pr,"isObject",Sr);var Lr="row-major",Br="column-major";function Nr(r){var o,t;return ir(t=r.order)?t:"object"!=typeof(o=r.strides)||null===o||1===(t=Ir(o))||3===t?Lr:2===t?Br:0===r.shape.length?Lr:null}function Dr(r){return r.data}function Mr(r){var o,t,e,f;return o=Dr(r),e=ar(r,!0),f=sr(r),t=Z(o),{ref:r,dtype:f,data:o,length:fr(e),shape:e,strides:Tr(r,!0),offset:Fr(r),order:Nr(r),accessorProtocol:t,accessors:t?[X(f),Q(f)]:[or(f),er(f)]}}var Ur=16;function Cr(r){return"object"==typeof r&&null!==r&&"Complex128Array"===r.constructor.name&&r.BYTES_PER_ELEMENT===Ur}var zr=8;function Yr(r){return"object"==typeof r&&null!==r&&"Complex64Array"===r.constructor.name&&r.BYTES_PER_ELEMENT===zr}var qr="function"==typeof Float64Array;var Jr="function"==typeof Float64Array?Float64Array:null;function $r(){var r,o,t;if("function"!=typeof Jr)return!1;try{o=new Jr([1,3.14,-3.14,NaN]),t=o,r=(qr&&t instanceof Float64Array||"[object Float64Array]"===yr(t))&&1===o[0]&&3.14===o[1]&&-3.14===o[2]&&o[3]!=o[3]}catch(o){r=!1}return r}var Wr="function"==typeof Float64Array?Float64Array:void 0;var Gr=$r()?Wr:function(){throw new Error("not implemented")};function Zr(r,o){return new Gr(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,2*(r.length-o))}var Kr="function"==typeof Float32Array;var Xr=Number.POSITIVE_INFINITY,Hr="function"==typeof Float32Array?Float32Array:null;var Qr,ro="function"==typeof Float32Array?Float32Array:void 0;Qr=function(){var r,o,t;if("function"!=typeof Hr)return!1;try{o=new Hr([1,3.14,-3.14,5e40]),t=o,r=(Kr&&t instanceof Float32Array||"[object Float32Array]"===yr(t))&&1===o[0]&&3.140000104904175===o[1]&&-3.140000104904175===o[2]&&o[3]===Xr}catch(o){r=!1}return r}()?ro:function(){throw new Error("not implemented")};var oo=Qr;function to(r,o){return new oo(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,2*(r.length-o))}function eo(r,o){if(Cr(r))return Zr(r,o);if(Yr(r))return to(r,o);throw new TypeError(S("invalid argument. First argument must be a complex-valued floating-point array. Value: `%s`.",r))}var fo="function"==typeof Uint8Array;var so=255,no="function"==typeof Uint8Array?Uint8Array:null;var ao,io="function"==typeof Uint8Array?Uint8Array:void 0;ao=function(){var r,o,t;if("function"!=typeof no)return!1;try{o=new no(o=[1,3.14,-3.14,so+1,so+2]),t=o,r=(fo&&t instanceof Uint8Array||"[object Uint8Array]"===yr(t))&&1===o[0]&&3===o[1]&&o[2]===so-2&&0===o[3]&&1===o[4]}catch(o){r=!1}return r}()?io:function(){throw new Error("not implemented")};var uo=ao;function co(r,o){return new uo(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,r.length-o)}function ho(r,o){return o>0?0:(1-r)*o}var po=Array.isArray?Array.isArray:function(r){return"[object Array]"===yr(r)};function lo(r){if("function"!=typeof r)throw new TypeError(S("invalid argument. Must provide a function. Value: `%s`.",r));return function(o){var t,e;if(!po(o))return!1;if(t=o.length,0===t)return!1;for(e=0;est&&at(r)}function ut(r){return Vr(r)&&it(r)}function dt(r){return Sr(r)&&it(r.valueOf())}function ct(r){return ut(r)||dt(r)}function ht(r){return ut(r)&&r>=0}function pt(r){return dt(r)&&r.valueOf()>=0}function lt(r){return ht(r)||pt(r)}J(ct,"isPrimitive",ut),J(ct,"isObject",dt),J(lt,"isPrimitive",ht),J(lt,"isObject",pt);var gt=4294967295;function yt(r){return"object"==typeof r&&null!==r&&"number"==typeof r.length&&at(r.length)&&r.length>=0&&r.length<=gt}var vt=9007199254740991;function mt(r){return"object"==typeof r&&null!==r&&"number"==typeof r.length&&at(r.length)&&r.length>=0&&r.length<=vt}var wt="function"==typeof ArrayBuffer;function bt(r){return wt&&r instanceof ArrayBuffer||"[object ArrayBuffer]"===yr(r)}function xt(r){return"object"==typeof r&&null!==r&&!po(r)}var _t=lo(br.isPrimitive),Et=lo(br.isObject),Tt=lo(br);J(Tt,"primitives",_t),J(Tt,"objects",Et);var Vt=/./;function jt(r){return"boolean"==typeof r}var At=Boolean,Ot=Boolean.prototype.toString;var St=dr();function Pt(r){return"object"==typeof r&&(r instanceof At||(St?function(r){try{return Ot.call(r),!0}catch(r){return!1}}(r):"[object Boolean]"===yr(r)))}function Rt(r){return jt(r)||Pt(r)}J(Rt,"isPrimitive",jt),J(Rt,"isObject",Pt);var Ft="object"==typeof self?self:null,kt="object"==typeof window?window:null,It="object"==typeof globalThis?globalThis:null;function Lt(r){if(arguments.length){if(!jt(r))throw new TypeError(S("invalid argument. Must provide a boolean. Value: `%s`.",r));if(r)return new Function("return this;")()}if(It)return It;if(Ft)return Ft;if(kt)return kt;throw new Error("unexpected error. Unable to resolve global object.")}var Bt=Lt(),Nt=Bt.document&&Bt.document.childNodes,Dt=Int8Array;var Mt="function"==typeof Vt||"object"==typeof Dt||"function"==typeof Nt?function(r){return wo(r).toLowerCase()}:function(r){var o;return null===r?"null":"object"===(o=typeof r)?wo(r).toLowerCase():o};function Ut(r){return"function"===Mt(r)}function Ct(r,o){if(!(this instanceof Ct))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!Vr(r))throw new TypeError(S("invalid argument. Real component must be a number. Value: `%s`.",r));if(!Vr(o))throw new TypeError(S("invalid argument. Imaginary component must be a number. Value: `%s`.",o));return D(this,"re",r),D(this,"im",o),this}J(Ct,"name","Complex128"),J(Ct,"BYTES_PER_ELEMENT",8),J(Ct.prototype,"BYTES_PER_ELEMENT",8),J(Ct.prototype,"byteLength",16),J(Ct.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),J(Ct.prototype,"toJSON",(function(){var r={type:"Complex128"};return r.re=this.re,r.im=this.im,r}));var zt="function"==typeof Math.fround?Math.fround:null,Yt=new oo(1);var qt="function"==typeof zt?zt:function(r){return Yt[0]=r,Yt[0]};function Jt(r,o){if(!(this instanceof Jt))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!Vr(r))throw new TypeError(S("invalid argument. Real component must be a number. Value: `%s`.",r));if(!Vr(o))throw new TypeError(S("invalid argument. Imaginary component must be a number. Value: `%s`.",o));return D(this,"re",qt(r)),D(this,"im",qt(o)),this}function $t(r){return r instanceof Ct||r instanceof Jt||"object"==typeof r&&null!==r&&"number"==typeof r.re&&"number"==typeof r.im}function Wt(r){return at(r/2)}function Gt(){return"function"==typeof lr&&"symbol"==typeof lr("foo")&&pr(lr,"iterator")&&"symbol"==typeof lr.iterator}J(Jt,"name","Complex64"),J(Jt,"BYTES_PER_ELEMENT",4),J(Jt.prototype,"BYTES_PER_ELEMENT",4),J(Jt.prototype,"byteLength",8),J(Jt.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),J(Jt.prototype,"toJSON",(function(){var r={type:"Complex64"};return r.re=this.re,r.im=this.im,r}));var Zt=Gt()?Symbol.iterator:null;function Kt(r,o,t){N(r,o,{configurable:!1,enumerable:!1,get:t})}function Xt(r){return r.re}function Ht(r){return r.im}function Qt(r){var o,t,e;for(o=[];!(t=r.next()).done;)if(yt(e=t.value)&&e.length>=2)o.push(e[0],e[1]);else{if(!$t(e))return new TypeError(S("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",e));o.push(Xt(e),Ht(e))}return o}var re=2*oo.BYTES_PER_ELEMENT,oe=Gt();function te(r){return r instanceof se||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function ee(r){return r===se||"Complex128Array"===r.name}function fe(r,o){return new Jt(r[o*=2],r[o+1])}function se(){var r,o,t,e;if(o=arguments.length,!(this instanceof se))return 0===o?new se:1===o?new se(arguments[0]):2===o?new se(arguments[0],arguments[1]):new se(arguments[0],arguments[1],arguments[2]);if(0===o)t=new oo(0);else if(1===o)if(ht(arguments[0]))t=new oo(2*arguments[0]);else if(mt(arguments[0]))if((e=(t=arguments[0]).length)&&po(t)&&$t(t[0])){if(t=function(r,o){var t,e,f,s;for(t=o.length,s=0,f=0;ft.byteLength-r)throw new RangeError(S("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",e*re));t=new oo(t,r,2*e)}}return J(this,"_buffer",t),J(this,"_length",t.length/2),this}function ne(r){return r.re}function ae(r){return r.im}function ie(r){var o,t,e;for(o=[];!(t=r.next()).done;)if(yt(e=t.value)&&e.length>=2)o.push(e[0],e[1]);else{if(!$t(e))return new TypeError(S("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",e));o.push(ne(e),ae(e))}return o}J(se,"BYTES_PER_ELEMENT",re),J(se,"name","Complex64Array"),J(se,"from",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h;if(!Ut(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!ee(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((t=arguments.length)>1){if(!Ut(e=arguments[1]))throw new TypeError(S("invalid argument. Second argument must be a function. Value: `%s`.",e));t>2&&(o=arguments[2])}if(te(r)){if(i=r.length,e){for(s=(f=new this(i))._buffer,h=0,c=0;c=2))throw new TypeError(S("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[h]=d[0],s[h+1]=d[1]}h+=2}return f}return new this(r)}if(mt(r)){if(e){for(i=r.length,a=r.get&&r.set?X("default"):or("default"),c=0;c=2))throw new TypeError(S("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[h]=d[0],s[h+1]=d[1]}h+=2}return f}return new this(r)}if(xt(r)&&oe&&Ut(r[Zt])){if(!Ut((s=r[Zt]()).next))throw new TypeError(S("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(n=e?function(r,o,t){var e,f,s,n;for(e=[],n=-1;!(f=r.next()).done;)if(n+=1,yt(s=o.call(t,f.value,n))&&s.length>=2)e.push(s[0],s[1]);else{if(!$t(s))return new TypeError(S("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",s));e.push(Xt(s),Ht(s))}return e}(s,e,o):Qt(s),n instanceof Error)throw n;for(s=(f=new this(i=n.length/2))._buffer,c=0;c=this._length))return fe(this._buffer,r)})),Kt(se.prototype,"buffer",(function(){return this._buffer.buffer})),Kt(se.prototype,"byteLength",(function(){return this._buffer.byteLength})),Kt(se.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),J(se.prototype,"BYTES_PER_ELEMENT",se.BYTES_PER_ELEMENT),J(se.prototype,"copyWithin",(function(r,o){if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*o):this._buffer.copyWithin(2*r,2*o,2*arguments[2]),this})),J(se.prototype,"entries",(function(){var r,o,t,e,f,s;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return r=this,e=this._buffer,t=this._length,s=-1,J(o={},"next",(function(){if(s+=1,f||s>=t)return{done:!0};return{value:[s,fe(e,s)],done:!1}})),J(o,"return",(function(r){if(f=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(o,Zt,(function(){return r.entries()})),o})),J(se.prototype,"every",(function(r,o){var t,e;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));if(o<0&&(o+=f)<0&&(o=0),arguments.length>2){if(!at(t))throw new TypeError(S("invalid argument. Third argument must be an integer. Value: `%s`.",t));t<0&&(t+=f)<0&&(t=0),t>f&&(t=f)}else t=f}else o=0,t=f;for(n=Xt(r),a=Ht(r),i=o;i=0;e--)if(f=fe(t,e),r.call(o,f,e,this))return f})),J(se.prototype,"findLastIndex",(function(r,o){var t,e,f;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=this._length-1;e>=0;e--)if(f=fe(t,e),r.call(o,f,e,this))return e;return-1})),J(se.prototype,"forEach",(function(r,o){var t,e,f;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e=this._length))return fe(this._buffer,r)})),J(se.prototype,"includes",(function(r,o){var t,e,f,s,n;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$t(r))throw new TypeError(S("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=Xt(r),s=Ht(r),t=this._buffer,n=o;n1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=Xt(r),s=Ht(r),t=this._buffer,n=o;n=t)return{done:!0};return{value:f,done:!1}})),J(o,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(o,Zt,(function(){return r.keys()})),o})),J(se.prototype,"lastIndexOf",(function(r,o){var t,e,f,s,n;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$t(r))throw new TypeError(S("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o>=this._length?o=this._length-1:o<0&&(o+=this._length)}else o=this._length-1;for(f=Xt(r),s=Ht(r),t=this._buffer,n=o;n>=0;n--)if(f===t[e=2*n]&&s===t[e+1])return n;return-1})),Kt(se.prototype,"length",(function(){return this._length})),J(se.prototype,"map",(function(r,o){var t,e,f,s,n;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=(f=new this.constructor(this._length))._buffer,s=0;s1)e=o,s=0;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=fe(t,0),s=1}for(;s1)e=o,s=f-1;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=fe(t,f-1),s=f-2}for(;s>=0;s--)e=r(e,fe(t,s),s,this);return e})),J(se.prototype,"reverse",(function(){var r,o,t,e,f,s;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(t=this._length,r=this._buffer,e=nt(t/2),f=0;f1){if(!ht(t=arguments[1]))throw new TypeError(S("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",t))}else t=0;if($t(r)){if(t>=this._length)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%u`.",t));return e[t*=2]=Xt(r),void(e[t+1]=Ht(r))}if(te(r)){if(t+(n=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r._buffer,u=e.byteOffset+t*re,o.buffer===e.buffer&&o.byteOffsetu){for(f=new oo(o.length),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r,u=e.byteOffset+t*re,o.buffer===e.buffer&&o.byteOffsetu){for(f=new oo(n),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(t*=2,i=0;ia&&(o=a)}}for(t=rf&&(o=f)}}return r>=f?(f=0,t=e.byteLength):r>=o?(f=0,t=e.byteOffset+r*re):(f=o-r,t=e.byteOffset+r*re),new this.constructor(e.buffer,t,f<0?0:f)})),J(se.prototype,"toLocaleString",(function(r,o){var t,e,f,s,n;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)e=[];else{if(!ir(r)&&!_t(r))throw new TypeError(S("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));e=r}if(arguments.length<2)t={};else{if(!xt(o))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",o));t=o}for(s=this._buffer,f=[],n=0;n=t)return{done:!0};return{value:fe(f,s),done:!1}})),J(r,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(r,Zt,(function(){return o.values()})),r})),J(se.prototype,"with",(function(r,o){var t,e,f;if(!te(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!at(r))throw new TypeError(S("invalid argument. First argument must be an integer. Value: `%s`.",r));if(f=this._length,r<0&&(r+=f),r<0||r>=f)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!$t(o))throw new TypeError(S("invalid argument. Second argument must be a complex number. Value: `%s`.",o));return(t=(e=new this.constructor(this._buffer))._buffer)[2*r]=Xt(o),t[2*r+1]=Ht(o),e}));var ue=2*Gr.BYTES_PER_ELEMENT,de=Gt();function ce(r){return r instanceof le||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function he(r){return r===le||"Complex64Array"===r.name}function pe(r,o){return new Ct(r[o*=2],r[o+1])}function le(){var r,o,t,e;if(o=arguments.length,!(this instanceof le))return 0===o?new le:1===o?new le(arguments[0]):2===o?new le(arguments[0],arguments[1]):new le(arguments[0],arguments[1],arguments[2]);if(0===o)t=new Gr(0);else if(1===o)if(ht(arguments[0]))t=new Gr(2*arguments[0]);else if(mt(arguments[0]))if((e=(t=arguments[0]).length)&&po(t)&&$t(t[0])){if(t=function(r,o){var t,e,f,s;for(t=o.length,s=0,f=0;ft.byteLength-r)throw new RangeError(S("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",e*ue));t=new Gr(t,r,2*e)}}return J(this,"_buffer",t),J(this,"_length",t.length/2),this}function ge(r){var o,t;for(o=[];!(t=r.next()).done;)o.push(At(t.value));return o}J(le,"BYTES_PER_ELEMENT",ue),J(le,"name","Complex128Array"),J(le,"from",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h;if(!Ut(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!he(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((t=arguments.length)>1){if(!Ut(e=arguments[1]))throw new TypeError(S("invalid argument. Second argument must be a function. Value: `%s`.",e));t>2&&(o=arguments[2])}if(ce(r)){if(i=r.length,e){for(s=(f=new this(i))._buffer,h=0,c=0;c=2))throw new TypeError(S("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[h]=d[0],s[h+1]=d[1]}h+=2}return f}return new this(r)}if(mt(r)){if(e){for(i=r.length,a=r.get&&r.set?X("default"):or("default"),c=0;c=2))throw new TypeError(S("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[h]=d[0],s[h+1]=d[1]}h+=2}return f}return new this(r)}if(xt(r)&&de&&Ut(r[Zt])){if(!Ut((s=r[Zt]()).next))throw new TypeError(S("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(n=e?function(r,o,t){var e,f,s,n;for(e=[],n=-1;!(f=r.next()).done;)if(n+=1,yt(s=o.call(t,f.value,n))&&s.length>=2)e.push(s[0],s[1]);else{if(!$t(s))return new TypeError(S("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",s));e.push(ne(s),ae(s))}return e}(s,e,o):ie(s),n instanceof Error)throw n;for(s=(f=new this(i=n.length/2))._buffer,c=0;c=this._length))return pe(this._buffer,r)})),Kt(le.prototype,"buffer",(function(){return this._buffer.buffer})),Kt(le.prototype,"byteLength",(function(){return this._buffer.byteLength})),Kt(le.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),J(le.prototype,"BYTES_PER_ELEMENT",le.BYTES_PER_ELEMENT),J(le.prototype,"copyWithin",(function(r,o){if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*o):this._buffer.copyWithin(2*r,2*o,2*arguments[2]),this})),J(le.prototype,"entries",(function(){var r,o,t,e,f,s,n;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return o=this,r=this._buffer,e=this._length,s=-1,n=-2,J(t={},"next",(function(){var o;if(s+=1,f||s>=e)return{done:!0};return o=new Ct(r[n+=2],r[n+1]),{value:[s,o],done:!1}})),J(t,"return",(function(r){if(f=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(t,Zt,(function(){return o.entries()})),t})),J(le.prototype,"every",(function(r,o){var t,e;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));if(o<0&&(o+=f)<0&&(o=0),arguments.length>2){if(!at(t))throw new TypeError(S("invalid argument. Third argument must be an integer. Value: `%s`.",t));t<0&&(t+=f)<0&&(t=0),t>f&&(t=f)}else t=f}else o=0,t=f;for(n=ne(r),a=ae(r),i=o;i=0;e--)if(f=pe(t,e),r.call(o,f,e,this))return f})),J(le.prototype,"findLastIndex",(function(r,o){var t,e,f;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=this._length-1;e>=0;e--)if(f=pe(t,e),r.call(o,f,e,this))return e;return-1})),J(le.prototype,"forEach",(function(r,o){var t,e,f;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e=this._length))return pe(this._buffer,r)})),Kt(le.prototype,"length",(function(){return this._length})),J(le.prototype,"includes",(function(r,o){var t,e,f,s,n;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$t(r))throw new TypeError(S("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=ne(r),s=ae(r),t=this._buffer,n=o;n1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=ne(r),s=ae(r),t=this._buffer,n=o;n=t)return{done:!0};return{value:f,done:!1}})),J(o,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(o,Zt,(function(){return r.keys()})),o})),J(le.prototype,"lastIndexOf",(function(r,o){var t,e,f,s,n;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!$t(r))throw new TypeError(S("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!at(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o>=this._length?o=this._length-1:o<0&&(o+=this._length)}else o=this._length-1;for(f=ne(r),s=ae(r),t=this._buffer,n=o;n>=0;n--)if(f===t[e=2*n]&&s===t[e+1])return n;return-1})),J(le.prototype,"map",(function(r,o){var t,e,f,s,n;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=(f=new this.constructor(this._length))._buffer,s=0;s1)e=o,s=0;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=pe(t,0),s=1}for(;s1)e=o,s=f-1;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=pe(t,f-1),s=f-2}for(;s>=0;s--)e=r(e,pe(t,s),s,this);return e})),J(le.prototype,"reverse",(function(){var r,o,t,e,f,s;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(t=this._length,r=this._buffer,e=nt(t/2),f=0;f1){if(!ht(t=arguments[1]))throw new TypeError(S("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",t))}else t=0;if($t(r)){if(t>=this._length)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%u`.",t));return e[t*=2]=ne(r),void(e[t+1]=ae(r))}if(ce(r)){if(t+(n=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r._buffer,u=e.byteOffset+t*ue,o.buffer===e.buffer&&o.byteOffsetu){for(f=new Gr(o.length),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r,u=e.byteOffset+t*ue,o.buffer===e.buffer&&o.byteOffsetu){for(f=new Gr(n),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(t*=2,i=0;ia&&(o=a)}}for(t=rf&&(o=f)}}return r>=f?(f=0,t=e.byteLength):r>=o?(f=0,t=e.byteOffset+r*ue):(f=o-r,t=e.byteOffset+r*ue),new this.constructor(e.buffer,t,f<0?0:f)})),J(le.prototype,"toLocaleString",(function(r,o){var t,e,f,s,n;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)e=[];else{if(!br(r)&&!_t(r))throw new TypeError(S("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));e=r}if(arguments.length<2)t={};else{if(!xt(o))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",o));t=o}for(s=this._buffer,f=[],n=0;n=t)return{done:!0};return{value:pe(f,s),done:!1}})),J(r,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(r,Zt,(function(){return o.values()})),r})),J(le.prototype,"with",(function(r,o){var t,e,f;if(!ce(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!at(r))throw new TypeError(S("invalid argument. First argument must be an integer. Value: `%s`.",r));if(f=this._length,r<0&&(r+=f),r<0||r>=f)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!$t(o))throw new TypeError(S("invalid argument. Second argument must be a complex number. Value: `%s`.",o));return(t=(e=new this.constructor(this._buffer))._buffer)[2*r]=ne(o),t[2*r+1]=ae(o),e}));var ye=uo.BYTES_PER_ELEMENT,ve=Gt();function me(r){return"object"==typeof r&&null!==r&&"BooleanArray"===r.constructor.name&&r.BYTES_PER_ELEMENT===ye}function we(r){return r===be}function be(){var r,o,t,e,f;if(o=arguments.length,!(this instanceof be))return 0===o?new be:1===o?new be(arguments[0]):2===o?new be(arguments[0],arguments[1]):new be(arguments[0],arguments[1],arguments[2]);if(0===o)t=new uo(0);else if(1===o)if(ht(f=arguments[0]))t=new uo(f);else if(mt(f))t=function(r,o){var t,e;for(t=o.length,e=0;et.byteLength-r)throw new RangeError(S("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",e*ye));t=new uo(t,r,e)}}return J(this,"_buffer",t),J(this,"_length",t.length),this}J(be,"BYTES_PER_ELEMENT",ye),J(be,"name","BooleanArray"),J(be,"from",(function(r){var o,t,e,f,s,n,a,i,u;if(!Ut(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!we(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if((t=arguments.length)>1){if(!Ut(e=arguments[1]))throw new TypeError(S("invalid argument. Second argument must be a function. Value: `%s`.",e));t>2&&(o=arguments[2])}if(mt(r)){if(e){for(i=r.length,a=r.get&&r.set?X("default"):or("default"),s=(f=new this(i))._buffer,u=0;u=t))return At(o[r])})),Kt(be.prototype,"buffer",(function(){return this._buffer.buffer})),Kt(be.prototype,"byteLength",(function(){return this._buffer.byteLength})),Kt(be.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),J(be.prototype,"BYTES_PER_ELEMENT",be.BYTES_PER_ELEMENT),J(be.prototype,"copyWithin",(function(r,o){if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return 2===arguments.length?this._buffer.copyWithin(r,o):this._buffer.copyWithin(r,o,arguments[2]),this})),J(be.prototype,"entries",(function(){var r,o,t,e,f,s;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return r=this,e=this._buffer,t=this._length,s=-1,J(o={},"next",(function(){if(s+=1,f||s>=t)return{done:!0};return{value:[s,At(e[s])],done:!1}})),J(o,"return",(function(r){if(f=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(o,Zt,(function(){return r.entries()})),o})),J(be.prototype,"every",(function(r,o){var t,e;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e1){if(!ut(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));if(o<0&&(o+=f)<0&&(o=0),arguments.length>2){if(!ut(t))throw new TypeError(S("invalid argument. Third argument must be an integer. Value: `%s`.",t));t<0&&(t+=f)<0&&(t=0),t>f&&(t=f)}else t=f}else o=0,t=f;for(s=r?1:0,n=o;n=0;f--)if(e=At(t[f]),r.call(o,e,f,this))return e})),J(be.prototype,"findLastIndex",(function(r,o){var t,e,f;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,f=this._length-1;f>=0;f--)if(e=At(t[f]),r.call(o,e,f,this))return f;return-1})),J(be.prototype,"forEach",(function(r,o){var t,e;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ut(r))throw new TypeError(S("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e=this._length))return At(this._buffer[r])})),J(be.prototype,"includes",(function(r,o){var t,e;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!jt(r))throw new TypeError(S("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!ut(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(t=this._buffer,e=o;e1){if(!ut(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(t=this._buffer,e=o;e0){if(!ir(r))throw new TypeError(S("invalid argument. First argument must be a string. Value: `%s`.",r))}else r=",";for(o=this._buffer,t=[],e=0;e=t)return{done:!0};return{value:f,done:!1}})),J(o,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(o,Zt,(function(){return r.keys()})),o})),J(be.prototype,"lastIndexOf",(function(r,o){var t,e;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!jt(r))throw new TypeError(S("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!ut(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o>=this._length?o=this._length-1:o<0&&(o+=this._length)}else o=this._length-1;for(t=this._buffer,e=o;e>=0;e--)if(r===At(t[e]))return e;return-1})),Kt(be.prototype,"length",(function(){return this._length})),J(be.prototype,"map",(function(r,o){var t,e,f,s;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Ut(r))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",r);for(f=this._buffer,t=(e=new this.constructor(this._length))._buffer,s=0;s1)f=o,s=0;else{if(0===e)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");f=At(t[0]),s=1}for(;s1)f=o,s=e-1;else{if(0===e)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");f=At(t[e-1]),s=e-2}for(;s>=0;s--)f=r(f,At(t[s]),s,this);return f})),J(be.prototype,"reverse",(function(){var r,o,t,e,f,s;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");for(r=this._buffer,t=this._length,e=nt(t/2),f=0;f1){if(!ht(t=arguments[1]))throw new TypeError(S("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",t))}else t=0;if(mt(r)){if(t+(s=r.length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=me(r)?r._buffer:r,a=e.byteOffset+t*ye,o.buffer===e.buffer&&o.byteOffseta){for(f=new uo(o.length),n=0;n=this._length)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%u`.",t));e[t]=r?1:0}})),J(be.prototype,"slice",(function(r,o){var t,e,f,s,n,a;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(s=this._buffer,n=this._length,0===arguments.length)r=0,o=n;else{if(!ut(r))throw new TypeError(S("invalid argument. First argument must be an integer. Value: `%s`.",r));if(r<0&&(r+=n)<0&&(r=0),1===arguments.length)o=n;else{if(!ut(o))throw new TypeError(S("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0?(o+=n)<0&&(o=0):o>n&&(o=n)}}for(t=rf&&(o=f)}}return r>=f?(f=0,t=e.byteLength):r>=o?(f=0,t=e.byteOffset+r*ye):(f=o-r,t=e.byteOffset+r*ye),new this.constructor(e.buffer,t,f<0?0:f)})),J(be.prototype,"toLocaleString",(function(r,o){var t,e,f,s,n;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(0===arguments.length)e=[];else{if(!ir(r)&&!_t(r))throw new TypeError(S("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));e=r}if(arguments.length<2)t={};else{if(!xt(o))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",o));t=o}for(s=this._buffer,f=[],n=0;n=t)return{done:!0};return{value:At(f[s]),done:!1}})),J(r,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Zt&&J(r,Zt,(function(){return o.values()})),r})),J(be.prototype,"with",(function(r,o){var t,e;if(!me(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!ut(r))throw new TypeError(S("invalid argument. First argument must be an integer. Value: `%s`.",r));if(e=this._length,r<0&&(r+=e),r<0||r>=e)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!jt(o))throw new TypeError(S("invalid argument. Second argument must be a boolean. Value: `%s`.",o));return(t=new this.constructor(this._buffer))._buffer[r]=o?1:0,t}));var xe=[Gr,oo,ko,jo,$o,Mo,ft,uo,Xo,se,le,be],_e=["float64","float32","int32","uint32","int16","uint16","int8","uint8","uint8c","complex64","complex128","bool"],Ee=_e.length;function Te(r){var o;if(po(r))return"generic";if(yo(r))return null;for(o=0;o0)for(d=0;d0)for(i=0;i=0&&n=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=nr(o),t),{sh:r=Fe(r,t),sx:o,idx:t}}function Ie(r){return ut(r)&&r>0}function Le(r){return dt(r)&&r.valueOf()>0}function Be(r){return Ie(r)||Le(r)}function Ne(r){return Object.keys(Object(r))}J(Se,"ndarray",Oe),J(Pe,"assign",(function(r,o,t){var e=Ve(r);return e.accessorProtocol?"complex128"===e.dtype?Re(r,Zr(r,0),o,t):"complex64"===e.dtype?Re(r,to(r,0),o,t):function(r,o,t){var e,f,s,n;for(e=r.data,f=r.accessors[1],n=t,s=0;n>=0&&n=0&&f=0&&o=0&&r.length<=_o&&pr(r,"callee")&&!Ge(r,"callee")},Ke=Array.prototype.slice;var Xe=Ge((function(){}),"prototype"),He=!Ge({toString:null},"toString");function Qe(r,o,t){var e,f;if(!mt(r)&&!ir(r))throw new TypeError(S("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(0===(e=r.length))return-1;if(3===arguments.length){if(!ut(t))throw new TypeError(S("invalid argument. Third argument must be an integer. Value: `%s`.",t));if(t>=0){if(t>=e)return-1;f=t}else(f=e+t)<0&&(f=0)}else f=0;if(Je(o)){for(;f0&&!pr(r,"0"))for(a=0;a1){if(!gf(o))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",o));if(pr(o,"duplicates")&&!jt(u=o.duplicates))throw new TypeError(S("invalid option. `%s` option must be a boolean. Option: `%s`.","duplicates",u))}if(e=(t=uf(r)).length,n={},u)for(i=0;io&&(o=e)}return(e=_f.BLOCK_SIZE_IN_BYTES/o|0)>0?e:1}function Tf(r){return Ef([r])}function Vf(r,o,t,e,f,s){var n,a,i,u,d;for(n=r.length,a=1,d=0;d=a&&(f=a-1);else if("wrap"===s)f<0?(f+=a)<0&&0!==(f%=a)&&(f+=a):f>=a&&(f-=a)>=a&&(f%=a);else if("normalize"===s&&f<0&&(f+=a),f<0||f>=a)throw new RangeError(S("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",a,f));if(i=t,xr(e)){for(d=0;d=0;d--)f-=u=f%r[d],f/=r[d],i+=u*o[d];return i}var jf="throw";var Af="throw";var Of="throw";var Sf=[function(r){return!!r.data[r.offset]},function(r){var o,t,e,f,s;for(e=r.shape[0],t=r.strides[0],f=r.offset,o=r.data,s=0;s0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(A0;)for(j0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(A0;)for(j0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($=i&&(f=i-1);else if("wrap"===s)f<0?(f+=i)<0&&0!==(f%=i)&&(f+=i):f>=i&&(f-=i)>=i&&(f%=i);else if("normalize"===s&&f<0&&(f+=i),f<0||f>=i)throw new RangeError(S("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",i,f));if(0===t){if(xr(e)){for(c=0;c=0;c--)f-=d=f%r[c],f/=r[c],n[c]=d;return n}if(xr(e)){for(c=a-1;c>=0;c--)(d=o[c])<0?(f-=(u=Uf(f/d))*d,n[c]=r[c]-1+u):(f-=(u=Uf(f/d))*d,n[c]=u);return n}for(c=0;c0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(O0;)for(A0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(P0;)for(S0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(S0;)for(O0;)for(A0;)for(j0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0}var fs,ss={float64:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},float32:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},float16:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},int64:{float64:0,float32:0,float16:0,int64:1,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},int32:{float64:1,float32:0,float16:0,int64:1,int32:1,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},int16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:1,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},int8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},uint64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint32:{float64:1,float32:0,float16:0,int64:1,int32:0,int16:0,int8:0,uint64:1,uint32:1,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},uint8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},uint8c:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex128:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex32:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},generic:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},binary:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:1,generic:0,bool:0},bool:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:1}};var ns=function(r){return 0===arguments.length?function(){var r,o,t,e,f,s,n,a,i;for(t={},o=(r=uf(ss)).length,i=0;i0}var is,us={float64:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},float32:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},float16:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},int64:{float64:0,float32:0,float16:0,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},int32:{float64:1,float32:0,float16:0,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},int16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},int8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},uint64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint32:{float64:1,float32:0,float16:0,int64:1,int32:0,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},uint8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},uint8c:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex128:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:0,bool:0},complex64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:0,bool:0},complex32:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:0,bool:0},generic:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},binary:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:1,generic:0,bool:0},bool:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:1}};var ds=function(r){return 0===arguments.length?function(){var r,o,t,e,f,s,n,a,i;for(t={},o=(r=uf(us)).length,i=0;i0}function hs(r,o,t){return"unsafe"===t||(Qf(r)===Qf(o)||"none"!==t&&"equiv"!==t&&("safe"===t?es(r,o):"mostly-safe"===t?as(r,o):cs(r,o)))}function ps(r,o){var t,e,f,s;for(f=Te(r),e=Z(r)?X(f):or(f),t=r.length,s=0;s0&&o.push("generic"),o)}var ws=ls(ms("boolean"));function bs(r){return ws(String(r))}var xs=ls(ms("boolean_index"));function _s(r){return xs(String(r))}function Es(r,o,t,e){var f=$(o,t,e);return f[0]>=0&&f[1]0&&o.push("o"),o)}var Ls=ls(Is("complex_floating_point"));var Bs,Ns,Ds,Ms=ls(ms());function Us(r,o){return null!=r&&("symbol"==typeof o?o in Object(r):String(o)in Object(r))}function Cs(r){var o=typeof r;return"number"===o?wf(r)?r:null:"string"===o?Hf(r):"object"===o&&r&&ut(r.enum)?r.enum:Kf(r)?Hf("userdefined_type"):null}function zs(r){return 0===arguments.length?{binary:"byte",bool:"boolean",complex32:"half-precision floating-point complex number",complex64:"single-precision floating-point complex number",complex128:"double-precision floating-point complex number",float16:"half-precision floating-point number",bfloat16:"brain floating-point number",float32:"single-precision floating-point number",float64:"double-precision floating-point number",float128:"quadruple-precision floating-point number",generic:"generic array value",int8:"signed 8-bit integer",int16:"signed 16-bit integer",int32:"signed 32-bit integer",int64:"signed 64-bit integer",int128:"signed 128-bit integer",int256:"signed 256-bit integer",uint8:"unsigned 8-bit integer",uint8c:"unsigned 8-bit integer (clamped)",uint16:"unsigned 16-bit integer",uint32:"unsigned 32-bit integer",uint64:"unsigned 64-bit integer",uint128:"unsigned 128-bit integer",uint256:"unsigned 256-bit integer"}:(void 0===Bs&&(Bs={binary:"byte",bool:"boolean",complex32:"half-precision floating-point complex number",complex64:"single-precision floating-point complex number",complex128:"double-precision floating-point complex number",float16:"half-precision floating-point number",bfloat16:"brain floating-point number",float32:"single-precision floating-point number",float64:"double-precision floating-point number",float128:"quadruple-precision floating-point number",generic:"generic array value",int8:"signed 8-bit integer",int16:"signed 16-bit integer",int32:"signed 32-bit integer",int64:"signed 64-bit integer",int128:"signed 128-bit integer",int256:"signed 256-bit integer",uint8:"unsigned 8-bit integer",uint8c:"unsigned 8-bit integer (clamped)",uint16:"unsigned 16-bit integer",uint32:"unsigned 32-bit integer",uint64:"unsigned 64-bit integer",uint128:"unsigned 128-bit integer",uint256:"unsigned 256-bit integer"}),Bs[Qf(r)]||null)}function Ys(r){return 0===arguments.length?{binary:"r",bool:"x",complex32:"j",complex64:"c",complex128:"z",float16:"h",bfloat16:"e",float32:"f",float64:"d",float128:"g",generic:"o",int8:"s",int16:"k",int32:"i",int64:"l",int128:"m",int256:"n",uint8:"b",uint8c:"a",uint16:"t",uint32:"u",uint64:"v",uint128:"w",uint256:"y"}:(void 0===Ns&&(Ns={binary:"r",bool:"x",complex32:"j",complex64:"c",complex128:"z",float16:"h",bfloat16:"e",float32:"f",float64:"d",float128:"g",generic:"o",int8:"s",int16:"k",int32:"i",int64:"l",int128:"m",int256:"n",uint8:"b",uint8c:"a",uint16:"t",uint32:"u",uint64:"v",uint128:"w",uint256:"y"}),Ns[Qf(r)]||null)}function qs(r){var o;return 0===arguments.length?{binary:1,bool:1,complex32:2,complex64:4,complex128:8,float16:2,bfloat16:2,float32:4,float64:8,float128:16,generic:null,int8:1,int16:2,int32:4,int64:8,int128:16,int256:32,uint8:1,uint8c:1,uint16:2,uint32:4,uint64:8,uint128:16,uint256:32}:(void 0===Ds&&(Ds={binary:1,bool:1,complex32:2,complex64:4,complex128:8,float16:2,bfloat16:2,float32:4,float64:8,float128:16,generic:null,int8:1,int16:2,int32:4,int64:8,int128:16,int256:32,uint8:1,uint8c:1,uint16:2,uint32:4,uint64:8,uint128:16,uint256:32}),r?Ie(o=r.alignment)?o:Ds[Qf(r)]||null:null)}function Js(r,o){var t,e,f;if(t=arguments.length,!(this instanceof Js))return t<2?new Js(r):new Js(r,o);if(Ms(r))e="builtin";else{if(function(r){return r instanceof Js||"object"==typeof r&&null!==r&&"DataType"===r.constructor.name&&ir(r.char)&&ir(r.description)&&ir(r.byteOrder)&&Us(r,"value")}(r))return new Js(r.value,{description:r.description});if(!Kf(r))throw new TypeError(S("invalid argument. First argument must be either a supported data type string, a struct constructor, or another data type instance. Value: `%s`.",r));e="struct"}if(t>1){if(!gf(f=o))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",f));if(pr(f,"description")&&!ir(f.description))throw new TypeError(S("invalid option. `%s` option must be a string. Option: `%s`.","description",f.description))}else f={};return J(this,"_value",r),J(this,"_description",f.description||zs(r)||""),J(this,"_char",Ys(r)||""),J(this,"_enum",Cs(r)||-1),J(this,"_alignment",qs(r)||-1),J(this,"_byteLength",xf(r)||-1),J(this,"_byteOrder","host"),J(this,"_type",e),this}function $s(r){return r instanceof Js||"object"==typeof r&&null!==r&&ut(r.alignment)&&ut(r.byteLength)&&ir(r.byteOrder)&&ir(r.char)&&ut(r.enum)&&Us(r,"value")}function Ws(r){return Ut(r)&&Ie(r.alignment)&&Ie(r.byteLength)&&Ut(r.byteLengthOf)&&Ut(r.byteOffsetOf)&&Ut(r.bufferOf)&&Ut(r.viewOf)||$s(r)&&Ws(r.value)}function Gs(r){return Ms(r)||((o=r)instanceof Js||"object"==typeof o&&null!==o&&ut(o.alignment)&&ut(o.byteLength)&&ir(o.byteOrder)&&ir(o.char)&&ut(o.enum)&&Us(o,"value"))||Ws(r);var o}function Zs(r){return r instanceof Js||"object"==typeof r&&null!==r&&ut(r.alignment)&&ut(r.byteLength)&&ir(r.byteOrder)&&ir(r.char)&&ut(r.enum)&&Us(r,"value")}function Ks(r,o){if(Ms(r));else if(Zs(r))r=String(r);else{if(!Ws(r))return!1;r=r.layout}if(Ms(o));else if(Zs(o))o=String(o);else{if(!Ws(o))return!1;o=o.layout}return r===o}J(Js,"name","DataType"),Kt(Js.prototype,"alignment",(function(){return this._alignment})),Kt(Js.prototype,"byteLength",(function(){return this._byteLength})),Kt(Js.prototype,"byteOrder",(function(){return this._byteOrder})),Kt(Js.prototype,"char",(function(){return this._char})),Kt(Js.prototype,"description",(function(){return this._description})),Kt(Js.prototype,"enum",(function(){return this._enum})),Kt(Js.prototype,"value",(function(){return this._value})),J(Js.prototype,"toJSON",(function(){return{type:"DataType",value:this.toString(),byteOrder:this._byteOrder,description:this._description}})),J(Js.prototype,"toString",(function(){return"struct"===this._type?this._value.layout:String(this._value)})),J(Js.prototype,"valueOf",(function(){return this.toString()}));var Xs=ls(ms("floating_point"));function Hs(r){return Xs(String(r))}var Qs=ls(ms("index"));var rn=["throw","normalize","clamp","wrap"];function on(){return rn.slice()}function tn(){return{throw:1,clamp:2,wrap:3,normalize:4}}J(on,"enum",tn);var en=ls(on()),fn=["none","promoted","accumulation","output"];function sn(){return fn.slice()}function nn(){return{none:0,promoted:1,accumulation:2,output:3}}J(sn,"enum",nn),function(r,o){var t,e,f;for(t=uf(o),f=0;ft)return!1;t=e}return!0}function qn(r){return"row-major"===r}function Jn(r,o){return r2){if(e=ha(pa[t]))return new e(r,o);throw new TypeError(S("invalid argument. Must provide a recognized data type. Value: `%s`.",t))}return new la(r,o)}(e,f,ga[r.type])}}var va={float64:Gr,float32:oo,int16:$o,int32:ko,int8:ft,uint16:Mo,uint32:jo,uint8:uo,uint8c:Xo,complex64:se,complex128:le,bool:be};function ma(r){return va[r]||null}function wa(){return{dtypes:{default:"float64",numeric:"float64",real:"float64",floating_point:"float64",real_floating_point:"float64",complex_floating_point:"complex128",integer:"int32",signed_integer:"int32",unsigned_integer:"uint32",boolean:"bool",index:"int32",integer_index:"int32",boolean_index:"bool",mask_index:"uint8"}}}var ba={dtypes:{default:"float64",numeric:"float64",real:"float64",floating_point:"float64",real_floating_point:"float64",complex_floating_point:"complex128",integer:"int32",signed_integer:"int32",unsigned_integer:"uint32",boolean:"bool",index:"int32",integer_index:"int32",boolean_index:"bool",mask_index:"uint8"}},xa={"dtypes.default":ba.dtypes.default,"dtypes.numeric":ba.dtypes.numeric,"dtypes.real":ba.dtypes.real,"dtypes.floating_point":ba.dtypes.floating_point,"dtypes.real_floating_point":ba.dtypes.real_floating_point,"dtypes.complex_floating_point":ba.dtypes.complex_floating_point,"dtypes.integer":ba.dtypes.integer,"dtypes.signed_integer":ba.dtypes.signed_integer,"dtypes.unsigned_integer":ba.dtypes.unsigned_integer,"dtypes.boolean":ba.dtypes.boolean,"dtypes.index":ba.dtypes.index,"dtypes.integer_index":ba.dtypes.integer_index,"dtypes.boolean_index":ba.dtypes.boolean_index,"dtypes.mask_index":ba.dtypes.mask_index};J(wa,"get",(function(r){var o=xa[r];return void 0===o?null:o}));var _a=wa.get("dtypes.default"),Ea=ma("complex64"),Ta=ma("complex128"),Va=ma("bool");function ja(){var r,o,t,e;if(null===(t=ma(o=(r=arguments.length)&&ir(arguments[r-1])?arguments[r-=1]:_a)))throw new TypeError(S("invalid argument. Must provide a recognized data type. Value: `%s`.",o));return r<=0?new t(0):1===r?((e=arguments[0])instanceof Ea?e=to(e,0):e instanceof Ta?e=Zr(e,0):e instanceof Va&&(e=co(e,0)),new t(e)):2===r?new t(arguments[0],arguments[1]):new t(arguments[0],arguments[1],arguments[2])}function Aa(r){if(r.length)return r.isStructType?function(r){return function(){var o,t,e,f;for(o=(t=this[ta]).byteOffset+r.byteOffset,e=[],f=0;f0&&o.push("generic"),o)}var Ra=ls(Pa("real_floating_point")),Fa=ls(Pa("signed_integer")),ka=Lt();function Ia(){return"function"==typeof ka.BigInt&&"function"==typeof BigInt&&"bigint"==typeof ka.BigInt("1")&&"bigint"==typeof BigInt("1")}function La(r){return"bigint"==typeof r}function Ba(r){return"object"==typeof r&&"[object BigInt]"===yr(r)&&function(r){try{return"bigint"==typeof r.valueOf()}catch(r){return!1}}(r)}function Na(r){return La(r)||Ba(r)}function Da(r){return function(){return r}}J(Na,"isPrimitive",La),J(Na,"isObject",Ba);var Ma,Ua=Da(!1),Ca=Da(!1),za=Da(!1);J(Ua,"isPrimitive",Ca),J(Ua,"isObject",za),Ma=Ia()?Na:Ua;const{isPrimitive:Ya}=Ma;function qa(r){return 0===r&&1/r===st}var Ja=1401298464324817e-60,$a=16777215,Wa=-16777215;function Ga(r){return r!=r||r===Xr||r===st?"float32":at(r)?r>=Wa&&r<=$a?"float32":"float64":r>-Ja&&r=rt?"int8":r>=zo?"int16":r>=So?"int32":"float64":r<=so?"uint8":r<=Lo?"uint16":r<=_o?"uint32":"float64":r>-Ja&&r=rt?"int8":r>=zo?"int16":r>=So?"int32":"float64":r<=Qo?"int8":r<=Co?"int16":r<=Oo?"int32":"float64"}(t):Za(t):fi.dtypes.real,f=t):$t(t)?(e=oi(t)||("float32"===r.type?"complex64":"complex128"),f=t.re):jt(t)?(e="bool",f=ti(t)):Ya(t)?(e="int64",f=ei(t)):(e="generic",f=t);if(!hs(e,r.type,r.castingMode))throw new TypeError(S("invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].",r.name,r.type,e));this[ta][o](r.byteOffset,f,da)}}function ni(r){return At(r)}function ai(r){return At(r.re||r.im)}function ii(r,o){return function(t){var e,f;jt(t)?(e="bool",f=ti(t)):Vr(t)?(e=fi.dtypes.real,f=ti(ni(t))):Ya(t)?(e="int64",f=ti(function(r){return At(r)}(t))):$t(t)?(e=oi(t)||fi.dtypes.complex,f=ti(ai(t))):(e="generic",f=At(t));if(!hs(e,r.type,r.castingMode))throw new TypeError(S("invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].",r.name,r.type,e));this[ta][o](r.byteOffset,f,da)}}var ui="function"==typeof BigInt?BigInt:void 0;function di(r,o){return function(t){var e,f;Ya(t)?(e="int64",f=t):Vr(t)?ut(t)?(e=Za(t),f=ui(t)):(e=fi.dtypes.real,f=ui(nt(t))):jt(t)?(e="bool",f=function(r){return ui(r?1:0)}(t)):$t(t)?(e=oi(t)||fi.dtypes.complex,f=ui(nt(t.re))):(e="generic",f=ui(nt(jr(f))));if(!hs(e,r.type,r.castingMode))throw new TypeError(S("invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].",r.name,r.type,e));this[ta][o](r.byteOffset,f,da)}}function ci(r,o,t,e,f,s,n){var a,i,u,d,c,h,p;for(a=o.data,i=f.data,d=o.accessors[0],u=f.accessors[1],c=e,h=n,p=0;p0)for(d=0;d0)for(h=0;h0)for(i=0;i0&&(a+=o),Si(u=n(s,i))||(a+=String(u)),i+=e;return a}(r,o,a,e,f);for(n=f,s="",u=0;u0&&(s+=o),Si(i=t[n])||(s+=String(i)),n+=e;return s}function Ri(r,o){return Pi(r.length,o,r,1,0)}function Fi(r,o){return jt(r)?null:new TypeError(S("invalid argument. `%s` field must be a boolean. Value: `%s`.",o,r))}J((function(r,o,t,e){return Pi(r,o,t,e,ho(r,e))}),"ndarray",Pi);var ki=["int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64","complex64","complex128","bool"];var Ii,Li={int8:1,int16:2,int32:4,int64:8,uint8:1,uint16:2,uint32:4,uint64:8,float16:2,float32:4,float64:8,complex32:2,complex64:4,complex128:8,bool:1},Bi=["name","type"],Ni={name:function(r,o){return ir(r)||r.length>0?null:new TypeError(S("invalid argument. `%s` field must be a non-empty string. Value: `%s`.",o,r))},type:function(r){return ps(ki,r)||Kf(r)?null:new TypeError(S('invalid argument. `%s` field must be either a struct type or one of the following: "%s". Value: `%s`.',"type",Ri(ki,", "),r))},description:function(r,o){return ir(r)?null:new TypeError(S("invalid argument. `%s` field must be a string. Value: `%s`.",o,r))},length:function(r,o){return Ie(r)?null:new TypeError(S("invalid argument. `%s` field must be a positive integer. Value: `%s`.",o,r))},enumerable:Fi,writable:Fi,default:Da(null),castingMode:(Ii=["none","safe","mostly-safe","same-kind","unsafe"],function(r,o){return ps(Ii,r)?null:new TypeError(S('invalid argument. `%s` field must be one of the following: "%s". Value: `%s`.',o,Ri(Ii,", "),r))})};function Di(r,o){var t,e,f,s,n;for(t={isStructType:!1,description:"",byteLength:0,byteOffset:0,alignment:0,padding:0,enumerable:!0,writable:!0,default:void 0,castingMode:"none"},n=0;no&&(o=t);return o}function Ui(r){var o,t,e,f,s,n,a;if(0===(o=r.fields).length)return null;for(e=[],a=0;a0&&s.byteOffset===r[n-1].byteOffset||(s.isStructType?o.push(gs(s.type.layout,e,Ji(s.byteOffset))):o.push(S("|<%s>[%u,%u]",s.type,s.byteOffset,s.byteLength)));return"|"===(t=S("%s|",o.join("")))[t.length-2]&&(t=t.substring(0,t.length-1)),t}var Wi=["none","linear","layout"],Gi=ls(Wi);function Zi(r,o,t){var e;if(!gf(t))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",t));if(e={format:"none"},pr(t,"format")&&(e.format=t.format,!Gi(e.format)))throw new TypeError(S('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"format",Ri(Wi,", "),t.format));return"linear"===e.format?function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E;for(v=o.length,t="%"+(r.byteLength-1).toString().length+"s",g=0,x=0;xg&&(g=y);for(e="%"+g+"s",f="// %s",a="%s: %s %s",c=0,u=[],x=0;x0&&m.byteOffset===o[x-1].byteOffset)){for(d=x1?" (byte %u)":"",d){for(n=" => union: %s",i=[],E=x+1;E":w.type,i.push(S("%s<%s>[%u]",w.name,b,_%w.alignment)),E+=1;n=S(n,i.join(", "))}else n="";i=S(s+n,_%m.alignment),l=m.length?S(f,S("%s[%u]%s",m.type,nt(_/m.alignment),i)):S(f,S("%s%s",m.type,i)),u.push(S(a,h,p,l)),c+=1}for(_=0;_"}function Ki(){}var Xi="foo"===Ki.name;var Hi=[Gr,oo,ko,jo,$o,Mo,ft,uo,Xo],Qi=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"],ru=$r()?pf(Gr):ou;function ou(){}ru="TypedArray"===function(r){if(!1===Ut(r))throw new TypeError(S("invalid argument. Must provide a function. Value: `%s`.",r));return Xi?r.name:mo.exec(r.toString())[1]}(ru)?ru:ou;var tu=[le,se],eu=["Complex64Array","Complex128Array"];function fu(){return"function"==typeof lr&&"symbol"==typeof lr("foo")&&pr(lr,"hasInstance")&&"symbol"==typeof lr.hasInstance}var su=fu()?Symbol.hasInstance:null,nu=fu();function au(r,o){if("function"!=typeof o&&(!nu||"object"!=typeof o||"function"!=typeof o[su]))throw new TypeError(S("invalid argument. Second argument must be callable. Value: `%s`.",o));return r instanceof o}var iu=[[Gr,"Float64Array"],[oo,"Float32Array"],[ko,"Int32Array"],[jo,"Uint32Array"],[$o,"Int16Array"],[Mo,"Uint16Array"],[ft,"Int8Array"],[uo,"Uint8Array"],[Xo,"Uint8ClampedArray"],[se,"Complex64Array"],[le,"Complex128Array"],[be,"BooleanArray"]];function uu(r){var o,t;for(t=0;t0){if(!xt(r))throw new TypeError(S("invalid argument. First argument must be an object. Value: `%s`.",r));p=r}if(J(this,ta,h),void 0!==p){for(i=Nf(void 0,n.length),c={},y=0;y0&&((s=r[a-1]).padding=e,Oi(n)&&qi(s.fields,e)),n.byteOffset=f,Oi(n))for(i=0;i0?arguments[0]:{})})),J(u.prototype,"toJSON",(function(){if(!(this instanceof u))throw new Error("invalid invocation. `this` is not a struct instance.");return function(r,o){var t,e,f,s;for(t={},s=0;s=Wa&&r<=$a?"float32":"float64":r>-Ja&&r=rt?"int8":r>=zo?"int16":r>=So?"int32":"float64":r<=so?"uint8":r<=Lo?"uint16":r<=_o?"uint32":"float64":r>-Ja&&r=rt?"int8":r>=zo?"int16":r>=So?"int32":"float64":r<=Qo?"int8":r<=Co?"int16":r<=Oo?"int32":"float64"}function bu(r,o){return function(r){return hu.isStruct(r)}(r)&&r.toString({format:"layout"})===o}function xu(r,o){var t=Qf(o)||"";return"generic"===t||("binary"===t?function(r){return ut(r)&&"uint8"===mu(r)}(r):zn(t)?function(r){return Vr(r)}(r):lu(t)?function(r,o){return ut(r)&&es(mu(r),o)}(r,t):yu(t)?function(r,o){return ut(r)&&es(wu(r),o)}(r,t):bs(t)?function(r){return jt(r)}(r):Rs(t)?function(r){return Vr(r)||$t(r)}(r):!!Ws(o)&&bu(r,t))}var _u={};D(_u,"hasEqualShape",(function(r,o){return function(r,o){var t;if(r.length!==o.length)return!1;for(t=0;t=fr(o)})),D(_u,"isCastingMode",(function(r){var o;for(o=0;o=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=nr(o),e),{sh:r=Fe(r,e),sx:o,sy:t=Fe(t,e),idx:e}}function ju(r,o){return Ef([r,o])}var Au="throw";var Ou="throw";var Su=[function(r,o){o.data[o.offset]=r.data[r.offset]},function(r,o){var t,e,f,s,n,a,i,u;for(n=r.shape[0],f=r.strides[0],s=o.strides[0],a=r.offset,i=o.offset,t=r.data,e=o.data,u=0;u0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr=0&&"/"!==r[t];t--);return void 0===t||t<=0?r.replace(zu,"\\$&"):(o=(o=r.substring(1,t)).replace(zu,"\\$&"),r=r[0]+o+r.substring(t))}(o),"g");else if(!Ju(o))throw new TypeError(S("invalid argument. Second argument must be a string or regular expression. Value: `%s`.",o));if(!ir(t)&&!Ut(t))throw new TypeError(S("invalid argument. Third argument must be a string or replacement function. Value: `%s`.",t));return gs(r,o,t)}var Wu={int8:"new Int8Array( [ {{data}} ] )",uint8:"new Uint8Array( [ {{data}} ] )",uint8c:"new Uint8ClampedArray( [ {{data}} ] )",int16:"new Int16Array( [ {{data}} ] )",uint16:"new Uint16Array( [ {{data}} ] )",int32:"new Int32Array( [ {{data}} ] )",uint32:"new Uint32Array( [ {{data}} ] )",float32:"new Float32Array( [ {{data}} ] )",float64:"new Float64Array( [ {{data}} ] )",generic:"[ {{data}} ]",binary:"new Buffer( [ {{data}} ] )",complex64:"new Complex64Array( [ {{data}} ] )",complex128:"new Complex128Array( [ {{data}} ] )",bool:"new BooleanArray( [ {{data}} ] )"};var Gu={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},Zu=_n(),Ku={throw:1,clamp:2,wrap:3,normalize:4};var Xu=4294967295,Hu=4294967296,Qu=new uo(8),rd=new oa(Qu.buffer);function od(r,o,t,e){var f,s,n;if(0===r){for(n=0;n>>0,f=nt(r/Hu),da?(rd.setUint32(0,s,da),rd.setUint32(4,f,da)):(rd.setUint32(0,f,da),rd.setUint32(4,s,da)),n=0;n>>0,e=nt(r/4294967296),t=new oa(o.buffer),da?(t.setUint32(0,f,da),t.setUint32(4,e,da)):(t.setUint32(0,e,da),t.setUint32(4,f,da))),o}),"assign",od);var td={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},ed=_n(),fd={throw:1,clamp:2,wrap:3,normalize:4};function sd(r,o,t,e,f,s){var n,a,i,u,d;if(!(this instanceof sd))return new sd(r,o,t,e,f,s);for(u=1,d=0;d=0;u--)if(!((d=a-n+u)<0)){if(i=f[d],0!==(e=o[u])&&eo?-1:r}function id(r,o){var t,e,f,s;for(t={},e=[],s=0;s0?t:0)-t,g=function(r,o){return ze(r)||ze(o)?NaN:r===st||o===st?st:r===o&&0===r?qa(r)?r:o:r0&&(s+=p*c+h*d),a=[],f=[],y=0;y=0;n--)r-=s=r%t[n],r/=t[n],f+=s*o[n];return this._accessors?this._buffer.get(f):this._buffer[f]})),J(sd.prototype,"set",(function(){var r,o;for(r=this._offset,o=0;o=0;a--)r-=n=r%e[a],r/=e[a],s+=n*t[a];return this._accessors?this._buffer.set(o,s):this._buffer[s]=o,this})),J(sd.prototype,"toString",(function(){var r,o,t,e,f,s;if(o=this._shape.length,t="ndarray( '"+(e=this._dtype)+"', ",r="",this._length<=100)if("complex64"===e||"complex128"===e)for(s=0;s=0;s--)r+=ne(f=this.iget(this._length-1-s))+", "+ae(f),s>0&&(r+=", ");else for(s=2;s>=0;s--)r+=this.iget(this._length-1-s),s>0&&(r+=", ")}if(t+=$u(Wu[this.dtype],"{{data}}",r),t+=", ",t+=0===o?"[]":"[ "+this._shape.join(", ")+" ]",t+=", ",t+="[ ",0===o)t+="0";else for(s=0;s0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(A0;)for(j0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(A0;)for(j0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=a.byteLength)throw new RangeError(S("invalid argument. Second argument exceeds the bounds of the ArrayBuffer. Value: `%s`.",t));if(2===n){if(!ut(i=(a.byteLength-t)/o))throw new RangeError(S("invalid argument. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.",o,a.byteLength-t))}else{if(!ht(i=e))throw new TypeError(S("invalid argument. Third argument must be a nonnegative integer. Value: `%s`.",i));if(i*o>a.byteLength-t)throw new RangeError(S("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*o))}}return J(this,"_buffer",a),J(this,"_byteOffset",t||0),J(this,"_byteLength",i*o),J(this,"_length",i),this}return o=f.byteLength,t=f.layout,e=f.fields,J(s,"BYTES_PER_ELEMENT",o),J(s,"name",Od),J(s,"struct",f),Kt(s.prototype,"buffer",(function(){return this._buffer})),Kt(s.prototype,"byteLength",(function(){return this._byteLength})),Kt(s.prototype,"byteOffset",(function(){return this._byteOffset})),J(s.prototype,"BYTES_PER_ELEMENT",s.BYTES_PER_ELEMENT),J(s.prototype,"get",(function(r){if(!n(this))throw new TypeError(S("invalid invocation. `this` is not a %s.",Od));if(!ht(r))throw new TypeError(S("invalid argument. Must provide a nonnegative integer. Value: `%s`.",r));if(!(r>=this._length))return new f(this._buffer,this._byteOffset+r*o,o)})),Kt(s.prototype,"length",(function(){return this._length})),J(s.prototype,"set",(function(r){var s,a,i,u,d,c,h,p,l,g,y,v;if(!n(this))throw new TypeError(S("invalid invocation. `this` is not a %s.",Od));if(u=this._buffer,arguments.length>1){if(!ht(i=arguments[1]))throw new TypeError(S("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(a={format:"layout"},h=f.byteLength,!mt(r)||ps(e,"length")){if(i>=this._length)throw new RangeError(S("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));if(!xt(r))throw new TypeError(S("invalid argument. Must provide either a valid object or a struct instance. Value: `%s`.",r));if(r.toString(a)===t)return s=f.viewOf(r),void gi(h,new uo(s.buffer,s.byteOffset,h),1,0,new uo(u,this._byteOffset+i*o,h),1,0);for(l=new f(u,this._byteOffset+i*o,h),y=0;ythis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(c=(s=r).get&&s.set?X("default"):or("default"),v=this._byteOffset+i*o,s.buffer===u&&s.byteOffsetv){for(d=[],y=0;y>18&63]+Fd[f>>12&63]+Fd[f>>6&63]+Fd[63&f]);return s.join("")}function Dd(r){var o;Ld||Bd();for(var t=r.length,e=t%3,f="",s=[],n=16383,a=0,i=t-e;ai?i:a+n));return 1===e?(o=r[t-1],f+=Fd[o>>2],f+=Fd[o<<4&63],f+="=="):2===e&&(o=(r[t-2]<<8)+r[t-1],f+=Fd[o>>10],f+=Fd[o>>4&63],f+=Fd[o<<2&63],f+="="),s.push(f),s.join("")}function Md(r,o,t,e,f){var s,n,a=8*f-e-1,i=(1<>1,d=-7,c=t?f-1:0,h=t?-1:1,p=r[o+c];for(c+=h,s=p&(1<<-d)-1,p>>=-d,d+=a;d>0;s=256*s+r[o+c],c+=h,d-=8);for(n=s&(1<<-d)-1,s>>=-d,d+=e;d>0;n=256*n+r[o+c],c+=h,d-=8);if(0===s)s=1-u;else{if(s===i)return n?NaN:1/0*(p?-1:1);n+=Math.pow(2,e),s-=u}return(p?-1:1)*n*Math.pow(2,s-e)}function Ud(r,o,t,e,f,s){var n,a,i,u=8*s-f-1,d=(1<>1,h=23===f?Math.pow(2,-24)-Math.pow(2,-77):0,p=e?0:s-1,l=e?1:-1,g=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(a=isNaN(o)?1:0,n=d):(n=Math.floor(Math.log(o)/Math.LN2),o*(i=Math.pow(2,-n))<1&&(n--,i*=2),(o+=n+c>=1?h/i:h*Math.pow(2,1-c))*i>=2&&(n++,i/=2),n+c>=d?(a=0,n=d):n+c>=1?(a=(o*i-1)*Math.pow(2,f),n+=c):(a=o*Math.pow(2,c-1)*Math.pow(2,f),n=0));f>=8;r[t+p]=255&a,p+=l,a/=256,f-=8);for(n=n<0;r[t+p]=255&n,p+=l,n/=256,u-=8);r[t+p-l]|=128*g}var Cd={}.toString,zd=Array.isArray||function(r){return"[object Array]"==Cd.call(r)};$d.TYPED_ARRAY_SUPPORT=void 0===Rd.TYPED_ARRAY_SUPPORT||Rd.TYPED_ARRAY_SUPPORT;var Yd=qd();function qd(){return $d.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Jd(r,o){if(qd()=qd())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+qd().toString(16)+" bytes");return 0|r}function Hd(r){return!(null==r||!r._isBuffer)}function Qd(r,o){if(Hd(r))return r.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;"string"!=typeof r&&(r=""+r);var t=r.length;if(0===t)return 0;for(var e=!1;;)switch(o){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":case void 0:return jc(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t;case"hex":return t>>>1;case"base64":return Ac(r).length;default:if(e)return jc(r).length;o=(""+o).toLowerCase(),e=!0}}function rc(r,o,t){var e=!1;if((void 0===o||o<0)&&(o=0),o>this.length)return"";if((void 0===t||t>this.length)&&(t=this.length),t<=0)return"";if((t>>>=0)<=(o>>>=0))return"";for(r||(r="utf8");;)switch(r){case"hex":return gc(this,o,t);case"utf8":case"utf-8":return cc(this,o,t);case"ascii":return pc(this,o,t);case"latin1":case"binary":return lc(this,o,t);case"base64":return dc(this,o,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return yc(this,o,t);default:if(e)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),e=!0}}function oc(r,o,t){var e=r[o];r[o]=r[t],r[t]=e}function tc(r,o,t,e,f){if(0===r.length)return-1;if("string"==typeof t?(e=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=f?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(f)return-1;t=r.length-1}else if(t<0){if(!f)return-1;t=0}if("string"==typeof o&&(o=$d.from(o,e)),Hd(o))return 0===o.length?-1:ec(r,o,t,e,f);if("number"==typeof o)return o&=255,$d.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?f?Uint8Array.prototype.indexOf.call(r,o,t):Uint8Array.prototype.lastIndexOf.call(r,o,t):ec(r,[o],t,e,f);throw new TypeError("val must be string, number or Buffer")}function ec(r,o,t,e,f){var s,n=1,a=r.length,i=o.length;if(void 0!==e&&("ucs2"===(e=String(e).toLowerCase())||"ucs-2"===e||"utf16le"===e||"utf-16le"===e)){if(r.length<2||o.length<2)return-1;n=2,a/=2,i/=2,t/=2}function u(r,o){return 1===n?r[o]:r.readUInt16BE(o*n)}if(f){var d=-1;for(s=t;sa&&(t=a-i),s=t;s>=0;s--){for(var c=!0,h=0;hf&&(e=f):e=f;var s=o.length;if(s%2!=0)throw new TypeError("Invalid hex string");e>s/2&&(e=s/2);for(var n=0;n>8,f=t%256,s.push(f),s.push(e);return s}(o,r.length-t),r,t,e)}function dc(r,o,t){return 0===o&&t===r.length?Dd(r):Dd(r.slice(o,t))}function cc(r,o,t){t=Math.min(r.length,t);for(var e=[],f=o;f239?4:u>223?3:u>191?2:1;if(f+c<=t)switch(c){case 1:u<128&&(d=u);break;case 2:128==(192&(s=r[f+1]))&&(i=(31&u)<<6|63&s)>127&&(d=i);break;case 3:s=r[f+1],n=r[f+2],128==(192&s)&&128==(192&n)&&(i=(15&u)<<12|(63&s)<<6|63&n)>2047&&(i<55296||i>57343)&&(d=i);break;case 4:s=r[f+1],n=r[f+2],a=r[f+3],128==(192&s)&&128==(192&n)&&128==(192&a)&&(i=(15&u)<<18|(63&s)<<12|(63&n)<<6|63&a)>65535&&i<1114112&&(d=i)}null===d?(d=65533,c=1):d>65535&&(d-=65536,e.push(d>>>10&1023|55296),d=56320|1023&d),e.push(d),f+=c}return function(r){var o=r.length;if(o<=hc)return String.fromCharCode.apply(String,r);var t="",e=0;for(;e0&&(r=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(r+=" ... ")),""},$d.prototype.compare=function(r,o,t,e,f){if(!Hd(r))throw new TypeError("Argument must be a Buffer");if(void 0===o&&(o=0),void 0===t&&(t=r?r.length:0),void 0===e&&(e=0),void 0===f&&(f=this.length),o<0||t>r.length||e<0||f>this.length)throw new RangeError("out of range index");if(e>=f&&o>=t)return 0;if(e>=f)return-1;if(o>=t)return 1;if(this===r)return 0;for(var s=(f>>>=0)-(e>>>=0),n=(t>>>=0)-(o>>>=0),a=Math.min(s,n),i=this.slice(e,f),u=r.slice(o,t),d=0;df)&&(t=f),r.length>0&&(t<0||o<0)||o>this.length)throw new RangeError("Attempt to write outside buffer bounds");e||(e="utf8");for(var s=!1;;)switch(e){case"hex":return fc(this,r,o,t);case"utf8":case"utf-8":return sc(this,r,o,t);case"ascii":return nc(this,r,o,t);case"latin1":case"binary":return ac(this,r,o,t);case"base64":return ic(this,r,o,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return uc(this,r,o,t);default:if(s)throw new TypeError("Unknown encoding: "+e);e=(""+e).toLowerCase(),s=!0}},$d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var hc=4096;function pc(r,o,t){var e="";t=Math.min(r.length,t);for(var f=o;fe)&&(t=e);for(var f="",s=o;st)throw new RangeError("Trying to access beyond buffer length")}function mc(r,o,t,e,f,s){if(!Hd(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(o>f||or.length)throw new RangeError("Index out of range")}function wc(r,o,t,e){o<0&&(o=65535+o+1);for(var f=0,s=Math.min(r.length-t,2);f>>8*(e?f:1-f)}function bc(r,o,t,e){o<0&&(o=4294967295+o+1);for(var f=0,s=Math.min(r.length-t,4);f>>8*(e?f:3-f)&255}function xc(r,o,t,e,f,s){if(t+e>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function _c(r,o,t,e,f){return f||xc(r,0,t,4),Ud(r,o,t,e,23,4),t+4}function Ec(r,o,t,e,f){return f||xc(r,0,t,8),Ud(r,o,t,e,52,8),t+8}$d.prototype.slice=function(r,o){var t,e=this.length;if((r=~~r)<0?(r+=e)<0&&(r=0):r>e&&(r=e),(o=void 0===o?e:~~o)<0?(o+=e)<0&&(o=0):o>e&&(o=e),o0&&(f*=256);)e+=this[r+--o]*f;return e},$d.prototype.readUInt8=function(r,o){return o||vc(r,1,this.length),this[r]},$d.prototype.readUInt16LE=function(r,o){return o||vc(r,2,this.length),this[r]|this[r+1]<<8},$d.prototype.readUInt16BE=function(r,o){return o||vc(r,2,this.length),this[r]<<8|this[r+1]},$d.prototype.readUInt32LE=function(r,o){return o||vc(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},$d.prototype.readUInt32BE=function(r,o){return o||vc(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},$d.prototype.readIntLE=function(r,o,t){r|=0,o|=0,t||vc(r,o,this.length);for(var e=this[r],f=1,s=0;++s=(f*=128)&&(e-=Math.pow(2,8*o)),e},$d.prototype.readIntBE=function(r,o,t){r|=0,o|=0,t||vc(r,o,this.length);for(var e=o,f=1,s=this[r+--e];e>0&&(f*=256);)s+=this[r+--e]*f;return s>=(f*=128)&&(s-=Math.pow(2,8*o)),s},$d.prototype.readInt8=function(r,o){return o||vc(r,1,this.length),128&this[r]?-1*(255-this[r]+1):this[r]},$d.prototype.readInt16LE=function(r,o){o||vc(r,2,this.length);var t=this[r]|this[r+1]<<8;return 32768&t?4294901760|t:t},$d.prototype.readInt16BE=function(r,o){o||vc(r,2,this.length);var t=this[r+1]|this[r]<<8;return 32768&t?4294901760|t:t},$d.prototype.readInt32LE=function(r,o){return o||vc(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},$d.prototype.readInt32BE=function(r,o){return o||vc(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},$d.prototype.readFloatLE=function(r,o){return o||vc(r,4,this.length),Md(this,r,!0,23,4)},$d.prototype.readFloatBE=function(r,o){return o||vc(r,4,this.length),Md(this,r,!1,23,4)},$d.prototype.readDoubleLE=function(r,o){return o||vc(r,8,this.length),Md(this,r,!0,52,8)},$d.prototype.readDoubleBE=function(r,o){return o||vc(r,8,this.length),Md(this,r,!1,52,8)},$d.prototype.writeUIntLE=function(r,o,t,e){(r=+r,o|=0,t|=0,e)||mc(this,r,o,t,Math.pow(2,8*t)-1,0);var f=1,s=0;for(this[o]=255&r;++s=0&&(s*=256);)this[o+f]=r/s&255;return o+t},$d.prototype.writeUInt8=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,1,255,0),$d.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[o]=255&r,o+1},$d.prototype.writeUInt16LE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,2,65535,0),$d.TYPED_ARRAY_SUPPORT?(this[o]=255&r,this[o+1]=r>>>8):wc(this,r,o,!0),o+2},$d.prototype.writeUInt16BE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,2,65535,0),$d.TYPED_ARRAY_SUPPORT?(this[o]=r>>>8,this[o+1]=255&r):wc(this,r,o,!1),o+2},$d.prototype.writeUInt32LE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,4,4294967295,0),$d.TYPED_ARRAY_SUPPORT?(this[o+3]=r>>>24,this[o+2]=r>>>16,this[o+1]=r>>>8,this[o]=255&r):bc(this,r,o,!0),o+4},$d.prototype.writeUInt32BE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,4,4294967295,0),$d.TYPED_ARRAY_SUPPORT?(this[o]=r>>>24,this[o+1]=r>>>16,this[o+2]=r>>>8,this[o+3]=255&r):bc(this,r,o,!1),o+4},$d.prototype.writeIntLE=function(r,o,t,e){if(r=+r,o|=0,!e){var f=Math.pow(2,8*t-1);mc(this,r,o,t,f-1,-f)}var s=0,n=1,a=0;for(this[o]=255&r;++s>0)-a&255;return o+t},$d.prototype.writeIntBE=function(r,o,t,e){if(r=+r,o|=0,!e){var f=Math.pow(2,8*t-1);mc(this,r,o,t,f-1,-f)}var s=t-1,n=1,a=0;for(this[o+s]=255&r;--s>=0&&(n*=256);)r<0&&0===a&&0!==this[o+s+1]&&(a=1),this[o+s]=(r/n>>0)-a&255;return o+t},$d.prototype.writeInt8=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,1,127,-128),$d.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[o]=255&r,o+1},$d.prototype.writeInt16LE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,2,32767,-32768),$d.TYPED_ARRAY_SUPPORT?(this[o]=255&r,this[o+1]=r>>>8):wc(this,r,o,!0),o+2},$d.prototype.writeInt16BE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,2,32767,-32768),$d.TYPED_ARRAY_SUPPORT?(this[o]=r>>>8,this[o+1]=255&r):wc(this,r,o,!1),o+2},$d.prototype.writeInt32LE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,4,2147483647,-2147483648),$d.TYPED_ARRAY_SUPPORT?(this[o]=255&r,this[o+1]=r>>>8,this[o+2]=r>>>16,this[o+3]=r>>>24):bc(this,r,o,!0),o+4},$d.prototype.writeInt32BE=function(r,o,t){return r=+r,o|=0,t||mc(this,r,o,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),$d.TYPED_ARRAY_SUPPORT?(this[o]=r>>>24,this[o+1]=r>>>16,this[o+2]=r>>>8,this[o+3]=255&r):bc(this,r,o,!1),o+4},$d.prototype.writeFloatLE=function(r,o,t){return _c(this,r,o,!0,t)},$d.prototype.writeFloatBE=function(r,o,t){return _c(this,r,o,!1,t)},$d.prototype.writeDoubleLE=function(r,o,t){return Ec(this,r,o,!0,t)},$d.prototype.writeDoubleBE=function(r,o,t){return Ec(this,r,o,!1,t)},$d.prototype.copy=function(r,o,t,e){if(t||(t=0),e||0===e||(e=this.length),o>=r.length&&(o=r.length),o||(o=0),e>0&&e=this.length)throw new RangeError("sourceStart out of bounds");if(e<0)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),r.length-o=0;--f)r[f+o]=this[f+t];else if(s<1e3||!$d.TYPED_ARRAY_SUPPORT)for(f=0;f>>=0,t=void 0===t?this.length:t>>>0,r||(r=0),"number"==typeof r)for(s=o;s55295&&t<57344){if(!f){if(t>56319){(o-=3)>-1&&s.push(239,191,189);continue}if(n+1===e){(o-=3)>-1&&s.push(239,191,189);continue}f=t;continue}if(t<56320){(o-=3)>-1&&s.push(239,191,189),f=t;continue}t=65536+(f-55296<<10|t-56320)}else f&&(o-=3)>-1&&s.push(239,191,189);if(f=null,t<128){if((o-=1)<0)break;s.push(t)}else if(t<2048){if((o-=2)<0)break;s.push(t>>6|192,63&t|128)}else if(t<65536){if((o-=3)<0)break;s.push(t>>12|224,t>>6&63|128,63&t|128)}else{if(!(t<1114112))throw new Error("Invalid code point");if((o-=4)<0)break;s.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return s}function Ac(r){return function(r){var o,t,e,f,s,n;Ld||Bd();var a=r.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");s="="===r[a-2]?2:"="===r[a-1]?1:0,n=new Id(3*a/4-s),e=s>0?a-4:a;var i=0;for(o=0,t=0;o>16&255,n[i++]=f>>8&255,n[i++]=255&f;return 2===s?(f=kd[r.charCodeAt(o)]<<2|kd[r.charCodeAt(o+1)]>>4,n[i++]=255&f):1===s&&(f=kd[r.charCodeAt(o)]<<10|kd[r.charCodeAt(o+1)]<<4|kd[r.charCodeAt(o+2)]>>2,n[i++]=f>>8&255,n[i++]=255&f),n}(function(r){if((r=function(r){return r.trim?r.trim():r.replace(/^\s+|\s+$/g,"")}(r).replace(Tc,"")).length<2)return"";for(;r.length%4!=0;)r+="=";return r}(r))}function Oc(r,o,t,e){for(var f=0;f=o.length||f>=r.length);++f)o[f+t]=r[f];return f}function Sc(r){return null!=r&&(!!r._isBuffer||Pc(r)||function(r){return"function"==typeof r.readFloatLE&&"function"==typeof r.slice&&Pc(r.slice(0,0))}(r))}function Pc(r){return!!r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r)}Pd(Object.freeze({__proto__:null,Buffer:$d,INSPECT_MAX_BYTES:50,SlowBuffer:function(r){return+r!=r&&(r=0),$d.alloc(+r)},isBuffer:Sc,kMaxLength:Yd})).Buffer;var Rc=function(){throw new Error("not implemented")};function Fc(){throw new Error("not implemented")}var kc={binary:Rc,float64:Gr,float32:oo,float16:Fc,generic:Array,int16:$o,int32:ko,int8:ft,uint16:Mo,uint32:jo,uint8:uo,uint8c:Xo,complex32:Fc,complex64:se,complex128:le,bool:be},Ic={};function Lc(r){var o,t,e;return!Ut(r)&&(e=Qf(r),t=kc[e]||null)?t:Ws(r)?(e?o=r.value:e=(o=r).layout,(t=Ic[e])||(t=Sd(o),Ic[e]=t),t):null}var Bc=Ut(Rc.allocUnsafe)?function(r){if(!lt(r))throw new TypeError(S("invalid argument. Must provide a nonnegative integer. Value: `%s`.",r));return Rc.allocUnsafe(r)}:function(r){if(!lt(r))throw new TypeError(S("invalid argument. Must provide a nonnegative integer. Value: `%s`.",r));return new Rc(r)};function Nc(r){return function(r,o,t,e){var f;return function(r,o){return"function"==typeof r["fill"]}(r)?r.fill(o,t,e):(t<0&&(t+=r.length)<0&&(t=0),e<0?e+=r.length:e>r.length&&(e=r.length),(f=Ve(r)).accessorProtocol?function(r,o,t,e){var f,s,n;for(f=r.data,s=r.accessors[1],n=t;n=r){f.push(i);continue}for(s=ar(i,!1),n=Tr(i,!1),e=[],t=[],c=0;c=f&&(f=s,c=d);a=e[c][0]}for(t=Pe(r.length),function(r,o){var t,e,f,s,n,a,i,u,d;for(e=1,f=1,d=1;d=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(nr(a),t),n=[Fe(r,t)],d=0;d0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(Fr0;)for(Rr0;)for(Pr0;)for(Sr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Cr0;)for(Ur0;)for(Mr0;)for(Dr0;)for(Nr0;)for(Br0;)for(Lr0;)for(Ir0;)for(kr0;)for(Kr0;)for(Zr0;)for(Gr0;)for(Wr0;)for($r0;)for(Jr0;)for(qr0;)for(Yr0;)for(zr0;)for(Cr0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(Lr0;)for(Ir0;)for(kr0;)for(Fr0;)for(Rr0;)for(Pr0;)for(Sr0;)for(Or0;)for(qr0;)for(Yr0;)for(zr0;)for(Cr0;)for(Ur0;)for(Mr0;)for(Dr0;)for(Nr0;)for(Br0;)for(Qr0;)for(Hr0;)for(Xr0;)for(Kr0;)for(Zr0;)for(Gr0;)for(Wr0;)for($r0;)for(Jr0;)for(qr1?arguments[1]:zh))return Df(r);if(t=function(r){return Ch[r]||null}(o),null===t)throw new TypeError(S("invalid argument. Second argument must be a recognized data type. Value: `%s`.",o));return new t(r)}function qh(r){return arguments.length>1?Yh(r,arguments[1]):Yh(r)}function Jh(r){var o,t,e,f,s,n,a;return f=Qf(a=sr(r)),s=ar(r,!0),e=Nr(r),s.length>0?(o=fr(s),n=_r(s,e)):(o=1,n=[0]),t="binary"===f?Bc(o):qh(o,f),new r.constructor(a,t,s,n,Rr(s,n),e)}function $h(r){return r}function Wh(r){return{dtype:r.dtype,data:r.data,shape:[1],strides:[0],offset:r.offset,order:r.order}}function Gh(r){var o,t,e,f,s,n,a;if(0===(o=(s=r.shape).length))return Wh;if(1===o)return $h;for(e=1,n=0,a=0;a0;){for(_0;){for(x0;){for(A0;){for(j0;){for(V0;){for(F0;){for(R0;){for(P0;){for(S0;){for(N0;){for(B0;){for(L0;){for(I0;){for(k0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(N0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ur0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(E0;){for(_0;){for(O0;){for(A0;){for(j0;){for(k0;){for(F0;){for(R0;){for(P0;){for(D0;){for(N0;){for(B0;){for(L0;){for(I0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr3?e:{},k=o.length,g=[],M=0;Ma)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",a,Ri(t,",")));if(L=a-I,D.shape.length!==L)throw new Error(S("invalid argument. Output array must have the same number of non-reduced dimensions as input arrays. Input array shape: [%s]. Number of non-reduced dimensions: %d. Output array shape: [%s].",Ri(v,","),L,Ri(D.shape,",")));for(i=Rh(v.length,R),p=Fh(v,B.strides,i),l=Fh(m,N.strides,i),b=p[0],j=p[1],A=l[1],p=Fh(v,B.strides,R),l=Fh(m,N.strides,R),w=p[0],T=p[1],V=l[1],y=1,P=0,M=0;M=0&&r.length<=gt}function hp(r){if("function"!=typeof r)throw new TypeError(S("invalid argument. Must provide a function. Value: `%s`.",r));return function(o){var t,e;if(!cp(o))return!1;if(t=o.length,0===t)return!1;for(e=0;e2?e:{};return up(r,o,t,f)}}));var pp=hp(Ut);function lp(r){var o,t;for(o=[],t=0;tr)throw new RangeError(S("invalid argument. First argument must be greater than or equal to the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `%d`.",i.length,r));if(null===(d=id(t,r-1)))throw new RangeError(S("invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.",r,r-1,t.join(", ")));if(d.length!==t.length)throw new Error(S("invalid argument. Must provide unique dimension indices. Value: `[%s]`.",t.join(", ")));if(d.length!==i.length)throw new RangeError(S("invalid argument. Must provide the same number of dimension indices as the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `[%s]`.",i.length,t.join(", ")));if(d.length&&!function(r){var o,t,e,f,s,n;if(e=Te(r),t=Z(r)?X(e):or(e),0===(o=r.length))return!1;for(f=t(r,0),n=1;n(s=t(r,n)))return!1;f=s}return!0}(d))throw new Error(S("invalid argument. Must provide dimension indices which resolve to nonnegative indices arranged in ascending order. Value: `[%s]`.",t.join(", ")));if(0===i.length)s=qc(r),f=Df(r);else for(f=[],s=[],l=0,p=0;p0?(e=fr(o),f=_r(o,t)):(e=1,f=[0]),new sd(r,"binary"===(s=Qf(r))?Bc(e):qh(e,s),o,f,Rr(o,f),t)}var mp=hp(lt.isPrimitive),wp=hp(lt.isObject),bp=hp(lt);J(bp,"primitives",mp),J(bp,"objects",wp);var xp=hp(ct.isPrimitive),_p=hp(ct.isObject),Ep=hp(ct);function Tp(r){var o=typeof r;return null===r||"object"!==o&&"function"!==o?new TypeError(S("invalid argument. A provided constructor must be either an object (except null) or a function. Value: `%s`.",r)):null}J(Ep,"primitives",xp),J(Ep,"objects",_p);var Vp=Object.create;function jp(){}var Ap="function"==typeof Vp?Vp:function(r){return jp.prototype=r,new jp};function Op(r,o){return r<0?0:r>o?o:r}function Sp(r,o){var t=o+1;return r<0?((r+=t)<0&&0!==(r%=t)&&(r+=t),r):r>o?((r-=t)>o&&(r%=t),r):r}var Pp={wrap:Sp,clamp:Op,normalize:function(r,o){var t=ad(r,o);if(t<0||t>o)throw new RangeError(S("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",o,r));return t},throw:function(r,o){if(r<0||r>o)throw new RangeError(S("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",o,r));return r}};function Rp(r){if(!en(r))throw new TypeError(S("invalid argument. First argument must be a recognized index mode. Value: `%s`.",r));return Pp[r]}function Fp(r,o,t){var e;if("clamp"===t)return Op(r,o);if("wrap"===t)return Sp(r,o);if(e=r,"normalize"===t&&(e=ad(e,o)),e<0||e>o)throw new RangeError(S("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",o,r));return e}J(Fp,"factory",Rp);var kp=sd.prototype.iget;var Ip=sd.prototype.iset;function Lp(r,o){var t,e;for(t=[],e=0;e0))throw new TypeError(S("invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.",t));if((a=t.length)>Bp)throw new RangeError(S("invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.",Bp,a));if(!xp(e))throw new TypeError(S("invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.",e));if(a>0){if(e.length!==a)throw new RangeError(S("invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.",a,e.length))}else{if(1!==e.length)throw new RangeError("invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.");if(0!==e[0])throw new RangeError(S("invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.",e[0]))}if(!ht(f))throw new TypeError(S("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",f));if(!En(s))throw new TypeError(S("invalid argument. Sixth argument must be a supported order. Value: `%s`.",s));if(a>0&&!Es(o.length,t,e,f)&&fr(t)>0)throw new Error("invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.");if((i={}).mode=Np,i.readonly=Dp,arguments.length>6&&(u=function(r,o){var t;if(!gf(o))return new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",o));if(pr(o,"mode")&&(r.mode=o.mode,!en(r.mode)))return new TypeError(S("invalid option. `%s` option must be a recognized mode. Option: `%s`.","mode",r.mode));if(pr(o,"submode")){if(r.submode=o.submode,!yt(r.submode))return new TypeError(S("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode));if(0===r.submode.length)return new TypeError(S("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode.join(",")));for(t=0;t0){if(!ut(r))throw new TypeError(S("invalid argument. Index must be an integer. Value: `%s`.",r));return r=Fp(r,this._length-1,this._mode),kp.call(this,r)}return kp.call(this)})),J(Mp.prototype,"set",(function(){var r,o,t,e;if(this._flags.READONLY)throw new Error("invalid invocation. Cannot write to a read-only array.");if(arguments.length!==this._ndims+1)throw new RangeError(S("invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.",this._ndims,arguments.length));for(r=this._offset,t=this._submode.length,e=0;e0){if(!ut(r))throw new TypeError(S("invalid argument. Index must be an integer. Value: `%s`.",r));r=Fp(r,this._length-1,this._mode),Ip.call(this,r,o)}else Ip.call(this,r);return this}));var Up=Cc.get("dtypes.default"),Cp=Cc.get("order");function zp(r){var o,t,e,f,s,n,a;if(f={},arguments.length>1){if(!gf(o=arguments[1]))throw new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",o));t=pr(o,"dtype")?o.dtype:Up,e=pr(o,"order")?o.order:Cp,pr(o,"mode")&&(f.mode=o.mode),pr(o,"submode")&&(f.submode=o.submode)}else t=Up,e=Cp;if(Vr(r))a=[r];else{if(!cp(r))throw new TypeError(S("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));a=r}if(a.length>0){if((s=fr(a))!=s||s<0)throw new TypeError(S("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));n=_r(a,e)}else s=1,n=[0];return new Mp(t,"binary"===t?Bc(s):qh(s,t),a,n,Rr(a,n),e,f)}function Yp(r){var o,t,e,f;for(e=Ci(r),t=r.length,o=[],f=0;fe&&(o=e),r.push(r[e-1]),f=e-2;f>=o;f--)r[f+1]=r[f];return r[o]=t,r}function Jp(r,o,t){var e;return function(r,o){return"function"==typeof r[o]}(r,"every")?r.every(o,t):(e=Ve(r)).accessorProtocol?function(r,o,t){var e,f,s;for(e=r.data,f=r.accessors[0],s=0;so?r:o}function Kp(r,o,t,e,f,s,n,a,i){var u,d,c,h,p,l,g,y,v,m,w;if(r<=0||o<=0)return-1;if(m=Ve(t),w=Ve(n),m.accessorProtocol||w.accessorProtocol)return function(r,o,t,e,f,s,n,a,i){var u,d,c,h,p,l,g,y,v,m,w,b,x;if(d=t.data,c=n.data,h=t.accessors[0],p=n.accessors[0],Yn([e,f])){for(y=o,v=r,x=0;x=0;h--)if(!((p=d-u+h)<0))if(l>=0&&f[l]===p)o[h]=n[p],e[h]=a[p],l-=1;else{if(c=n[p],0!==(s=o[h])&&su&&(u=o[d]);for(d=0;d=0;){for(e=(s=o[0]-u+d)>=0?f[s]:1,c=1;c=0?r[c][n]:1,1!==e){if(1!==a&&e!==a)return null}else e=a;t[d]=e,d-=1}return t}J(ol.prototype,"apply",(function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E;if(e=arguments.length,!Td(r))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(!Td(o))throw new TypeError(S("invalid argument. Second argument must be an ndarray-like object. Value: `%s`.",o));if(y=sr(r),!ps(this._idtypes[0],Qf(y)))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),y));if(v=sr(o),!ps(this._idtypes[1],Qf(v)))throw new TypeError(S('invalid argument. Second argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[1],'", "'),v));for(f=[r,o],_=2;__&&(t=arguments[e-1],u=Qp(s,b,this._odtypes,t)))throw u;return null===s.dims&&(s.dims=Pe(b)),p=Fe(c,d=Rh(b,s.dims)),i=(n=Nr(r))===(a=Nr(o))?n:rl,x=zp(p,{dtype:m=s.dtype||Ph(y,v,this._policies.output),order:i}),Ks(y,w=lh(y,v,m,this._policies.casting))||(Nu([r,g=vp(w,c,n)]),f[0]=g,y=w),Ks(v,w=lh(v,y,m,this._policies.casting))||(Nu([o,g=vp(w,h,a)]),f[1]=g,v=w),up((_=Xp(this._table.fcns.length,2,this._table.types,2,1,0,lp([y,v]),1,0))>=0?this._table.fcns[_]:this._table.default,qp(f,2,x),s.dims),s.keepdims&&(x=yp(b,x,d,!0)),x})),J(ol.prototype,"assign",(function r(o,t){var e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b;if(f=arguments.length,!Td(o))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(!Td(t))throw new TypeError(S("invalid argument. Second argument must be an ndarray-like object. Value: `%s`.",t));if(h=sr(o),!ps(this._idtypes[0],Qf(h)))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),h));if(p=sr(t),!ps(this._idtypes[1],Qf(p)))throw new TypeError(S('invalid argument. Second argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[1],'", "'),p));if(d=Ih(o),c=Ih(t),d.length!==c.length)throw new Error(S("invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.",d.length,c.length));for(v=d.length,b=0;b=0?this._table.fcns[w]:this._table.default,qp(n,2,m),s.dims),m}));var sl={Buffer:"binary",Float16Array:"float16",Float32Array:"float32",Float64Array:"float64",Array:"generic",Int16Array:"int16",Int32Array:"int32",Int8Array:"int8",Object:"generic",Uint16Array:"uint16",Uint32Array:"uint32",Uint8Array:"uint8",Uint8ClampedArray:"uint8c",Complex32Array:"complex32",Complex64Array:"complex64",Complex128Array:"complex128",BooleanArray:"bool"};function nl(){throw new Error("not implemented")}var al,il=[Gr,oo,nl,ko,jo,$o,Mo,ft,uo,Xo,nl,se,le,be],ul=["float64","float32","float16","int32","uint32","int16","uint16","int8","uint8","uint8c","complex32","complex64","complex128","bool"],dl=ul.length;function cl(r){var o;if(po(r))return"generic";if(yo(r))return"binary";for(o=0;o0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(A0;)for(j0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(S0;)for(O0;)for(A0;)for(j0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(b0;)for(w0;)for(V0;)for(T0;)for(E0;)for(P0;)for(S0;)for(O0;)for(A0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(A0;)for(j0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W ("):s.push("("):u===i?u===d?s.push(") => ()"):s.push(")"):u===d?s.push(") => ("):u%2==1?s.push(""):s.push(", ");for(u=0;u0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(A0;)for(j0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(A0;)for(j0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(O0;)for(A0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(P0;)for(S0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(S0;)for(O0;)for(A0;)for(j0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(U0;)for(M0;)for(D0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(O0;)for(A0;)for(L0;)for(I0;)for(k0;)for(z0;)for(C0;)for(U0;)for(M0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(Pr0;)for(Sr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr=o?(f*=r[s],s===e-1&&(t[n]=f,n+=1)):(t[n]=r[s],n+=1);return t}function Tg(r,o){var t,e,f;return t=r.length,o<0&&(o+=t)<0&&(o=0),Eg(r,f=Jn(t-1,o),e=Df(f+1)),e}function Vg(r){return null===r}function jg(r){return void 0===r}function Ag(r){return ut(r)||Vg(r)||jg(r)}function Og(){var r,o,t,e;if(0===(r=arguments.length)?(o=null,t=null,e=null):1===r?(o=null,t=arguments[0],e=null):2===r?(o=arguments[0],t=arguments[1],e=null):(o=arguments[0],t=arguments[1],e=arguments[2]),!(this instanceof Og))return new Og(o,t,e);if(!Ag(o))throw new TypeError(S("invalid argument. First argument must be an integer, null, or undefined. Value: `%s`.",o));if(!Ag(t))throw new TypeError(S("invalid argument. Second argument must be an integer, null, or undefined. Value: `%s`.",t));if(!Ag(e))throw new TypeError(S("invalid argument. Third argument must be an integer, null, or undefined. Value: `%s`.",e));if(0===e)throw new RangeError(S("invalid argument. Third argument cannot be zero. Value: `%s`.",e));return this._start=void 0===o?null:o,this._stop=void 0===t?null:t,this._step=void 0===e?null:e,this}function Sg(r){return ut(r)||Vg(r)||jg(r)||function(r){return r instanceof Og||"Slice"===wo(r)}(r)}function Pg(){var r,o,t,e,f;if(r=arguments.length,!(this instanceof Pg)){if(1===r)return new Pg(arguments[0]);if(2===r)return new Pg(arguments[0],arguments[1]);if(3===r)return new Pg(arguments[0],arguments[1],arguments[2]);if(4===r)return new Pg(arguments[0],arguments[1],arguments[2],arguments[3]);if(5===r)return new Pg(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);for(t=[],f=0;f=o?t?{code:"ERR_SLICE_OUT_OF_BOUNDS"}:new Og(o,o,1):r<0&&(r=o+r)<0?t?{code:"ERR_SLICE_OUT_OF_BOUNDS"}:new Og(0,0,1):new Og(r,r+1,1)}(r,o,t):function(r,o,t){var e,f,s;if(e=r.start,f=r.stop,null===(s=r.step)&&(s=1),null===e)e=s>0?0:o-1;else if(e<0){if((e=o+e)<0){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};e=0}}else if(e>=o){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};e=s<0?o-1:o}if(null===f)f=s>0?o:null;else if(f<0){if((f=o+f)<0)if(s>0){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};f=0}else{if(t&&f<-1)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};f=null}}else if(f>o){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};f=o}return new Og(e,f,s)}(r,o,t)}function kg(r,o,t){var e,f,s,n;for(e=r.data,f=[],n=0;n0&&t>=e||o<0&&t<=e?0:Mf((e-t)/o)}function Lg(r){var o,t,e;for(o=r.data,t=[],e=0;e0&&(h=Df(h.length))}else h=Lg(p);return 0===fr(h)?function(r,o,t,e,f){var s,n;return s=0===(n=t.length)?[0]:Df(n),new r(o,Dc(o,0),t,s,0,e,{readonly:f})}(c,n,Fe(h,u),i,!e):(s=function(r,o,t){var e,f,s;for(e=r.data,f=t,s=0;s=f)throw new RangeError(S("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",f,o));return(e=Ng(f))[s]=new Og(null,null,-1),Bg(r,Rg(e),!0,t)}J(_g,"assign",xg),J(Tg,"assign",Eg),J(Og,"name","Slice"),Kt(Og.prototype,"start",(function(){return this._start})),Kt(Og.prototype,"stop",(function(){return this._stop})),Kt(Og.prototype,"step",(function(){return this._step})),J(Og.prototype,"toString",(function(){return"Slice("+this._start+","+this._stop+","+this.step+")"})),J(Og.prototype,"toJSON",(function(){return{type:"Slice",data:[this._start,this._stop,this._step]}})),J(Pg,"name","MultiSlice"),Kt(Pg.prototype,"ndims",(function(){return this._data.length})),Kt(Pg.prototype,"data",(function(){return this._data.slice()})),J(Pg.prototype,"toString",(function(){var r,o,t;for(r=this._data,o=[],t=0;t0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(O0;)for(A0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(P0;)for(S0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(S0;)for(O0;)for(A0;)for(j0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(A0;)for(j0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W=s)return null;return o===sy?function(r,o,t,e,f){var s,n;for(s=r-1;s>e;s--)f[s]=t[s];for(s=e;s>=0&&(n=(t[s]+1)%o[s],f[s]=n,!(n>0));s--);for(s-=1;s>=0;s--)f[s]=t[s];return f}(s,r,t,e,f):function(r,o,t,e,f){var s,n;for(s=0;s0));s++);for(s+=1;s0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(O0;)for(A0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(A0;)for(j0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;){for(b0;){for(w0;){for(V0;){for(T0;){for(E0;){for(P0;){for(S0;){for(O0;){for(A0;){for(L0;){for(I0;){for(k0;){for(F0;){for(R0;){for(U0;){for(M0;){for(D0;){for(N0;){for(B0;){for(L0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(M0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X3?f:{};for(E=t.length,d=[],A=0;Aa)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",a,Ri(e,",")));for(V=a-T,A=1;A1?(r=Oy(arguments[1]),t=arguments[0],e=f):Ut(arguments[0])?(r=Sy,t=arguments[0],e=f):(r=Oy(arguments[0]),e=s),e;function f(o,e,f){return r(t,o,e,arguments.length>2?f:{})}function s(o,t,e,f){return r(o,t,e,arguments.length>3?f:{})}}));var Py={dims:null};function Ry(r,o,t,e){var f,s;if(!(this instanceof Ry))return arguments.length>3?new Ry(r,o,t,e):new Ry(r,o,t);if(!xt(r))throw new TypeError(S("invalid argument. First argument must be an object. Value: `%s`.",r));if(!Ut(r.default))throw new TypeError(S('invalid argument. First argument must be an object having a "default" property and an associated method.'));if(Us(r,"types")&&!mt(r.types)&&!dp(r.types))throw new TypeError(S('invalid argument. First argument must be an object having a "types" property whose associated value is an array-like object.'));if(Us(r,"fcns")&&!pp(r.fcns)&&!dp(r.fcns))throw new TypeError(S('invalid argument. First argument must be an object having a "fcns" property whose associated value is an array-like object containing functions.'));if(!mt(o))throw new TypeError(S("invalid argument. Second argument must be an array-like object. Value: `%s`.",o));for(s=0;s3?Sy.factory(e):Sy,this}J(Ry.prototype,"assign",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h,p;if(e=arguments.length,!Td(r))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(u=sr(r),!ps(this._odtypes,u))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._odtypes,'", "'),u));for(s=[r],p=1;p=0?this._table.fcns[p]:this._table.default,this._apply(h,s,f.dims),r}));var Fy=Cc.get("order");var ky=yf({same:0,promoted:1,accumulation:2,boolean:3,boolean_and_generic:4,signed_integer:5,signed_integer_and_generic:6,unsigned_integer:7,unsigned_integer_and_generic:8,integer:9,integer_and_generic:10,floating_point:11,floating_point_and_generic:12,real_floating_point:13,real_floating_point_and_generic:14,complex_floating_point:15,complex_floating_point_and_generic:16,real:17,real_and_generic:18,numeric:19,numeric_and_generic:20,integer_index:21,integer_index_and_generic:22,boolean_index:23,boolean_index_and_generic:24,mask_index:25,mask_index_and_generic:26,default:27,default_index:28},{duplicates:!1});function Iy(r){var o=ky[r];return ir(o)?o:null}var Ly={same:0,promoted:1,accumulation:2,boolean:3,boolean_and_generic:4,signed_integer:5,signed_integer_and_generic:6,unsigned_integer:7,unsigned_integer_and_generic:8,integer:9,integer_and_generic:10,floating_point:11,floating_point_and_generic:12,real_floating_point:13,real_floating_point_and_generic:14,complex_floating_point:15,complex_floating_point_and_generic:16,real:17,real_and_generic:18,numeric:19,numeric_and_generic:20,integer_index:21,integer_index_and_generic:22,boolean_index:23,boolean_index_and_generic:24,mask_index:25,mask_index_and_generic:26,default:27,default_index:28};function By(r){var o=Ly[r];return Vr(o)?o:null}function Ny(r,o,t,e){var f,s,n,a;for(s=ar(r),f=[],a=0;a=2&&((o%=4)<0&&(o+=4),i=f[d-2],u=f[d-1],n=s[d-2],a=s[d-1],1===o?(f[d-2]=u,f[d-1]=i,s[d-2]=a,s[d-1]=-n,e+=(i-1)*n):2===o?(s[d-2]=-n,s[d-1]=-a,e+=(i-1)*n+(u-1)*a):3===o&&(f[d-2]=u,f[d-1]=i,s[d-2]=-a,s[d-1]=n,e+=(u-1)*a)),new r.constructor(sr(r),Dr(r),f,s,e,Nr(r),{readonly:!t})}function $y(r,o,t){return Jy(r,-o,t)}var Wy={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},Gy=_n(),Zy={throw:1,clamp:2,wrap:3,normalize:4};var Ky,Xy={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},Hy=_n(),Qy={throw:1,clamp:2,wrap:3,normalize:4};Ky=Ia()?function(r){var o,t,e,f,s,n,a,i,u,d,c,h,p;if(r.__array_meta_dataview__)return r.__array_meta_dataview__();for(e=sr(r),f=ar(r,!1),s=Tr(r,!1),c=f.length,i=r.mode||"throw",h=(n=r.submode||[i]).length,o=xf(e),u=0,(a=new oa(new Zn(33+16*c+h))).setInt8(u,da?1:0),u+=1,a.setInt16(u,Wy[e],da),u+=2,a.setBigInt64(u,ui(c),da),d=8*c,u+=8,p=0;p=o)return!0;return!1}var ev="throw";function fv(r,o){var t,e,f,s,n,a,i,u,d;for(s=fr(n=r.shape),e=r.data,a=r.strides,i=r.offset,f=r.order,t=0,d=0;d=o)return!0;return!1}var sv="throw";function nv(r,o){var t,e,f,s,n,a,i,u;for(s=fr(n=r.shape),e=r.data,a=r.strides,i=r.offset,f=r.order,t=0,u=0;u=o)return!0;return!1}var av=[function(r,o){return!!(o<=1&&r.data[r.offset])},function(r,o){var t,e,f,s,n,a;for(s=r.shape[0],f=r.strides[0],n=r.offset,e=r.data,t=0,a=0;a=o)return!0;n+=f}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h;for(n=r.shape,1===Ir(u=r.strides)?(a=n[1],i=n[0],f=u[1],s=u[0]-a*u[1]):(a=n[0],i=n[1],f=u[0],s=u[1]-a*u[0]),d=r.offset,e=r.data,t=0,h=0;h=o)return!0;d+=f}d+=s}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g;for(a=r.shape,1===Ir(c=r.strides)?(i=a[2],u=a[1],d=a[0],f=c[2],s=c[1]-i*c[2],n=c[0]-u*c[1]):(i=a[0],u=a[1],d=a[2],f=c[0],s=c[1]-i*c[0],n=c[2]-u*c[1]),h=r.offset,e=r.data,t=0,g=0;g=o)return!0;h+=f}h+=s}h+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m;for(i=r.shape,1===Ir(p=r.strides)?(u=i[3],d=i[2],c=i[1],h=i[0],f=p[3],s=p[2]-u*p[3],n=p[1]-d*p[2],a=p[0]-c*p[1]):(u=i[0],d=i[1],c=i[2],h=i[3],f=p[0],s=p[1]-u*p[0],n=p[2]-d*p[1],a=p[3]-c*p[2]),l=r.offset,e=r.data,t=0,m=0;m=o)return!0;l+=f}l+=s}l+=n}l+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x;for(u=r.shape,1===Ir(g=r.strides)?(d=u[4],c=u[3],h=u[2],p=u[1],l=u[0],f=g[4],s=g[3]-d*g[4],n=g[2]-c*g[3],a=g[1]-h*g[2],i=g[0]-p*g[1]):(d=u[0],c=u[1],h=u[2],p=u[3],l=u[4],f=g[0],s=g[1]-d*g[0],n=g[2]-c*g[1],a=g[3]-h*g[2],i=g[4]-p*g[3]),y=r.offset,e=r.data,t=0,x=0;x=o)return!0;y+=f}y+=s}y+=n}y+=a}y+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T;for(d=r.shape,1===Ir(v=r.strides)?(c=d[5],h=d[4],p=d[3],l=d[2],g=d[1],y=d[0],f=v[5],s=v[4]-c*v[5],n=v[3]-h*v[4],a=v[2]-p*v[3],i=v[1]-l*v[2],u=v[0]-g*v[1]):(c=d[0],h=d[1],p=d[2],l=d[3],g=d[4],y=d[5],f=v[0],s=v[1]-c*v[0],n=v[2]-h*v[1],a=v[3]-p*v[2],i=v[4]-l*v[3],u=v[5]-g*v[4]),m=r.offset,e=r.data,t=0,T=0;T=o)return!0;m+=f}m+=s}m+=n}m+=a}m+=i}m+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A;for(c=r.shape,1===Ir(w=r.strides)?(h=c[6],p=c[5],l=c[4],g=c[3],y=c[2],v=c[1],m=c[0],f=w[6],s=w[5]-h*w[6],n=w[4]-p*w[5],a=w[3]-l*w[4],i=w[2]-g*w[3],u=w[1]-y*w[2],d=w[0]-v*w[1]):(h=c[0],p=c[1],l=c[2],g=c[3],y=c[4],v=c[5],m=c[6],f=w[0],s=w[1]-h*w[0],n=w[2]-p*w[1],a=w[3]-l*w[2],i=w[4]-g*w[3],u=w[5]-y*w[4],d=w[6]-v*w[5]),b=r.offset,e=r.data,t=0,A=0;A=o)return!0;b+=f}b+=s}b+=n}b+=a}b+=i}b+=u}b+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P;for(h=r.shape,1===Ir(x=r.strides)?(p=h[7],l=h[6],g=h[5],y=h[4],v=h[3],m=h[2],w=h[1],b=h[0],f=x[7],s=x[6]-p*x[7],n=x[5]-l*x[6],a=x[4]-g*x[5],i=x[3]-y*x[4],u=x[2]-v*x[3],d=x[1]-m*x[2],c=x[0]-w*x[1]):(p=h[0],l=h[1],g=h[2],y=h[3],v=h[4],m=h[5],w=h[6],b=h[7],f=x[0],s=x[1]-p*x[0],n=x[2]-l*x[1],a=x[3]-g*x[2],i=x[4]-y*x[3],u=x[5]-v*x[4],d=x[6]-m*x[5],c=x[7]-w*x[6]),_=r.offset,e=r.data,t=0,P=0;P=o)return!0;_+=f}_+=s}_+=n}_+=a}_+=i}_+=u}_+=d}_+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k;for(p=r.shape,1===Ir(E=r.strides)?(l=p[8],g=p[7],y=p[6],v=p[5],m=p[4],w=p[3],b=p[2],x=p[1],_=p[0],f=E[8],s=E[7]-l*E[8],n=E[6]-g*E[7],a=E[5]-y*E[6],i=E[4]-v*E[5],u=E[3]-m*E[4],d=E[2]-w*E[3],c=E[1]-b*E[2],h=E[0]-x*E[1]):(l=p[0],g=p[1],y=p[2],v=p[3],m=p[4],w=p[5],b=p[6],x=p[7],_=p[8],f=E[0],s=E[1]-l*E[0],n=E[2]-g*E[1],a=E[3]-y*E[2],i=E[4]-v*E[3],u=E[5]-m*E[4],d=E[6]-w*E[5],c=E[7]-b*E[6],h=E[8]-x*E[7]),T=r.offset,e=r.data,t=0,k=0;k<_;k++){for(F=0;F=o)return!0;T+=f}T+=s}T+=n}T+=a}T+=i}T+=u}T+=d}T+=c}T+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B;for(l=r.shape,1===Ir(V=r.strides)?(g=l[9],y=l[8],v=l[7],m=l[6],w=l[5],b=l[4],x=l[3],_=l[2],E=l[1],T=l[0],f=V[9],s=V[8]-g*V[9],n=V[7]-y*V[8],a=V[6]-v*V[7],i=V[5]-m*V[6],u=V[4]-w*V[5],d=V[3]-b*V[4],c=V[2]-x*V[3],h=V[1]-_*V[2],p=V[0]-E*V[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],_=l[7],E=l[8],T=l[9],f=V[0],s=V[1]-g*V[0],n=V[2]-y*V[1],a=V[3]-v*V[2],i=V[4]-m*V[3],u=V[5]-w*V[4],d=V[6]-b*V[5],c=V[7]-x*V[6],h=V[8]-_*V[7],p=V[9]-E*V[8]),j=r.offset,e=r.data,t=0,B=0;B=o)return!0;j+=f}j+=s}j+=n}j+=a}j+=i}j+=u}j+=d}j+=c}j+=h}j+=p}return!1},nv],iv=[function(r,o){return!!(o<=1&&r.accessors[0](r.data,r.offset))},function(r,o){var t,e,f,s,n,a,i;for(n=r.shape[0],s=r.strides[0],a=r.offset,e=r.data,f=r.accessors[0],t=0,i=0;i=o)return!0;a+=s}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p;for(a=r.shape,1===Ir(d=r.strides)?(i=a[1],u=a[0],s=d[1],n=d[0]-i*d[1]):(i=a[0],u=a[1],s=d[0],n=d[1]-i*d[0]),c=r.offset,e=r.data,f=r.accessors[0],t=0,p=0;p=o)return!0;c+=s}c+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y;for(i=r.shape,1===Ir(h=r.strides)?(u=i[2],d=i[1],c=i[0],s=h[2],n=h[1]-u*h[2],a=h[0]-d*h[1]):(u=i[0],d=i[1],c=i[2],s=h[0],n=h[1]-u*h[0],a=h[2]-d*h[1]),p=r.offset,e=r.data,f=r.accessors[0],t=0,y=0;y=o)return!0;p+=s}p+=n}p+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w;for(u=r.shape,1===Ir(l=r.strides)?(d=u[3],c=u[2],h=u[1],p=u[0],s=l[3],n=l[2]-d*l[3],a=l[1]-c*l[2],i=l[0]-h*l[1]):(d=u[0],c=u[1],h=u[2],p=u[3],s=l[0],n=l[1]-d*l[0],a=l[2]-c*l[1],i=l[3]-h*l[2]),g=r.offset,e=r.data,f=r.accessors[0],t=0,w=0;w=o)return!0;g+=s}g+=n}g+=a}g+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_;for(d=r.shape,1===Ir(y=r.strides)?(c=d[4],h=d[3],p=d[2],l=d[1],g=d[0],s=y[4],n=y[3]-c*y[4],a=y[2]-h*y[3],i=y[1]-p*y[2],u=y[0]-l*y[1]):(c=d[0],h=d[1],p=d[2],l=d[3],g=d[4],s=y[0],n=y[1]-c*y[0],a=y[2]-h*y[1],i=y[3]-p*y[2],u=y[4]-l*y[3]),v=r.offset,e=r.data,f=r.accessors[0],t=0,_=0;_=o)return!0;v+=s}v+=n}v+=a}v+=i}v+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V;for(c=r.shape,1===Ir(m=r.strides)?(h=c[5],p=c[4],l=c[3],g=c[2],y=c[1],v=c[0],s=m[5],n=m[4]-h*m[5],a=m[3]-p*m[4],i=m[2]-l*m[3],u=m[1]-g*m[2],d=m[0]-y*m[1]):(h=c[0],p=c[1],l=c[2],g=c[3],y=c[4],v=c[5],s=m[0],n=m[1]-h*m[0],a=m[2]-p*m[1],i=m[3]-l*m[2],u=m[4]-g*m[3],d=m[5]-y*m[4]),w=r.offset,e=r.data,f=r.accessors[0],t=0,V=0;V=o)return!0;w+=s}w+=n}w+=a}w+=i}w+=u}w+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O;for(h=r.shape,1===Ir(b=r.strides)?(p=h[6],l=h[5],g=h[4],y=h[3],v=h[2],m=h[1],w=h[0],s=b[6],n=b[5]-p*b[6],a=b[4]-l*b[5],i=b[3]-g*b[4],u=b[2]-y*b[3],d=b[1]-v*b[2],c=b[0]-m*b[1]):(p=h[0],l=h[1],g=h[2],y=h[3],v=h[4],m=h[5],w=h[6],s=b[0],n=b[1]-p*b[0],a=b[2]-l*b[1],i=b[3]-g*b[2],u=b[4]-y*b[3],d=b[5]-v*b[4],c=b[6]-m*b[5]),x=r.offset,e=r.data,f=r.accessors[0],t=0,O=0;O=o)return!0;x+=s}x+=n}x+=a}x+=i}x+=u}x+=d}x+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R;for(p=r.shape,1===Ir(_=r.strides)?(l=p[7],g=p[6],y=p[5],v=p[4],m=p[3],w=p[2],b=p[1],x=p[0],s=_[7],n=_[6]-l*_[7],a=_[5]-g*_[6],i=_[4]-y*_[5],u=_[3]-v*_[4],d=_[2]-m*_[3],c=_[1]-w*_[2],h=_[0]-b*_[1]):(l=p[0],g=p[1],y=p[2],v=p[3],m=p[4],w=p[5],b=p[6],x=p[7],s=_[0],n=_[1]-l*_[0],a=_[2]-g*_[1],i=_[3]-y*_[2],u=_[4]-v*_[3],d=_[5]-m*_[4],c=_[6]-w*_[5],h=_[7]-b*_[6]),E=r.offset,e=r.data,f=r.accessors[0],t=0,R=0;R=o)return!0;E+=s}E+=n}E+=a}E+=i}E+=u}E+=d}E+=c}E+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I;for(l=r.shape,1===Ir(T=r.strides)?(g=l[8],y=l[7],v=l[6],m=l[5],w=l[4],b=l[3],x=l[2],_=l[1],E=l[0],s=T[8],n=T[7]-g*T[8],a=T[6]-y*T[7],i=T[5]-v*T[6],u=T[4]-m*T[5],d=T[3]-w*T[4],c=T[2]-b*T[3],h=T[1]-x*T[2],p=T[0]-_*T[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],_=l[7],E=l[8],s=T[0],n=T[1]-g*T[0],a=T[2]-y*T[1],i=T[3]-v*T[2],u=T[4]-m*T[3],d=T[5]-w*T[4],c=T[6]-b*T[5],h=T[7]-x*T[6],p=T[8]-_*T[7]),V=r.offset,e=r.data,f=r.accessors[0],t=0,I=0;I=o)return!0;V+=s}V+=n}V+=a}V+=i}V+=u}V+=d}V+=c}V+=h}V+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N;for(g=r.shape,1===Ir(j=r.strides)?(y=g[9],v=g[8],m=g[7],w=g[6],b=g[5],x=g[4],_=g[3],E=g[2],T=g[1],V=g[0],s=j[9],n=j[8]-y*j[9],a=j[7]-v*j[8],i=j[6]-m*j[7],u=j[5]-w*j[6],d=j[4]-b*j[5],c=j[3]-x*j[4],h=j[2]-_*j[3],p=j[1]-E*j[2],l=j[0]-T*j[1]):(y=g[0],v=g[1],m=g[2],w=g[3],b=g[4],x=g[5],_=g[6],E=g[7],T=g[8],V=g[9],s=j[0],n=j[1]-y*j[0],a=j[2]-v*j[1],i=j[3]-m*j[2],u=j[4]-w*j[3],d=j[5]-b*j[4],c=j[6]-x*j[5],h=j[7]-_*j[6],p=j[8]-E*j[7],l=j[9]-T*j[8]),A=r.offset,e=r.data,f=r.accessors[0],t=0,N=0;N=o)return!0;A+=s}A+=n}A+=a}A+=i}A+=u}A+=d}A+=c}A+=h}A+=p}A+=l}return!1},tv],uv=[function(r,o){return!!(o<=1&&(r.data[r.offset]||r.data[r.offset+1]))},function(r,o){var t,e,f,s,n,a;for(s=r.shape[0],f=r.strides[0],n=r.offset,e=r.data,t=0,a=0;a=o)return!0;n+=f}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h;for(n=r.shape,1===Ir(u=r.strides)?(a=n[1],i=n[0],f=u[1],s=u[0]-a*u[1]):(a=n[0],i=n[1],f=u[0],s=u[1]-a*u[0]),d=r.offset,e=r.data,t=0,h=0;h=o)return!0;d+=f}d+=s}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g;for(a=r.shape,1===Ir(c=r.strides)?(i=a[2],u=a[1],d=a[0],f=c[2],s=c[1]-i*c[2],n=c[0]-u*c[1]):(i=a[0],u=a[1],d=a[2],f=c[0],s=c[1]-i*c[0],n=c[2]-u*c[1]),h=r.offset,e=r.data,t=0,g=0;g=o)return!0;h+=f}h+=s}h+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m;for(i=r.shape,1===Ir(p=r.strides)?(u=i[3],d=i[2],c=i[1],h=i[0],f=p[3],s=p[2]-u*p[3],n=p[1]-d*p[2],a=p[0]-c*p[1]):(u=i[0],d=i[1],c=i[2],h=i[3],f=p[0],s=p[1]-u*p[0],n=p[2]-d*p[1],a=p[3]-c*p[2]),l=r.offset,e=r.data,t=0,m=0;m=o)return!0;l+=f}l+=s}l+=n}l+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x;for(u=r.shape,1===Ir(g=r.strides)?(d=u[4],c=u[3],h=u[2],p=u[1],l=u[0],f=g[4],s=g[3]-d*g[4],n=g[2]-c*g[3],a=g[1]-h*g[2],i=g[0]-p*g[1]):(d=u[0],c=u[1],h=u[2],p=u[3],l=u[4],f=g[0],s=g[1]-d*g[0],n=g[2]-c*g[1],a=g[3]-h*g[2],i=g[4]-p*g[3]),y=r.offset,e=r.data,t=0,x=0;x=o)return!0;y+=f}y+=s}y+=n}y+=a}y+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T;for(d=r.shape,1===Ir(v=r.strides)?(c=d[5],h=d[4],p=d[3],l=d[2],g=d[1],y=d[0],f=v[5],s=v[4]-c*v[5],n=v[3]-h*v[4],a=v[2]-p*v[3],i=v[1]-l*v[2],u=v[0]-g*v[1]):(c=d[0],h=d[1],p=d[2],l=d[3],g=d[4],y=d[5],f=v[0],s=v[1]-c*v[0],n=v[2]-h*v[1],a=v[3]-p*v[2],i=v[4]-l*v[3],u=v[5]-g*v[4]),m=r.offset,e=r.data,t=0,T=0;T=o)return!0;m+=f}m+=s}m+=n}m+=a}m+=i}m+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A;for(c=r.shape,1===Ir(w=r.strides)?(h=c[6],p=c[5],l=c[4],g=c[3],y=c[2],v=c[1],m=c[0],f=w[6],s=w[5]-h*w[6],n=w[4]-p*w[5],a=w[3]-l*w[4],i=w[2]-g*w[3],u=w[1]-y*w[2],d=w[0]-v*w[1]):(h=c[0],p=c[1],l=c[2],g=c[3],y=c[4],v=c[5],m=c[6],f=w[0],s=w[1]-h*w[0],n=w[2]-p*w[1],a=w[3]-l*w[2],i=w[4]-g*w[3],u=w[5]-y*w[4],d=w[6]-v*w[5]),b=r.offset,e=r.data,t=0,A=0;A=o)return!0;b+=f}b+=s}b+=n}b+=a}b+=i}b+=u}b+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P;for(h=r.shape,1===Ir(x=r.strides)?(p=h[7],l=h[6],g=h[5],y=h[4],v=h[3],m=h[2],w=h[1],b=h[0],f=x[7],s=x[6]-p*x[7],n=x[5]-l*x[6],a=x[4]-g*x[5],i=x[3]-y*x[4],u=x[2]-v*x[3],d=x[1]-m*x[2],c=x[0]-w*x[1]):(p=h[0],l=h[1],g=h[2],y=h[3],v=h[4],m=h[5],w=h[6],b=h[7],f=x[0],s=x[1]-p*x[0],n=x[2]-l*x[1],a=x[3]-g*x[2],i=x[4]-y*x[3],u=x[5]-v*x[4],d=x[6]-m*x[5],c=x[7]-w*x[6]),_=r.offset,e=r.data,t=0,P=0;P=o)return!0;_+=f}_+=s}_+=n}_+=a}_+=i}_+=u}_+=d}_+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k;for(p=r.shape,1===Ir(E=r.strides)?(l=p[8],g=p[7],y=p[6],v=p[5],m=p[4],w=p[3],b=p[2],x=p[1],_=p[0],f=E[8],s=E[7]-l*E[8],n=E[6]-g*E[7],a=E[5]-y*E[6],i=E[4]-v*E[5],u=E[3]-m*E[4],d=E[2]-w*E[3],c=E[1]-b*E[2],h=E[0]-x*E[1]):(l=p[0],g=p[1],y=p[2],v=p[3],m=p[4],w=p[5],b=p[6],x=p[7],_=p[8],f=E[0],s=E[1]-l*E[0],n=E[2]-g*E[1],a=E[3]-y*E[2],i=E[4]-v*E[3],u=E[5]-m*E[4],d=E[6]-w*E[5],c=E[7]-b*E[6],h=E[8]-x*E[7]),T=r.offset,e=r.data,t=0,k=0;k<_;k++){for(F=0;F=o)return!0;T+=f}T+=s}T+=n}T+=a}T+=i}T+=u}T+=d}T+=c}T+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B;for(l=r.shape,1===Ir(V=r.strides)?(g=l[9],y=l[8],v=l[7],m=l[6],w=l[5],b=l[4],x=l[3],_=l[2],E=l[1],T=l[0],f=V[9],s=V[8]-g*V[9],n=V[7]-y*V[8],a=V[6]-v*V[7],i=V[5]-m*V[6],u=V[4]-w*V[5],d=V[3]-b*V[4],c=V[2]-x*V[3],h=V[1]-_*V[2],p=V[0]-E*V[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],_=l[7],E=l[8],T=l[9],f=V[0],s=V[1]-g*V[0],n=V[2]-y*V[1],a=V[3]-v*V[2],i=V[4]-m*V[3],u=V[5]-w*V[4],d=V[6]-b*V[5],c=V[7]-x*V[6],h=V[8]-_*V[7],p=V[9]-E*V[8]),j=r.offset,e=r.data,t=0,B=0;B=o)return!0;j+=f}j+=s}j+=n}j+=a}j+=i}j+=u}j+=d}j+=c}j+=h}j+=p}return!1},fv],dv=[function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m;for(i=(m=ke(r.shape,r.strides)).sh,c=m.sx,t=Tf(r.dtype),h=r.offset,f=r.data,s=c[0],e=0,v=i[1];v>0;)for(v0;)for(y=o)return!0;p+=s}p+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E;for(d=(E=ke(r.shape,r.strides)).sh,l=E.sx,t=Tf(r.dtype),g=r.offset,f=r.data,s=l[0],e=0,_=d[2];_>0;)for(_0;)for(x0;)for(b=o)return!0;y+=s}y+=n}y+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O;for(h=(O=ke(r.shape,r.strides)).sh,v=O.sx,t=Tf(r.dtype),m=r.offset,f=r.data,s=v[0],e=0,A=h[3];A>0;)for(A0;)for(j0;)for(V0;)for(T=o)return!0;w+=s}w+=n}w+=a}w+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k;for(l=(k=ke(r.shape,r.strides)).sh,b=k.sx,t=Tf(r.dtype),x=r.offset,f=r.data,s=b[0],e=0,F=l[4];F>0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O=o)return!0;_+=s}_+=n}_+=a}_+=i}_+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D;for(y=(D=ke(r.shape,r.strides)).sh,E=D.sx,e=Tf(r.dtype),T=r.offset,f=r.data,s=E[0],t=0,N=y[5];N>0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F=o)return!0;V+=s}V+=n}V+=a}V+=i}V+=u}V+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y;for(m=(Y=ke(r.shape,r.strides)).sh,j=Y.sx,e=Tf(r.dtype),A=r.offset,f=r.data,s=j[0],t=0,z=m[6];z>0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B=o)return!0;O+=s}O+=n}O+=a}O+=i}O+=u}O+=d}O+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G;for(b=(G=ke(r.shape,r.strides)).sh,S=G.sx,e=Tf(r.dtype),P=r.offset,f=r.data,s=S[0],t=0,W=b[7];W>0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U=o)return!0;R+=s}R+=n}R+=a}R+=i}R+=u}R+=d}R+=c}R+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q;for(_=(Q=ke(r.shape,r.strides)).sh,F=Q.sx,e=Tf(r.dtype),k=r.offset,f=r.data,s=F[0],t=0,H=_[8];H>0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q=o)return!0;I+=s}I+=n}I+=a}I+=i}I+=u}I+=d}I+=c}I+=h}I+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr;for(T=(fr=ke(r.shape,r.strides)).sh,L=fr.sx,e=Tf(r.dtype),B=r.offset,f=r.data,s=L[0],t=0,er=T[9];er>0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=o)return!0;N+=s}N+=n}N+=a}N+=i}N+=u}N+=d}N+=c}N+=h}N+=p}N+=l}return!1}],cv=[function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w;for(u=(w=ke(r.shape,r.strides)).sh,h=w.sx,t=Tf(r.dtype),p=r.offset,f=r.data,n=h[0],s=r.accessors[0],e=0,m=u[1];m>0;)for(m0;)for(v=o)return!0;l+=n}l+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T;for(c=(T=ke(r.shape,r.strides)).sh,g=T.sx,t=Tf(r.dtype),y=r.offset,f=r.data,n=g[0],s=r.accessors[0],e=0,E=c[2];E>0;)for(E0;)for(_0;)for(x=o)return!0;v+=n}v+=a}v+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S;for(p=(S=ke(r.shape,r.strides)).sh,m=S.sx,t=Tf(r.dtype),w=r.offset,f=r.data,n=m[0],s=r.accessors[0],e=0,O=p[3];O>0;)for(O0;)for(A0;)for(j0;)for(V=o)return!0;b+=n}b+=a}b+=i}b+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I;for(g=(I=ke(r.shape,r.strides)).sh,x=I.sx,e=Tf(r.dtype),_=r.offset,f=r.data,n=x[0],s=r.accessors[0],t=0,k=g[4];k>0;)for(k0;)for(F0;)for(R0;)for(P0;)for(S=o)return!0;E+=n}E+=a}E+=i}E+=u}E+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M;for(v=(M=ke(r.shape,r.strides)).sh,T=M.sx,e=Tf(r.dtype),V=r.offset,f=r.data,n=T[0],s=r.accessors[0],t=0,D=v[5];D>0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k=o)return!0;j+=n}j+=a}j+=i}j+=u}j+=d}j+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q;for(w=(q=ke(r.shape,r.strides)).sh,A=q.sx,e=Tf(r.dtype),O=r.offset,f=r.data,n=A[0],s=r.accessors[0],t=0,Y=w[6];Y>0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N=o)return!0;S+=n}S+=a}S+=i}S+=u}S+=d}S+=c}S+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z;for(x=(Z=ke(r.shape,r.strides)).sh,P=Z.sx,e=Tf(r.dtype),R=r.offset,f=r.data,n=P[0],s=r.accessors[0],t=0,G=x[7];G>0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C=o)return!0;F+=n}F+=a}F+=i}F+=u}F+=d}F+=c}F+=h}F+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr;for(E=(rr=ke(r.shape,r.strides)).sh,k=rr.sx,e=Tf(r.dtype),I=r.offset,f=r.data,n=k[0],s=r.accessors[0],t=0,Q=E[8];Q>0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J=o)return!0;L+=n}L+=a}L+=i}L+=u}L+=d}L+=c}L+=h}L+=p}L+=l}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr,sr;for(V=(sr=ke(r.shape,r.strides)).sh,B=sr.sx,e=Tf(r.dtype),N=r.offset,f=r.data,n=B[0],s=r.accessors[0],t=0,fr=V[9];fr>0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z=o)return!0;D+=n}D+=a}D+=i}D+=u}D+=d}D+=c}D+=h}D+=p}D+=l}D+=g}return!1}],hv=[function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m;for(i=(m=ke(r.shape,r.strides)).sh,c=m.sx,e=Tf(r.dtype),h=r.offset,f=r.data,s=c[0],t=0,v=i[1];v>0;)for(v0;)for(y=o)return!0;p+=s}p+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E;for(d=(E=ke(r.shape,r.strides)).sh,l=E.sx,e=Tf(r.dtype),g=r.offset,f=r.data,s=l[0],t=0,_=d[2];_>0;)for(_0;)for(x0;)for(b=o)return!0;y+=s}y+=n}y+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O;for(h=(O=ke(r.shape,r.strides)).sh,v=O.sx,t=Tf(r.dtype),m=r.offset,f=r.data,s=v[0],e=0,A=h[3];A>0;)for(A0;)for(j0;)for(V0;)for(T=o)return!0;w+=s}w+=n}w+=a}w+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k;for(l=(k=ke(r.shape,r.strides)).sh,b=k.sx,t=Tf(r.dtype),x=r.offset,f=r.data,s=b[0],e=0,F=l[4];F>0;)for(F0;)for(R0;)for(P0;)for(S0;)for(O=o)return!0;_+=s}_+=n}_+=a}_+=i}_+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D;for(y=(D=ke(r.shape,r.strides)).sh,E=D.sx,e=Tf(r.dtype),T=r.offset,f=r.data,s=E[0],t=0,N=y[5];N>0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F=o)return!0;V+=s}V+=n}V+=a}V+=i}V+=u}V+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y;for(m=(Y=ke(r.shape,r.strides)).sh,j=Y.sx,e=Tf(r.dtype),A=r.offset,f=r.data,s=j[0],t=0,z=m[6];z>0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B=o)return!0;O+=s}O+=n}O+=a}O+=i}O+=u}O+=d}O+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G;for(b=(G=ke(r.shape,r.strides)).sh,S=G.sx,e=Tf(r.dtype),P=r.offset,f=r.data,s=S[0],t=0,W=b[7];W>0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U=o)return!0;R+=s}R+=n}R+=a}R+=i}R+=u}R+=d}R+=c}R+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q;for(_=(Q=ke(r.shape,r.strides)).sh,F=Q.sx,e=Tf(r.dtype),k=r.offset,f=r.data,s=F[0],t=0,H=_[8];H>0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q=o)return!0;I+=s}I+=n}I+=a}I+=i}I+=u}I+=d}I+=c}I+=h}I+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr;for(T=(fr=ke(r.shape,r.strides)).sh,L=fr.sx,e=Tf(r.dtype),B=r.offset,f=r.data,s=L[0],t=0,er=T[9];er>0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=o)return!0;N+=s}N+=n}N+=a}N+=i}N+=u}N+=d}N+=c}N+=h}N+=p}N+=l}return!1}],pv=av.length-1;var lv="throw";var gv="throw";var yv=[function(r,o,t,e){return!(1!==o||!t.call(e,r.data[r.offset],[],r.ref))},function(r,o,t,e){var f,s,n,a,i,u;for(a=r.shape[0],n=r.strides[0],i=r.offset,s=r.data,f=0,u=0;u=o)return!0;i+=n}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g;for(u=r.shape,h=r.strides,n=Pe(u.length),1===Ir(h)?(d=u[1],c=u[0],a=h[1],i=h[0]-d*h[1]):(d=u[0],c=u[1],a=h[0],i=h[1]-d*h[0],n=Bf(n)),p=r.offset,s=r.data,f=0,g=0;g=o)return!0;p+=a}p+=i}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m;for(d=r.shape,l=r.strides,n=Pe(d.length),1===Ir(l)?(c=d[2],h=d[1],p=d[0],a=l[2],i=l[1]-c*l[2],u=l[0]-h*l[1]):(c=d[0],h=d[1],p=d[2],a=l[0],i=l[1]-c*l[0],u=l[2]-h*l[1],n=Bf(n)),g=r.offset,s=r.data,f=0,m=0;m=o)return!0;g+=a}g+=i}g+=u}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x;for(c=r.shape,y=r.strides,n=Pe(c.length),1===Ir(y)?(h=c[3],p=c[2],l=c[1],g=c[0],a=y[3],i=y[2]-h*y[3],u=y[1]-h*y[2],d=y[0]-p*y[1]):(h=c[0],p=c[1],l=c[2],g=c[3],a=y[0],i=y[1]-h*y[0],u=y[2]-p*y[1],d=y[3]-l*y[2],n=Bf(n)),v=r.offset,s=r.data,f=0,x=0;x=o)return!0;v+=a}v+=i}v+=u}v+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T;for(h=r.shape,m=r.strides,n=Pe(h.length),1===Ir(m)?(p=h[4],l=h[3],g=h[2],y=h[1],v=h[0],a=m[4],i=m[3]-p*m[4],u=m[2]-l*m[3],d=m[1]-g*m[2],c=m[0]-y*m[1]):(p=h[0],l=h[1],g=h[2],y=h[3],v=h[4],a=m[0],i=m[1]-p*m[0],u=m[2]-l*m[1],d=m[3]-g*m[2],c=m[4]-y*m[3],n=Bf(n)),w=r.offset,s=r.data,f=0,T=0;T=o)return!0;w+=a}w+=i}w+=u}w+=d}w+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A;for(p=r.shape,b=r.strides,n=Pe(p.length),1===Ir(b)?(l=p[5],g=p[4],y=p[3],v=p[2],m=p[1],w=p[0],a=b[5],i=b[4]-l*b[5],u=b[3]-g*b[4],d=b[2]-y*b[3],c=b[1]-v*b[2],h=b[0]-m*b[1]):(l=p[0],g=p[1],y=p[2],v=p[3],m=p[4],w=p[5],a=b[0],i=b[1]-l*b[0],u=b[2]-g*b[1],d=b[3]-y*b[2],c=b[4]-v*b[3],h=b[5]-m*b[4],n=Bf(n)),x=r.offset,s=r.data,f=0,A=0;A=o)return!0;x+=a}x+=i}x+=u}x+=d}x+=c}x+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P;for(l=r.shape,_=r.strides,n=Pe(l.length),1===Ir(_)?(g=l[6],y=l[5],v=l[4],m=l[3],w=l[2],b=l[1],x=l[0],a=_[6],i=_[5]-g*_[6],u=_[4]-y*_[5],d=_[3]-v*_[4],c=_[2]-m*_[3],h=_[1]-w*_[2],p=_[0]-b*_[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],a=_[0],i=_[1]-g*_[0],u=_[2]-y*_[1],d=_[3]-v*_[2],c=_[4]-m*_[3],h=_[5]-w*_[4],p=_[6]-b*_[5],n=Bf(n)),E=r.offset,s=r.data,f=0,P=0;P=o)return!0;E+=a}E+=i}E+=u}E+=d}E+=c}E+=h}E+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k;for(g=r.shape,T=r.strides,n=Pe(g.length),1===Ir(T)?(y=g[7],v=g[6],m=g[5],w=g[4],b=g[3],x=g[2],_=g[1],E=g[0],a=T[7],i=T[6]-y*T[7],u=T[5]-v*T[6],d=T[4]-m*T[5],c=T[3]-w*T[4],h=T[2]-b*T[3],p=T[1]-x*T[2],l=T[0]-_*T[1]):(y=g[0],v=g[1],m=g[2],w=g[3],b=g[4],x=g[5],_=g[6],E=g[7],a=T[0],i=T[1]-y*T[0],u=T[2]-v*T[1],d=T[3]-m*T[2],c=T[4]-w*T[3],h=T[5]-b*T[4],p=T[6]-x*T[5],l=T[7]-_*T[6],n=Bf(n)),V=r.offset,s=r.data,f=0,k=0;k=o)return!0;V+=a}V+=i}V+=u}V+=d}V+=c}V+=h}V+=p}V+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B;for(y=r.shape,j=r.strides,n=Pe(y.length),1===Ir(j)?(v=y[8],m=y[7],w=y[6],b=y[5],x=y[4],_=y[3],E=y[2],T=y[1],V=y[0],a=j[8],i=j[7]-v*j[8],u=j[6]-m*j[7],d=j[5]-w*j[6],c=j[4]-b*j[5],h=j[3]-x*j[4],p=j[2]-_*j[3],l=j[1]-E*j[2],g=j[0]-T*j[1]):(v=y[0],m=y[1],w=y[2],b=y[3],x=y[4],_=y[5],E=y[6],T=y[7],V=y[8],a=j[0],i=j[1]-v*j[0],u=j[2]-m*j[1],d=j[3]-w*j[2],c=j[4]-b*j[3],h=j[5]-x*j[4],p=j[6]-_*j[5],l=j[7]-E*j[6],g=j[8]-T*j[7],n=Bf(n)),A=r.offset,s=r.data,f=0,B=0;B=o)return!0;A+=a}A+=i}A+=u}A+=d}A+=c}A+=h}A+=p}A+=l}A+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M;for(v=r.shape,O=r.strides,n=Pe(v.length),1===Ir(O)?(m=v[9],w=v[8],b=v[7],x=v[6],_=v[5],E=v[4],T=v[3],V=v[2],j=v[1],A=v[0],a=O[9],i=O[8]-m*O[9],u=O[7]-w*O[8],d=O[6]-b*O[7],c=O[5]-x*O[6],h=O[4]-_*O[5],p=O[3]-E*O[4],l=O[2]-T*O[3],g=O[1]-V*O[2],y=O[0]-j*O[1]):(m=v[0],w=v[1],b=v[2],x=v[3],_=v[4],E=v[5],T=v[6],V=v[7],j=v[8],A=v[9],a=O[0],i=O[1]-m*O[0],u=O[2]-w*O[1],d=O[3]-b*O[2],c=O[4]-x*O[3],h=O[5]-_*O[4],p=O[6]-E*O[5],l=O[7]-T*O[6],g=O[8]-V*O[7],y=O[9]-j*O[8],n=Bf(n)),S=r.offset,s=r.data,f=0,M=0;M=o)return!0;S+=a}S+=i}S+=u}S+=d}S+=c}S+=h}S+=p}S+=l}S+=g}S+=y}return!1}],vv=[function(r,o,t,e){return!(1!==o||!t.call(e,r.accessors[0](r.data,r.offset),[],r.ref))},function(r,o,t,e){var f,s,n,a,i,u,d;for(i=r.shape[0],a=r.strides[0],u=r.offset,s=r.data,n=r.accessors[0],f=0,d=0;d=o)return!0;u+=a}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y;for(d=r.shape,p=r.strides,n=Pe(d.length),1===Ir(p)?(c=d[1],h=d[0],i=p[1],u=p[0]-c*p[1]):(c=d[0],h=d[1],i=p[0],u=p[1]-c*p[0],n=Bf(n)),l=r.offset,s=r.data,a=r.accessors[0],f=0,y=0;y=o)return!0;l+=i}l+=u}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w;for(c=r.shape,g=r.strides,n=Pe(c.length),1===Ir(g)?(h=c[2],p=c[1],l=c[0],i=g[2],u=g[1]-h*g[2],d=g[0]-p*g[1]):(h=c[0],p=c[1],l=c[2],i=g[0],u=g[1]-h*g[0],d=g[2]-p*g[1],n=Bf(n)),y=r.offset,s=r.data,a=r.accessors[0],f=0,w=0;w=o)return!0;y+=i}y+=u}y+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_;for(h=r.shape,v=r.strides,n=Pe(h.length),1===Ir(v)?(p=h[3],l=h[2],g=h[1],y=h[0],i=v[3],u=v[2]-p*v[3],d=v[1]-p*v[2],c=v[0]-l*v[1]):(p=h[0],l=h[1],g=h[2],y=h[3],i=v[0],u=v[1]-p*v[0],d=v[2]-l*v[1],c=v[3]-g*v[2],n=Bf(n)),m=r.offset,s=r.data,a=r.accessors[0],f=0,_=0;_=o)return!0;m+=i}m+=u}m+=d}m+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V;for(p=r.shape,w=r.strides,n=Pe(p.length),1===Ir(w)?(l=p[4],g=p[3],y=p[2],v=p[1],m=p[0],i=w[4],u=w[3]-l*w[4],d=w[2]-g*w[3],c=w[1]-y*w[2],h=w[0]-v*w[1]):(l=p[0],g=p[1],y=p[2],v=p[3],m=p[4],i=w[0],u=w[1]-l*w[0],d=w[2]-g*w[1],c=w[3]-y*w[2],h=w[4]-v*w[3],n=Bf(n)),b=r.offset,s=r.data,a=r.accessors[0],f=0,V=0;V=o)return!0;b+=i}b+=u}b+=d}b+=c}b+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O;for(l=r.shape,x=r.strides,n=Pe(l.length),1===Ir(x)?(g=l[5],y=l[4],v=l[3],m=l[2],w=l[1],b=l[0],i=x[5],u=x[4]-g*x[5],d=x[3]-y*x[4],c=x[2]-v*x[3],h=x[1]-m*x[2],p=x[0]-w*x[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],i=x[0],u=x[1]-g*x[0],d=x[2]-y*x[1],c=x[3]-v*x[2],h=x[4]-m*x[3],p=x[5]-w*x[4],n=Bf(n)),_=r.offset,s=r.data,a=r.accessors[0],f=0,O=0;O=o)return!0;_+=i}_+=u}_+=d}_+=c}_+=h}_+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R;for(g=r.shape,E=r.strides,n=Pe(g.length),1===Ir(E)?(y=g[6],v=g[5],m=g[4],w=g[3],b=g[2],x=g[1],_=g[0],i=E[6],u=E[5]-y*E[6],d=E[4]-v*E[5],c=E[3]-m*E[4],h=E[2]-w*E[3],p=E[1]-b*E[2],l=E[0]-x*E[1]):(y=g[0],v=g[1],m=g[2],w=g[3],b=g[4],x=g[5],_=g[6],i=E[0],u=E[1]-y*E[0],d=E[2]-v*E[1],c=E[3]-m*E[2],h=E[4]-w*E[3],p=E[5]-b*E[4],l=E[6]-x*E[5],n=Bf(n)),T=r.offset,s=r.data,a=r.accessors[0],f=0,R=0;R<_;R++){for(P=0;P=o)return!0;T+=i}T+=u}T+=d}T+=c}T+=h}T+=p}T+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I;for(y=r.shape,V=r.strides,n=Pe(y.length),1===Ir(V)?(v=y[7],m=y[6],w=y[5],b=y[4],x=y[3],_=y[2],E=y[1],T=y[0],i=V[7],u=V[6]-v*V[7],d=V[5]-m*V[6],c=V[4]-w*V[5],h=V[3]-b*V[4],p=V[2]-x*V[3],l=V[1]-_*V[2],g=V[0]-E*V[1]):(v=y[0],m=y[1],w=y[2],b=y[3],x=y[4],_=y[5],E=y[6],T=y[7],i=V[0],u=V[1]-v*V[0],d=V[2]-m*V[1],c=V[3]-w*V[2],h=V[4]-b*V[3],p=V[5]-x*V[4],l=V[6]-_*V[5],g=V[7]-E*V[6],n=Bf(n)),j=r.offset,s=r.data,a=r.accessors[0],f=0,I=0;I=o)return!0;j+=i}j+=u}j+=d}j+=c}j+=h}j+=p}j+=l}j+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N;for(v=r.shape,A=r.strides,n=Pe(v.length),1===Ir(A)?(m=v[8],w=v[7],b=v[6],x=v[5],_=v[4],E=v[3],T=v[2],V=v[1],j=v[0],i=A[8],u=A[7]-m*A[8],d=A[6]-w*A[7],c=A[5]-b*A[6],h=A[4]-x*A[5],p=A[3]-_*A[4],l=A[2]-E*A[3],g=A[1]-T*A[2],y=A[0]-V*A[1]):(m=v[0],w=v[1],b=v[2],x=v[3],_=v[4],E=v[5],T=v[6],V=v[7],j=v[8],i=A[0],u=A[1]-m*A[0],d=A[2]-w*A[1],c=A[3]-b*A[2],h=A[4]-x*A[3],p=A[5]-_*A[4],l=A[6]-E*A[5],g=A[7]-T*A[6],y=A[8]-V*A[7],n=Bf(n)),O=r.offset,s=r.data,a=r.accessors[0],f=0,N=0;N=o)return!0;O+=i}O+=u}O+=d}O+=c}O+=h}O+=p}O+=l}O+=g}O+=y}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U;for(m=r.shape,S=r.strides,n=Pe(m.length),1===Ir(S)?(w=m[9],b=m[8],x=m[7],_=m[6],E=m[5],T=m[4],V=m[3],j=m[2],A=m[1],O=m[0],i=S[9],u=S[8]-w*S[9],d=S[7]-b*S[8],c=S[6]-x*S[7],h=S[5]-_*S[6],p=S[4]-E*S[5],l=S[3]-T*S[4],g=S[2]-V*S[3],y=S[1]-j*S[2],v=S[0]-A*S[1]):(w=m[0],b=m[1],x=m[2],_=m[3],E=m[4],T=m[5],V=m[6],j=m[7],A=m[8],O=m[9],i=S[0],u=S[1]-w*S[0],d=S[2]-b*S[1],c=S[3]-x*S[2],h=S[4]-_*S[3],p=S[5]-E*S[4],l=S[6]-T*S[5],g=S[7]-V*S[6],y=S[8]-j*S[7],v=S[9]-A*S[8],n=Bf(n)),P=r.offset,s=r.data,a=r.accessors[0],f=0,U=0;U=o)return!0;P+=i}P+=u}P+=d}P+=c}P+=h}P+=p}P+=l}P+=g}P+=y}P+=v}return!1}],mv=[function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x;for(c=(x=ke(r.shape,r.strides)).sh,l=x.sx,a=Bf(x.idx),f=Tf(r.dtype),g=r.offset,n=r.data,i=l[0],s=0,b=c[1];b>0;)for(b0;)for(w=o)return!0;y+=i}y+=u}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j;for(p=(j=ke(r.shape,r.strides)).sh,v=j.sx,a=Bf(j.idx),f=Tf(r.dtype),m=r.offset,n=r.data,i=v[0],s=0,V=p[2];V>0;)for(V0;)for(T0;)for(E=o)return!0;w+=i}w+=u}w+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R;for(g=(R=ke(r.shape,r.strides)).sh,b=R.sx,a=Bf(R.idx),f=Tf(r.dtype),x=r.offset,n=r.data,i=b[0],s=0,P=g[3];P>0;)for(P0;)for(S0;)for(O0;)for(A=o)return!0;_+=i}_+=u}_+=d}_+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B;for(v=(B=ke(r.shape,r.strides)).sh,E=B.sx,a=Bf(B.idx),f=Tf(r.dtype),T=r.offset,n=r.data,i=E[0],s=0,L=v[4];L>0;)for(L0;)for(I0;)for(k0;)for(F0;)for(R=o)return!0;V+=i}V+=u}V+=d}V+=c}V+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C;for(w=(C=ke(r.shape,r.strides)).sh,j=C.sx,a=Bf(C.idx),f=Tf(r.dtype),A=r.offset,n=r.data,i=j[0],s=0,U=w[5];U>0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L=o)return!0;O+=i}O+=u}O+=d}O+=c}O+=h}O+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$;for(x=($=ke(r.shape,r.strides)).sh,S=$.sx,a=Bf($.idx),f=Tf(r.dtype),P=r.offset,n=r.data,i=S[0],s=0,J=x[6];J>0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M=o)return!0;R+=i}R+=u}R+=d}R+=c}R+=h}R+=p}R+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X;for(E=(X=ke(r.shape,r.strides)).sh,F=X.sx,a=Bf(X.idx),f=Tf(r.dtype),k=r.offset,n=r.data,i=F[0],s=0,K=E[7];K>0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y=o)return!0;I+=i}I+=u}I+=d}I+=c}I+=h}I+=p}I+=l}I+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr;for(V=(tr=ke(r.shape,r.strides)).sh,L=tr.sx,a=Bf(tr.idx),f=Tf(r.dtype),B=r.offset,n=r.data,i=L[0],s=0,or=V[8];or>0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W=o)return!0;N+=i}N+=u}N+=d}N+=c}N+=h}N+=p}N+=l}N+=g}N+=y}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr,sr,nr,ar;for(A=(ar=ke(r.shape,r.strides)).sh,D=ar.sx,a=Bf(ar.idx),f=Tf(r.dtype),M=r.offset,n=r.data,i=D[0],s=0,nr=A[9];nr>0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X=o)return!0;U+=i}U+=u}U+=d}U+=c}U+=h}U+=p}U+=l}U+=g}U+=y}U+=v}return!1}],wv=[function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_;for(h=(_=ke(r.shape,r.strides)).sh,g=_.sx,a=Bf(_.idx),f=Tf(r.dtype),y=r.offset,n=r.data,u=g[0],i=r.accessors[0],s=0,x=h[1];x>0;)for(x0;)for(b=o)return!0;v+=u}v+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A;for(l=(A=ke(r.shape,r.strides)).sh,m=A.sx,a=Bf(A.idx),f=Tf(r.dtype),w=r.offset,n=r.data,u=m[0],i=r.accessors[0],s=0,j=l[2];j>0;)for(j0;)for(V0;)for(T=o)return!0;b+=u}b+=d}b+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F;for(y=(F=ke(r.shape,r.strides)).sh,x=F.sx,a=Bf(F.idx),f=Tf(r.dtype),_=r.offset,n=r.data,u=x[0],i=r.accessors[0],s=0,R=y[3];R>0;)for(R0;)for(P0;)for(S0;)for(O=o)return!0;E+=u}E+=d}E+=c}E+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N;for(m=(N=ke(r.shape,r.strides)).sh,T=N.sx,a=Bf(N.idx),f=Tf(r.dtype),V=r.offset,n=r.data,u=T[0],i=r.accessors[0],s=0,B=m[4];B>0;)for(B0;)for(L0;)for(I0;)for(k0;)for(F=o)return!0;j+=u}j+=d}j+=c}j+=h}j+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z;for(b=(z=ke(r.shape,r.strides)).sh,A=z.sx,a=Bf(z.idx),f=Tf(r.dtype),O=r.offset,n=r.data,u=A[0],i=r.accessors[0],s=0,C=b[5];C>0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(B=o)return!0;S+=u}S+=d}S+=c}S+=h}S+=p}S+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W;for(_=(W=ke(r.shape,r.strides)).sh,P=W.sx,a=Bf(W.idx),f=Tf(r.dtype),R=r.offset,n=r.data,u=P[0],i=r.accessors[0],s=0,$=_[6];$>0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U=o)return!0;F+=u}F+=d}F+=c}F+=h}F+=p}F+=l}F+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H;for(T=(H=ke(r.shape,r.strides)).sh,k=H.sx,a=Bf(H.idx),f=Tf(r.dtype),I=r.offset,n=r.data,u=k[0],i=r.accessors[0],s=0,X=T[7];X>0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q=o)return!0;L+=u}L+=d}L+=c}L+=h}L+=p}L+=l}L+=g}L+=y}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er;for(j=(er=ke(r.shape,r.strides)).sh,B=er.sx,a=Bf(er.idx),f=Tf(r.dtype),N=r.offset,n=r.data,u=B[0],i=r.accessors[0],s=0,tr=j[8];tr>0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=o)return!0;D+=u}D+=d}D+=c}D+=h}D+=p}D+=l}D+=g}D+=y}D+=v}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,S,P,R,F,k,I,L,B,N,D,M,U,C,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr,sr,nr,ar,ir;for(O=(ir=ke(r.shape,r.strides)).sh,M=ir.sx,a=Bf(ir.idx),f=Tf(r.dtype),U=r.offset,n=r.data,u=M[0],i=r.accessors[0],s=0,ar=O[9];ar>0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H=o)return!0;C+=u}C+=d}C+=c}C+=h}C+=p}C+=l}C+=g}C+=y}C+=v}C+=m}return!1}],bv=yv.length-1;function xv(r,o,t,e,f){var s=Xc(r,[o,t,e,f]);return{sh:s[0],sx:s[1],sy:s[2],sz:s[3],sw:s[4]}}function _v(r,o,t,e){return Ef([r,o,t,e])}var Ev=[function(r,o,t,e,f){e.data[e.offset]=f(r.data[r.offset],o.data[o.offset],t.data[t.offset])},function(r,o,t,e,f){var s,n,a,i,u,d,c,h,p,l,g,y,v,m;for(p=r.shape[0],u=r.strides[0],d=o.strides[0],c=t.strides[0],h=e.strides[0],l=r.offset,g=o.offset,y=t.offset,v=e.offset,s=r.data,n=o.data,a=t.data,i=e.data,m=0;m0;)for(U0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(Pr0;)for(Sr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Cr0;)for(Ur0;)for(Mr0;)for(Dr0;)for(Nr0;)for(Br0;)for(Lr0;)for(Hr0;)for(Xr0;)for(Kr0;)for(Zr0;)for(Gr0;)for(Wr0;)for($r0;)for(Jr0;)for(uo0;)for(io0;)for(ao0;)for(no0;)for(so0;)for(fo0;)for(eo0;)for(to0;)for(oo0;)for(xo0;)for(bo0;)for(wo0;)for(mo0;)for(vo0;)for(yo0;)for(go0;)for(lo0;)for(po0;)for(ho0;)for(q0;)for(Y0;)for(or0;)for(rr0;)for(Q0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(Ir0;)for(kr0;)for(Fr0;)for(Rr0;)for(Pr0;)for(Sr0;)for(Jr0;)for(qr0;)for(Yr0;)for(zr0;)for(Cr0;)for(Ur0;)for(Mr0;)for(to0;)for(oo0;)for(ro0;)for(Qr0;)for(Hr0;)for(Xr0;)for(Kr0;)for(Zr0;)for(lo0;)for(po0;)for(ho0;)for(co0;)for(uo0;)for(io0;)for(ao0;)for(no0;)for(so0;)for(Vo0;)for(To0;)for(Eo0;)for(_o0;)for(xo0;)for(bo0;)for(wo0;)for(mo0;)for(vo0;)for(yo=o.length)return r.accessors[0](r.data,e);for(i=[],u=o[s],n=t[s],d=0;d0;p--)f[h+p-1]=f[h+p]*t[p];else for(f[h]=u[h],p=0;p0;)for(T0;)for(E0;)for(R0;)for(P0;)for(S0;)for(D0;)for(N0;)for(B0;)for(L0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(U0;)for(M0;)for(D0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(O0;)for(A0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(P0;)for(S0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(k0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(N0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(S0;)for(O0;)for(A0;)for(j0;)for(I0;)for(k0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(j0;)for(V0;)for(k0;)for(F0;)for(R0;)for(U0;)for(M0;)for(D0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(O0;)for(A0;)for(L0;)for(I0;)for(k0;)for(z0;)for(C0;)for(U0;)for(M0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(Pr0;)for(Sr0;)for(Or0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;){for(b0;){for(w0;){for(V0;){for(T0;){for(E0;){for(P0;){for(S0;){for(O0;){for(A0;){for(L0;){for(I0;){for(k0;){for(F0;){for(R0;){for(U0;){for(M0;){for(D0;){for(N0;){for(B0;){for(L0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(M0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(x0;){for(b0;){for(j0;){for(V0;){for(T0;){for(R0;){for(P0;){for(S0;){for(O0;){for(B0;){for(L0;){for(I0;){for(k0;){for(F0;){for(C0;){for(U0;){for(M0;){for(D0;){for(N0;){for(B0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H3?e:{},T=o.length,u=[],P=0;Pn)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",n,Ri(t,",")));for(j=n-V,P=1;P2?e:{};return Tm(r,o,t,f)}}));var Rm="throw";var Fm=[function(r,o,t,e){o[0]=t(o[0]),r(o,e)},function(r,o,t,e,f,s){var n,a,i,u,d,c;for(a=o[1].shape[0],n=[e[0]],c=1;c0;){for(w0;){for(m0;){for(T0;){for(E0;){for(_0;){for(S0;){for(O0;){for(A0;){for(j0;){for(I0;){for(k0;){for(F0;){for(R0;){for(P0;){for(M0;){for(D0;){for(N0;){for(B0;){for(L0;){for(I0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K3?e:{},T=o.length,u=[],P=0;Pn)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",n,Ri(t,",")));for(j=n-V,P=1;P2?e:{};return Lm(r,o,t,f)}}));var zm={all:["complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},Ym=/_and_generic$/;var qm=ls(function(){var r,o,t;return 0===arguments.length?zm.all.slice():(t=!1,r=arguments[0],Ym.test(r)&&"all"!==(r=gs(r,Ym,""))&&(t=!0),o=(o=zm[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}("boolean"));function Jm(r,o){return new uo(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,r.length-o)}function $m(r,o,t,e){var f,s,n,a,i,u;if(o.length>0)if(t.length===o.length)s=1;else{if(1!==t.length)throw new Error(S("invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).",t.length,o.length));s=0}return f=Rp(e),n=r.length-1,a=Ve(r),i=Ve(o),u=Ve(t),a.accessorProtocol||i.accessorProtocol||u.accessorProtocol?vi(a.dtype)&&vi(u.dtype)?(function(r,o,t,e,f,s){var n,a,i,u,d,c;for(n=o.data,a=o.accessors[0],u=2*e,i=0,d=0;d0;){for(j0;){for(V0;){for(R0;){for(P0;){for(S0;){for(B0;){for(L0;){for(I0;){for(k0;){for(C0;){for(U0;){for(M0;){for(D0;){for(N0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(pr0;){for(hr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(A0;){for(j0;){for(F0;){for(R0;){for(P0;){for(N0;){for(B0;){for(L0;){for(I0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(ur0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(lr0;){for(pr0;){for(hr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(sr0;){for(fr5?(_=!0,h=e,A=f,E=s):Ut(e)?(h={},A=e,E=f):(_=!0,h=e,A=f),R=o.length,p=[],B=0;Bu)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",u,Ri(t,",")));for(k=u-F,B=1;By&&(o=arguments[e-1],n=fw(s,l,this._odtypes,o)))throw n;return null===s.dims&&(s.dims=Pe(l)),g=zp(Fe(i,a=Rh(l,s.dims)),{dtype:h=s.dtype||dm(c,this._policies.output),order:Nr(r)}),c!==(p=um(c,h,this._policies.casting))&&(Nu([r,d=vp(p,i,Nr(r))]),f[0]=d,c=p),t=[Cs(c)],Tm((y=Xp(this._table.fcns.length,1,this._table.types,1,1,0,t,1,0))>=0?this._table.fcns[y]:this._table.default,qp(f,1,g),s.dims),s.keepdims&&(g=yp(l,g,a,!0)),g})),J(sw.prototype,"assign",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h,p,l;if(e=arguments.length,!Td(r))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(u=sr(r),!ps(this._idtypes[0],u))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),u));for(s=[r],l=1;l=0?this._table.fcns[l]:this._table.default,qp(s,1,p),f.dims),p}));var nw={dims:null,keepdims:!1};function aw(r,o,t,e){var f;if(!gf(e))return new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",e));if(pr(e,"keepdims")&&(r.keepdims=e.keepdims,!jt(r.keepdims)))return new TypeError(S("invalid option. `%s` option must be a boolean. Option: `%s`.","keepdims",r.keepdims));if(pr(e,"dims")){if(r.dims=e.dims,!xp(r.dims)&&!dp(r.dims))return new TypeError(S("invalid option. `%s` option must be an array of integers. Option: `%s`.","dims",r.dims));if(null===(f=id(r.dims,o-1)))return new RangeError(S("invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].","dims",Ri(r.dims,",")));if(f.length!==r.dims.length)return new Error(S("invalid option. `%s` option contains duplicate indices. Option: [%s].","dims",Ri(r.dims,",")));r.dims=f}return pr(e,"dtype")&&(r.dtype=e.dtype,!ps(t,r.dtype))?new TypeError(S('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"dtype",Ri(t,'", "'),r.dtype)):null}function iw(r,o,t,e){var f,s;if(!(this instanceof iw))return new iw(r,o,t,e);if(!xt(r))throw new TypeError(S("invalid argument. First argument must be an object. Value: `%s`.",r));if(!Ut(r.default))throw new TypeError(S('invalid argument. First argument must be an object having a "default" property and an associated method.'));if(Us(r,"types")&&!mt(r.types)&&!dp(r.types))throw new TypeError(S('invalid argument. First argument must be an object having a "types" property whose associated value is an array-like object.'));if(Us(r,"fcns")&&!pp(r.fcns)&&!dp(r.fcns))throw new TypeError(S('invalid argument. First argument must be an object having a "fcns" property whose associated value is an array-like object containing functions.'));if(!mt(o))throw new TypeError(S("invalid argument. Second argument must be an array-like object. Value: `%s`.",o));for(s=0;s=0?this._table.fcns[w]:this._table.default,qp(n,1,m),a.dims,s,o),a.keepdims&&(m=yp(v,m,u,!0)),m})),J(iw.prototype,"assign",(function r(o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v;if(s=arguments.length,!Td(o))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(h=sr(o),!ps(this._idtypes[0],h))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),h));for(i=[o],v=1;v=0?this._table.fcns[v]:this._table.default,qp(i,1,y),a.dims,n,t),y}));var dw={all:["binary","bool","complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["binary","bool","complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],boolean:["bool"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},cw=/_and_generic$/;function hw(){var r,o,t;return 0===arguments.length?dw.all.slice():(t=!1,r=arguments[0],cw.test(r)&&"all"!==(r=gs(r,cw,""))&&(t=!0),o=(o=dw[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}function pw(){return{bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256}}J(hw,"enum",pw),function(r,o){var t,e,f;for(t=uf(o),f=0;f=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=nr(o),e),{sh:r=Fe(r,e),sx:o,sy:t=Fe(t,e)}}var vw="throw";var mw="throw";var ww=[function(r,o){o.data[o.offset]=r.data[r.offset]},function(r,o){var t,e,f,s,n,a,i,u;for(n=r.shape[0],f=r.strides[0],s=o.strides[0],a=r.offset,i=o.offset,t=r.data,e=o.data,u=0;u0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr=0?this._table.fcns[w]:this._table.default,qp(n,1,m),a.dims,s,o),a.keepdims&&(m=yp(v,m,u,!0)),m})),J(Aw.prototype,"assign",(function r(o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v;if(s=arguments.length,!Td(o))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(h=sr(o),!ps(this._idtypes[0],h))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),h));for(i=[o],v=1;v=0?this._table.fcns[v]:this._table.default,qp(i,1,y),a.dims,n,t),y}));var Sw={all:["binary","bool","complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["binary","bool","complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],boolean:["bool"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},Pw=/_and_generic$/;function Rw(){var r,o,t;return 0===arguments.length?Sw.all.slice():(t=!1,r=arguments[0],Pw.test(r)&&"all"!==(r=gs(r,Pw,""))&&(t=!0),o=(o=Sw[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}function Fw(){return{bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256}}J(Rw,"enum",Fw),function(r,o){var t,e,f;for(t=uf(o),f=0;f=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=nr(o),e),{sh:r=Fe(r,e),sx:o,sy:t=Fe(t,e)}}var Bw="throw";var Nw="throw";var Dw=[function(r,o){o.data[o.offset]=r.data[r.offset]},function(r,o){var t,e,f,s,n,a,i,u;for(n=r.shape[0],f=r.strides[0],s=o.strides[0],a=r.offset,i=o.offset,t=r.data,e=o.data,u=0;u0;)for(E0;)for(_0;)for(P0;)for(S0;)for(O0;)for(N0;)for(B0;)for(L0;)for(I0;)for(q0;)for(Y0;)for(z0;)for(C0;)for(U0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(V0;)for(T0;)for(F0;)for(R0;)for(P0;)for(M0;)for(D0;)for(N0;)for(B0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(pr0;)for(hr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(pr0;)for(hr0;)for(Ar0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mry&&(o=arguments[e-1],n=Jw(s,l,this._odtypes,o)))throw n;return null===s.dims&&(s.dims=Pe(l)),g=zp(Fe(i,a=Rh(l,s.dims)),{dtype:h=s.dtype||dm(c,this._policies.output),order:Nr(r)}),c!==(p=um(c,h,this._policies.casting))&&(Yw([r,d=vp(p,i,Nr(r))]),f[0]=d,c=p),t=[Cs(c)],Tm((y=Xp(this._table.fcns.length,1,this._table.types,1,1,0,t,1,0))>=0?this._table.fcns[y]:this._table.default,qp(f,1,g),s.dims),s.keepdims&&(g=yp(l,g,a,!0)),g})),J($w.prototype,"assign",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h,p,l;if(e=arguments.length,!Td(r))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(u=sr(r),!ps(this._idtypes[0],u))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),u));for(s=[r],l=1;l=0?this._table.fcns[l]:this._table.default,qp(s,1,p),f.dims),p}));var Kw="throw";var Xw="throw";var Hw=[function(r,o,t){o[1].data[o[1].offset]=r(rp(o,1),t)},function(r,o,t,e,f){var s,n,a,i,u,d,c;for(a=(d=o[1]).shape[0],n=[e[0]],c=1;c0;){for(w0;){for(m0;){for(T0;){for(E0;){for(_0;){for(S0;){for(O0;){for(A0;){for(j0;){for(I0;){for(k0;){for(F0;){for(R0;){for(P0;){for(M0;){for(D0;){for(N0;){for(B0;){for(L0;){for(I0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(b0;){for(w0;){for(V0;){for(T0;){for(E0;){for(P0;){for(S0;){for(O0;){for(A0;){for(L0;){for(I0;){for(k0;){for(F0;){for(R0;){for(U0;){for(M0;){for(D0;){for(N0;){for(B0;){for(L0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(U0;){for(M0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X3?e:{},E=o.length,i=[],O=0;Os)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",s,Ri(t,",")));for(V=s-T,O=1;O2?e:{};return eb(r,o,t,f)}}));var ab={all:["complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},ib=/_and_generic$/;var ub=ls(function(){var r,o,t;return 0===arguments.length?ab.all.slice():(t=!1,r=arguments[0],ib.test(r)&&"all"!==(r=gs(r,ib,""))&&(t=!0),o=(o=ab[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}("boolean"));function db(r,o){return new uo(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,r.length-o)}function cb(r,o,t,e){var f,s,n,a,i,u;if(o.length>0)if(t.length===o.length)s=1;else{if(1!==t.length)throw new Error(S("invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).",t.length,o.length));s=0}return f=Rp(e),n=r.length-1,a=Ve(r),i=Ve(o),u=Ve(t),a.accessorProtocol||i.accessorProtocol||u.accessorProtocol?vi(a.dtype)&&vi(u.dtype)?(function(r,o,t,e,f,s){var n,a,i,u,d,c;for(n=o.data,a=o.accessors[0],u=2*e,i=0,d=0;d0;){for(j0;){for(V0;){for(R0;){for(P0;){for(S0;){for(B0;){for(L0;){for(I0;){for(k0;){for(C0;){for(U0;){for(M0;){for(D0;){for(N0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ar0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(hr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(A0;){for(j0;){for(F0;){for(R0;){for(P0;){for(N0;){for(B0;){for(L0;){for(I0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(ir0;){for(ar0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(pr0;){for(hr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(nr0;){for(sr0;){for(fr5?(_=!0,c=e,j=f,h=s):Ut(e)?(c={},j=e,h=f):(_=!0,c=e,j=f),P=o.length,p=[],L=0;Lu)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",u,Ri(t,",")));for(F=u-R,L=1;L0;){for(_0;){for(x0;){for(A0;){for(j0;){for(V0;){for(F0;){for(R0;){for(P0;){for(S0;){for(N0;){for(B0;){for(L0;){for(I0;){for(k0;){for(z0;){for(C0;){for(U0;){for(M0;){for(D0;){for(N0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(C0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ur0;){for(ir0;){for(ar0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q3?f:{};for(A=t.length,c=[],k=0;ki)throw new RangeError(S("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",i,Ri(e,",")));for(P=i-O,k=2;k1?(o=Bb(arguments[1]),t=arguments[0],e=f):Ut(arguments[0])?(o=Nb,t=arguments[0],e=f):(o=Bb(arguments[0]),e=s),e;function f(r,e,f){return o(t,r,e,arguments.length>2?f:{})}function s(r,t,e,f){return o(r,t,e,arguments.length>3?f:{})}}));var Db={dims:null};function Mb(r,o,t,e){var f;if(!gf(e))return new TypeError(S("invalid argument. Options argument must be an object. Value: `%s`.",e));if(pr(e,"dims")){if(r.dims=e.dims,!xp(r.dims)&&!dp(r.dims))return new TypeError(S("invalid option. `%s` option must be an array of integers. Option: `%s`.","dims",r.dims));if(null===(f=id(r.dims,o-1)))return new RangeError(S("invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].","dims",Ri(r.dims,",")));if(f.length!==r.dims.length)return new Error(S("invalid option. `%s` option contains duplicate indices. Option: [%s].","dims",Ri(r.dims,",")));r.dims=f}return pr(e,"dtype")&&(r.dtype=e.dtype,!ps(t,r.dtype))?new TypeError(S('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"dtype",Ri(t,'", "'),r.dtype)):null}function Ub(r,o,t,e,f){var s,n;if(!(this instanceof Ub))return arguments.length>4?new Ub(r,o,t,e,f):new Ub(r,o,t,e);if(!xt(r))throw new TypeError(S("invalid argument. First argument must be an object. Value: `%s`.",r));if(!Ut(r.default))throw new TypeError(S('invalid argument. First argument must be an object having a "default" property and an associated method.'));if(Us(r,"types")&&!mt(r.types)&&!dp(r.types))throw new TypeError(S('invalid argument. First argument must be an object having a "types" property whose associated value is an array-like object.'));if(Us(r,"fcns")&&!pp(r.fcns)&&!dp(r.fcns))throw new TypeError(S('invalid argument. First argument must be an object having a "fcns" property whose associated value is an array-like object containing functions.'));if(!mt(o))throw new TypeError(S("invalid argument. Second argument must be an array-like object. Value: `%s`.",o));for(n=0;n4?Nb.factory(f):Nb,this}function Cb(r){return function(){return r.get(this._i)}}function zb(r){return function(o){r.set(this._i,o)}}J(Ub.prototype,"apply",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h,p,l,g;if(t=arguments.length,!Td(r))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(i=sr(r),!ps(this._idtypes[0],i))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),i));for(e=[r],g=1;gg&&(o=arguments[t-1],s=Mb(f,p,this._odtypes,o)))throw s;return null===f.dims&&(f.dims=Pe(p)),l=zp(n,{dtype:u=f.dtype||dm(i,this._policies.output),order:Nr(r)}),i!==(c=um(i,u,this._policies.casting))&&(Nu([r,d=vp(c,n,Nr(r))]),e[0]=d,i=c),h=(g=Xp(this._table.fcns.length,2,this._table.types,2,1,0,lp([i,u]),1,0))>=0?this._table.fcns[g]:this._table.default,this._apply(h,qp(e,1,l),f.dims),l})),J(Ub.prototype,"assign",(function r(o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y;if(e=arguments.length,!Td(o))throw new TypeError(S("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(u=sr(o),!ps(this._idtypes[0],u))throw new TypeError(S('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),u));for(s=[o],y=1;y=0?this._table.fcns[y]:this._table.default,this._apply(l,qp(s,1,g),f.dims),g}));var Yb={};return D(Yb,"any",(function(r){var o,t,e,f,s,n,a,i,u,d,c,h;if(t=(f=(d=Mr(r[0])).shape).length,Y(d.data)?(d.data=co(d.data,0),d.accessorProtocol=!1):C(d.data)&&(d.data=eo(d.data,0),d.accessorProtocol=!1,d.strides=Se(t,2,d.strides,1),d.offset*=2,o=!0),0===t)return d.accessorProtocol?Pf[t](d):o?Rf[t](d):Sf[t](d);for(n=1,u=0,h=0;h0?n[a-1]:n[0],u=0;u=a&&(f=a-1);else if("wrap"===s)f<0?(f+=a)<0&&0!==(f%=a)&&(f+=a):f>=a&&(f-=a)>=a&&(f%=a);else if("normalize"===s&&f<0&&(f+=a),f<0||f>=a)throw new RangeError(S("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",a,f));if(i=0,xr(e)){for(c=n-1;c>=0;c--)(d=o[c])<0?(f-=(u=Uf(f/d))*d,u+=r[c]-1):f-=(u=Uf(f/d))*d,i+=u*kr(d);return i}for(c=0;co?o:r})),D(Yb,"complementShape",(function(r,o){var t=id(o,r.length-1);return null===t?[]:Fe(r,Rh(r.length,t))})),D(Yb,"consensusOrder",(function(r){var o,t,e,f;for(e=r.length,t=(o=Df(4)).length,f=0;f0)return pl(f);return o[1]>o[2]?pl(1):o[1]0&&(f+=o[s]*(r[s]-1))}return f})),D(Yb,"maybeBroadcastArray",ey),D(Yb,"maybeBroadcastArrayExceptDimensions",(function(r,o,t){var e,f,s,n,a,i,u;if(f=ar(r,!1),n=o.length,(a=f.length)===n){if(s=(e=Yp(t)).length,null===(e=id(e,a-1)))throw new RangeError(S("invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].",Ri(t,",")));if(e.sort(),e.length!==s)throw new Error(S("invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].",Ri(t,",")));for(u=0,i=0;i3?new Ry(r,o,t,e):new Ry(r,o,t),function(){var r,o;for(r=[],o=0;o=o)return!0;return!1}(s,a,o,t):function(r,o,t,e){var f,s,n,a,i,u,d,c,h,p;for(i=fr(u=r.shape),s=r.data,d=r.strides,c=r.offset,n=r.order,f=0,p=0;p=o)return!0;return!1}(s,a,o,t))})),D(Yb,"spreadDimensions",yp),D(Yb,"stride",(function(r,o){var t,e;if(0===(t=Uc(r)))throw new TypeError(S("invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.",t));if(-1===(e=ad(o,t-1)))throw new RangeError(S("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",t,o));return Tr(r,!1)[e]})),D(Yb,"strides",Tr),D(Yb,"strides2offset",Rr),D(Yb,"strides2order",Ir),D(Yb,"sub2ind",(function(){var r,o,t,e,f,s,n,a,i,u,d,c;for(r=arguments[1],o=arguments[2],t=(s=arguments[3+(f=(e=arguments[0]).length)]).length,a=o,c=0;c=i&&(d=i-1);else if("wrap"===n)d<0?(d+=i)<0&&0!==(d%=i)&&(d+=i):d>=i&&(d-=i)>=i&&(d%=i);else if("normalize"===n&&d<0&&(d+=i),d<0||d>=i)throw new RangeError(S("invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.",c,d));(u=r[c])<0&&0===o?a-=d*u:a+=d*u}return a})),D(Yb,"ternary",(function(r,o){var t,e,f,s,n,a,i,u,d,c,h,p,l,g,y,v,m,w,b,x,_,E,T,V,j,A,O,P,R,F;if(j=Mr(r[0]),A=Mr(r[1]),P=Mr(r[2]),O=Mr(r[3]),a=j.shape,i=A.shape,d=P.shape,u=O.shape,(t=a.length)!==i.length||t!==d.length||t!==u.length)throw new Error(S("invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d. ndims(z) == %d. ndims(w) == %d.",t,i.length,d.length,u.length));if(0===t)return Ov(j,A,P,O)?Tv[t](j,A,P,O,o):Ev[t](j,A,P,O,o);for(g=1,V=0,F=0;F0?(u=fr(s),a=_r(s,e)):(u=1,a=[0]),i=Dc(t,u),d=new r.constructor(t,i,s,a,0,e),Nu([sd(t,Dr(r),n,h,Fr(r),e),sd(t,i,n,_r(n,e),0,e)]),d})),D(Yb,"blockSize",Ef),D(Yb,"ndarray2array",(function(r,o,t,e,f){var s;if(0===o.length)return[];for(s=0;s1&&(o=arguments[1]),qh(r.length,o)}(r),e=0;e4?new Ub(r,o,t,e,f):new Ub(r,o,t,e),J(n,"assign",(function(){var r,o;for(r=[],o=0;o0?(f=fr(o),s=_r(o,t)):(f=1,s=[0]),null===(e=Dc(r,f)))throw new TypeError(S("invalid argument. First argument must be a recognized data type. Value: `%s`.",r));return new sd(r,e,o,s,Rr(o,s),t)})),D(Yb,"zerosLike",(function(r){var o,t,e,f,s,n;if(n=sr(r),f=ar(r,!0),e=Nr(r),f.length>0?(o=fr(f),s=_r(f,e)):(o=1,s=[0]),null===(t=Dc(n,o)))throw new TypeError(S("invalid argument. First argument must have a recognized data type. Value: `%s`.",n));return new r.constructor(n,t,f,s,Rr(f,s),e)})),D(Yb,"zip2views1d",(function(r,o){var t,e,f,s,n,a,i,u;if((a=r.length)<1)return[];for(f=[],u=0;u 0 ) {\n\t\t\t\tdigits -= 1;\n\t\t\t}\n\t\t\tout = f.toExponential( digits );\n\t\t} else {\n\t\t\tout = f.toPrecision( token.precision );\n\t\t}\n\t\tif ( !token.alternate ) {\n\t\t\tout = replace.call( out, RE_ZERO_BEFORE_EXP, '$1e' );\n\t\t\tout = replace.call( out, RE_PERIOD_ZERO_EXP, 'e' );\n\t\t\tout = replace.call( out, RE_TRAILING_PERIOD_ZERO, '' );\n\t\t}\n\t\tbreak;\n\tdefault:\n\t\tthrow new Error( 'invalid double notation. Value: ' + token.specifier );\n\t}\n\tout = replace.call( out, RE_EXP_POS_DIGITS, 'e+0$1' );\n\tout = replace.call( out, RE_EXP_NEG_DIGITS, 'e-0$1' );\n\tif ( token.alternate ) {\n\t\tout = replace.call( out, RE_ONLY_DIGITS, '$1.' );\n\t\tout = replace.call( out, RE_DIGITS_BEFORE_EXP, '$1.e' );\n\t}\n\tif ( f >= 0 && token.sign ) {\n\t\tout = token.sign + out;\n\t}\n\tout = ( token.specifier === uppercase.call( token.specifier ) ) ?\n\t\tuppercase.call( out ) :\n\t\tlowercase.call( out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatDouble;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Returns `n` spaces.\n*\n* @private\n* @param {number} n - number of spaces\n* @returns {string} string of spaces\n*/\nfunction spaces( n ) {\n\tvar out = '';\n\tvar i;\n\tfor ( i = 0; i < n; i++ ) {\n\t\tout += ' ';\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Pads a token with spaces to the specified width.\n*\n* @private\n* @param {string} str - token argument\n* @param {number} width - token width\n* @param {boolean} [right=false] - boolean indicating whether to pad to the right\n* @returns {string} padded token argument\n*/\nfunction spacePad( str, width, right ) {\n\tvar pad = width - str.length;\n\tif ( pad < 0 ) {\n\t\treturn str;\n\t}\n\tstr = ( right ) ?\n\t\tstr + spaces( pad ) :\n\t\tspaces( pad ) + str;\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default spacePad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport formatInteger from './format_integer.js';\nimport isString from './is_string.js';\nimport isNumber from './is_number.js';\nimport formatDouble from './format_double.js';\nimport spacePad from './space_pad.js';\nimport zeroPad from './zero_pad.js';\n\n\n// VARIABLES //\n\nvar fromCharCode = String.fromCharCode;\nvar isArray = Array.isArray; // NOTE: We use the global `Array.isArray` function here instead of `@stdlib/assert/is-array` to avoid circular dependencies.\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating whether a value is `NaN`.\n*\n* @private\n* @param {*} value - input value\n* @returns {boolean} boolean indicating whether a value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 4 );\n* // returns false\n*/\nfunction isnan( value ) { // explicitly define a function here instead of `@stdlib/math/base/assert/is-nan` in order to avoid circular dependencies\n\treturn ( value !== value );\n}\n\n/**\n* Initializes token object with properties of supplied format identifier object or default values if not present.\n*\n* @private\n* @param {Object} token - format identifier object\n* @returns {Object} token object\n*/\nfunction initialize( token ) {\n\tvar out = {};\n\tout.specifier = token.specifier;\n\tout.precision = ( token.precision === void 0 ) ? 1 : token.precision;\n\tout.width = token.width;\n\tout.flags = token.flags || '';\n\tout.mapping = token.mapping;\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates string from a token array by interpolating values.\n*\n* @param {Array} tokens - string parts and format identifier objects\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be an array\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var tokens = [ 'beep ', { 'specifier': 's' } ];\n* var out = formatInterpolate( tokens, 'boop' );\n* // returns 'beep boop'\n*/\nfunction formatInterpolate( tokens ) {\n\tvar hasPeriod;\n\tvar flags;\n\tvar token;\n\tvar flag;\n\tvar num;\n\tvar out;\n\tvar pos;\n\tvar f;\n\tvar i;\n\tvar j;\n\n\tif ( !isArray( tokens ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an array. Value: `' + tokens + '`.' );\n\t}\n\tout = '';\n\tpos = 1;\n\tfor ( i = 0; i < tokens.length; i++ ) {\n\t\ttoken = tokens[ i ];\n\t\tif ( isString( token ) ) {\n\t\t\tout += token;\n\t\t} else {\n\t\t\thasPeriod = token.precision !== void 0;\n\t\t\ttoken = initialize( token );\n\t\t\tif ( !token.specifier ) {\n\t\t\t\tthrow new TypeError( 'invalid argument. Token is missing `specifier` property. Index: `'+ i +'`. Value: `' + token + '`.' );\n\t\t\t}\n\t\t\tif ( token.mapping ) {\n\t\t\t\tpos = token.mapping;\n\t\t\t}\n\t\t\tflags = token.flags;\n\t\t\tfor ( j = 0; j < flags.length; j++ ) {\n\t\t\t\tflag = flags.charAt( j );\n\t\t\t\tswitch ( flag ) {\n\t\t\t\tcase ' ':\n\t\t\t\t\ttoken.sign = ' ';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '+':\n\t\t\t\t\ttoken.sign = '+';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '-':\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase '0':\n\t\t\t\t\ttoken.padZeros = flags.indexOf( '-' ) < 0; // NOTE: We use built-in `Array.prototype.indexOf` here instead of `@stdlib/assert/contains` in order to avoid circular dependencies.\n\t\t\t\t\tbreak;\n\t\t\t\tcase '#':\n\t\t\t\t\ttoken.alternate = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error( 'invalid flag: ' + flag );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( token.width === '*' ) {\n\t\t\t\ttoken.width = parseInt( arguments[ pos ], 10 );\n\t\t\t\tpos += 1;\n\t\t\t\tif ( isnan( token.width ) ) {\n\t\t\t\t\tthrow new TypeError( 'the argument for * width at position ' + pos + ' is not a number. Value: `' + token.width + '`.' );\n\t\t\t\t}\n\t\t\t\tif ( token.width < 0 ) {\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.width = -token.width;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( hasPeriod ) {\n\t\t\t\tif ( token.precision === '*' ) {\n\t\t\t\t\ttoken.precision = parseInt( arguments[ pos ], 10 );\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tif ( isnan( token.precision ) ) {\n\t\t\t\t\t\tthrow new TypeError( 'the argument for * precision at position ' + pos + ' is not a number. Value: `' + token.precision + '`.' );\n\t\t\t\t\t}\n\t\t\t\t\tif ( token.precision < 0 ) {\n\t\t\t\t\t\ttoken.precision = 1;\n\t\t\t\t\t\thasPeriod = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttoken.arg = arguments[ pos ];\n\t\t\tswitch ( token.specifier ) {\n\t\t\tcase 'b':\n\t\t\tcase 'o':\n\t\t\tcase 'x':\n\t\t\tcase 'X':\n\t\t\tcase 'd':\n\t\t\tcase 'i':\n\t\t\tcase 'u':\n\t\t\t\t// Case: %b (binary), %o (octal), %x, %X (hexadecimal), %d, %i (decimal), %u (unsigned decimal)\n\t\t\t\tif ( hasPeriod ) {\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatInteger( token );\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\t// Case: %s (string)\n\t\t\t\ttoken.maxWidth = ( hasPeriod ) ? token.precision : -1;\n\t\t\t\ttoken.arg = String( token.arg );\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\t\t// Case: %c (character)\n\t\t\t\tif ( !isnan( token.arg ) ) {\n\t\t\t\t\tnum = parseInt( token.arg, 10 );\n\t\t\t\t\tif ( num < 0 || num > 127 ) {\n\t\t\t\t\t\tthrow new Error( 'invalid character code. Value: ' + token.arg );\n\t\t\t\t\t}\n\t\t\t\t\ttoken.arg = ( isnan( num ) ) ? String( token.arg ) : fromCharCode( num ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'e':\n\t\t\tcase 'E':\n\t\t\tcase 'f':\n\t\t\tcase 'F':\n\t\t\tcase 'g':\n\t\t\tcase 'G':\n\t\t\t\t// Case: %e, %E (scientific notation), %f, %F (decimal floating point), %g, %G (uses the shorter of %e/E or %f/F)\n\t\t\t\tif ( !hasPeriod ) {\n\t\t\t\t\ttoken.precision = 6;\n\t\t\t\t}\n\t\t\t\tf = parseFloat( token.arg );\n\t\t\t\tif ( !isFinite( f ) ) { // NOTE: We use the global `isFinite` function here instead of `@stdlib/math/base/assert/is-finite` in order to avoid circular dependencies.\n\t\t\t\t\tif ( !isNumber( token.arg ) ) {\n\t\t\t\t\t\tthrow new Error( 'invalid floating-point number. Value: ' + out );\n\t\t\t\t\t}\n\t\t\t\t\t// Case: NaN, Infinity, or -Infinity\n\t\t\t\t\tf = token.arg;\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatDouble( f, token );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'invalid specifier: ' + token.specifier );\n\t\t\t}\n\t\t\t// Fit argument into field width...\n\t\t\tif ( token.maxWidth >= 0 && token.arg.length > token.maxWidth ) {\n\t\t\t\ttoken.arg = token.arg.substring( 0, token.maxWidth );\n\t\t\t}\n\t\t\tif ( token.padZeros ) {\n\t\t\t\ttoken.arg = zeroPad( token.arg, token.width || token.precision, token.padRight ); // eslint-disable-line max-len\n\t\t\t} else if ( token.width ) {\n\t\t\t\ttoken.arg = spacePad( token.arg, token.width, token.padRight );\n\t\t\t}\n\t\t\tout += token.arg || '';\n\t\t\tpos += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatInterpolate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar RE = /%(?:([1-9]\\d*)\\$)?([0 +\\-#]*)(\\*|\\d+)?(?:(\\.)(\\*|\\d+)?)?[hlL]?([%A-Za-z])/g;\n\n\n// FUNCTIONS //\n\n/**\n* Parses a delimiter.\n*\n* @private\n* @param {Array} match - regular expression match\n* @returns {Object} delimiter token object\n*/\nfunction parse( match ) {\n\tvar token = {\n\t\t'mapping': ( match[ 1 ] ) ? parseInt( match[ 1 ], 10 ) : void 0,\n\t\t'flags': match[ 2 ],\n\t\t'width': match[ 3 ],\n\t\t'precision': match[ 5 ],\n\t\t'specifier': match[ 6 ]\n\t};\n\tif ( match[ 4 ] === '.' && match[ 5 ] === void 0 ) {\n\t\ttoken.precision = '1';\n\t}\n\treturn token;\n}\n\n\n// MAIN //\n\n/**\n* Tokenizes a string into an array of string parts and format identifier objects.\n*\n* @param {string} str - input string\n* @returns {Array} tokens\n*\n* @example\n* var tokens = formatTokenize( 'Hello %s!' );\n* // returns [ 'Hello ', {...}, '!' ]\n*/\nfunction formatTokenize( str ) {\n\tvar content;\n\tvar tokens;\n\tvar match;\n\tvar prev;\n\n\ttokens = [];\n\tprev = 0;\n\tmatch = RE.exec( str );\n\twhile ( match ) {\n\t\tcontent = str.slice( prev, RE.lastIndex - match[ 0 ].length );\n\t\tif ( content.length ) {\n\t\t\ttokens.push( content );\n\t\t}\n\t\t// Check for an escaped percent sign `%%`...\n\t\tif ( match[ 6 ] === '%' ) {\n\t\t\ttokens.push( '%' );\n\t\t} else {\n\t\t\ttokens.push( parse( match ) );\n\t\t}\n\t\tprev = RE.lastIndex;\n\t\tmatch = RE.exec( str );\n\t}\n\tcontent = str.slice( prev );\n\tif ( content.length ) {\n\t\ttokens.push( content );\n\t}\n\treturn tokens;\n}\n\n\n// EXPORTS //\n\nexport default formatTokenize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport interpolate from '@stdlib/string-base-format-interpolate';\nimport tokenize from '@stdlib/string-base-format-tokenize';\nimport isString from './is_string.js';\n\n\n// MAIN //\n\n/**\n* Inserts supplied variable values into a format string.\n*\n* @param {string} str - input string\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be a string\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var str = format( 'Hello %s!', 'world' );\n* // returns 'Hello world!'\n*\n* @example\n* var str = format( 'Pi: ~%.2f', 3.141592653589793 );\n* // returns 'Pi: ~3.14'\n*/\nfunction format( str ) {\n\tvar args;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\targs = [ tokenize( str ) ];\n\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn interpolate.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default format;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-underscore-dangle, no-proto */\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar objectProtoype = Object.prototype;\nvar toStr = objectProtoype.toString;\nvar defineGetter = objectProtoype.__defineGetter__;\nvar defineSetter = objectProtoype.__defineSetter__;\nvar lookupGetter = objectProtoype.__lookupGetter__;\nvar lookupSetter = objectProtoype.__lookupSetter__;\n\n\n// MAIN //\n\n/**\n* Defines (or modifies) an object property.\n*\n* ## Notes\n*\n* - Property descriptors come in two flavors: **data descriptors** and **accessor descriptors**. A data descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property described by a getter-setter function pair. A descriptor must be one of these two flavors and cannot be both.\n*\n* @param {Object} obj - object on which to define the property\n* @param {string} prop - property name\n* @param {Object} descriptor - property descriptor\n* @param {boolean} [descriptor.configurable=false] - boolean indicating if property descriptor can be changed and if the property can be deleted from the provided object\n* @param {boolean} [descriptor.enumerable=false] - boolean indicating if the property shows up when enumerating object properties\n* @param {boolean} [descriptor.writable=false] - boolean indicating if the value associated with the property can be changed with an assignment operator\n* @param {*} [descriptor.value] - property value\n* @param {(Function|void)} [descriptor.get=undefined] - function which serves as a getter for the property, or, if no getter, undefined. When the property is accessed, a getter function is called without arguments and with the `this` context set to the object through which the property is accessed (which may not be the object on which the property is defined due to inheritance). The return value will be used as the property value.\n* @param {(Function|void)} [descriptor.set=undefined] - function which serves as a setter for the property, or, if no setter, undefined. When assigning a property value, a setter function is called with one argument (the value being assigned to the property) and with the `this` context set to the object through which the property is assigned.\n* @throws {TypeError} first argument must be an object\n* @throws {TypeError} third argument must be an object\n* @throws {Error} property descriptor cannot have both a value and a setter and/or getter\n* @returns {Object} object with added property\n*\n* @example\n* var obj = {};\n*\n* defineProperty( obj, 'foo', {\n* 'value': 'bar'\n* });\n*\n* var str = obj.foo;\n* // returns 'bar'\n*/\nfunction defineProperty( obj, prop, descriptor ) {\n\tvar prototype;\n\tvar hasValue;\n\tvar hasGet;\n\tvar hasSet;\n\n\tif ( typeof obj !== 'object' || obj === null || toStr.call( obj ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', obj ) );\n\t}\n\tif ( typeof descriptor !== 'object' || descriptor === null || toStr.call( descriptor ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Property descriptor must be an object. Value: `%s`.', descriptor ) );\n\t}\n\thasValue = ( 'value' in descriptor );\n\tif ( hasValue ) {\n\t\tif (\n\t\t\tlookupGetter.call( obj, prop ) ||\n\t\t\tlookupSetter.call( obj, prop )\n\t\t) {\n\t\t\t// Override `__proto__` to avoid touching inherited accessors:\n\t\t\tprototype = obj.__proto__;\n\t\t\tobj.__proto__ = objectProtoype;\n\n\t\t\t// Delete property as existing getters/setters prevent assigning value to specified property:\n\t\t\tdelete obj[ prop ];\n\t\t\tobj[ prop ] = descriptor.value;\n\n\t\t\t// Restore original prototype:\n\t\t\tobj.__proto__ = prototype;\n\t\t} else {\n\t\t\tobj[ prop ] = descriptor.value;\n\t\t}\n\t}\n\thasGet = ( 'get' in descriptor );\n\thasSet = ( 'set' in descriptor );\n\n\tif ( hasValue && ( hasGet || hasSet ) ) {\n\t\tthrow new Error( 'invalid argument. Cannot specify one or more accessors and a value or writable attribute in the property descriptor.' );\n\t}\n\n\tif ( hasGet && defineGetter ) {\n\t\tdefineGetter.call( obj, prop, descriptor.get );\n\t}\n\tif ( hasSet && defineSetter ) {\n\t\tdefineSetter.call( obj, prop, descriptor.set );\n\t}\n\treturn obj;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Define (or modify) an object property.\n*\n* @module @stdlib/utils-define-property\n*\n* @example\n* import defineProperty from '@stdlib/utils-define-property';\n*\n* var obj = {};\n* defineProperty( obj, 'foo', {\n* 'value': 'bar',\n* 'writable': false,\n* 'configurable': false,\n* 'enumerable': false\n* });\n* obj.foo = 'boop'; // => throws\n*/\n\n// MODULES //\n\nimport hasDefinePropertySupport from './has_define_property_support.js';\nimport builtin from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar defineProperty;\nif ( hasDefinePropertySupport() ) {\n\tdefineProperty = builtin;\n} else {\n\tdefineProperty = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './define_property.js';\n\n\n// MAIN //\n\n/**\n* Tests for `Object.defineProperty` support.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment has `Object.defineProperty` support\n*\n* @example\n* var bool = hasDefinePropertySupport();\n* // returns \n*/\nfunction hasDefinePropertySupport() {\n\t// Test basic support...\n\ttry {\n\t\tdefineProperty( {}, 'x', {} );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default hasDefinePropertySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar C64_BYTES_PER_ELEMENT = 8; // 4 bytes per float32 x (1 real + 1 imag component)\nvar C128_BYTES_PER_ELEMENT = 16; // 8 bytes per float64 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isComplexTypedArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isComplexTypedArray( [] );\n* // returns false\n*/\nfunction isComplexTypedArray( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex128Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex-typed-array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t(\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\t\t\tvalue.BYTES_PER_ELEMENT === C128_BYTES_PER_ELEMENT\n\t\t\t) ||\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\t\t\tvalue.BYTES_PER_ELEMENT === C64_BYTES_PER_ELEMENT\n\t\t\t)\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplexTypedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 1; // 1 bytes per uint8\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var bool = isBooleanArray( new BooleanArray( 10 ) );\n* // returns true\n*\n* bool = isBooleanArray( [] );\n* // returns false\n*/\nfunction isBooleanArray( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `BooleanArray` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-booleanarray`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBooleanArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns array iteration order.\n*\n* ## Notes\n*\n* - Return value key:\n*\n* - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`)\n* - `1`: ordered left-to-right (i.e., all nonnegative strides)\n* - `-1`: ordered right-to-left (i.e., all negative strides)\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} iteration order\n*\n* @example\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\n* // returns -1\n*/\nfunction iterationOrder( strides ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < strides.length; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\tif ( cnt === 0 ) {\n\t\t// All nonnegative strides:\n\t\treturn 1|0; // asm-type annotation\n\t}\n\tif ( cnt === strides.length ) {\n\t\t// All negative strides:\n\t\treturn -1|0; // asm-type annotation\n\t}\n\t// Strides of mixed signs:\n\treturn 0|0; // asm-type annotation\n}\n\n\n// EXPORTS //\n\nexport default iterationOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setNonEnumerableReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {Array} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [ offset, offset ];\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\treturn [ min, max ];\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset, out ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\tout[ 0 ] = offset;\n\t\t\tout[ 1 ] = offset;\n\t\t\treturn out;\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\tout[ 0 ] = min;\n\tout[ 1 ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @module @stdlib/ndarray-base-minmax-view-buffer-index\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar TYPE = 'function';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like object supports the accessor (get/set) protocol.\n*\n* @param {Object} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn ( typeof value.get === TYPE && typeof value.set === TYPE ); // eslint-disable-line valid-typeof\n}\n\n\n// EXPORTS //\n\nexport default isAccessorArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'complex128': getComplex128,\n\t'complex64': getComplex64,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex128( arr, 1 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction getComplex128( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex64( arr, 1 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction getComplex64( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'complex128': setComplex128,\n\t'complex64': setComplex64,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex128( arr, 1, new Complex128( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns [ 10.0, 11.0 ]\n*/\nfunction setComplex128( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex64( arr, 1, new Complex64( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns [ 10.0, 11.0 ]\n*/\nfunction setComplex64( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* setArrayLike( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns [ 10.0, 11.0 ]\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'float64': setFloat64,\n\t'float32': setFloat32,\n\t'int32': setInt32,\n\t'int16': setInt16,\n\t'int8': setInt8,\n\t'uint32': setUint32,\n\t'uint16': setUint16,\n\t'uint8': setUint8,\n\t'uint8c': setUint8c,\n\t'generic': setGeneric,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( 4 );\n*\n* setFloat64( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat64( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( 4 );\n*\n* setFloat32( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( 4 );\n*\n* setInt32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( 4 );\n*\n* setInt16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( 4 );\n*\n* setInt8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( 4 );\n*\n* setUint32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( 4 );\n*\n* setUint16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( 4 );\n*\n* setUint8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( 4 );\n*\n* setUint8c( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8c( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setGeneric( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setGeneric( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setArrayLike( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the number of elements in an array.\n*\n* @param {(NonNegativeIntegerArray|EmptyArray)} shape - array shape\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\nfunction numel( shape ) {\n\tvar ndims;\n\tvar n;\n\tvar i;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tn *= shape[ i ];\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default numel;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\treturn x.dtype;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( x[ i ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x, copy ) {\n\tvar sh = x.shape;\n\tif ( copy ) {\n\t\treturn copyIndexed( sh );\n\t}\n\treturn sh;\n}\n\n\n// EXPORTS //\n\nexport default shape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' );\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasSymbols from '@stdlib/assert-has-symbol-support';\n\n\n// VARIABLES //\n\nvar FLG = hasSymbols();\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.toStringTag` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.toStringTag` support\n*\n* @example\n* var bool = hasToStringTagSupport();\n* // returns \n*/\nfunction hasToStringTagSupport() {\n\treturn ( FLG && typeof Symbol.toStringTag === 'symbol' );\n}\n\n\n// EXPORTS //\n\nexport default hasToStringTagSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests for native `Symbol` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol` support\n*\n* @example\n* var bool = hasSymbolSupport();\n* // returns \n*/\nfunction hasSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar toStr = Object.prototype.toString;\n\n\n// EXPORTS //\n\nexport default toStr;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\nvar has = Object.prototype.hasOwnProperty;\n\n\n// MAIN //\n\n/**\n* Tests if an object has a specified property.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object has a specified property\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'bap' );\n* // returns false\n*/\nfunction hasOwnProp( value, property ) {\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\treturn has.call( value, property );\n}\n\n\n// EXPORTS //\n\nexport default hasOwnProp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar Sym = ( typeof Symbol === 'function' ) ? Symbol : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Sym;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Symbol from '@stdlib/symbol-ctor';\n\n\n// MAIN //\n\nvar toStrTag = ( typeof Symbol === 'function' ) ? Symbol.toStringTag : '';\n\n\n// EXPORTS //\n\nexport default toStrTag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a string value indicating a specification defined classification of an object.\n*\n* @module @stdlib/utils-native-class\n*\n* @example\n* import nativeClass from '@stdlib/utils-native-class';\n*\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* function Beep() {\n* return this;\n* }\n* str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( hasToStringTag() ) {\n\tmain = polyfill;\n} else {\n\tmain = builtin;\n}\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport toStringTag from './tostringtag.js';\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification of an object in environments supporting `Symbol.toStringTag`.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\tvar isOwn;\n\tvar tag;\n\tvar out;\n\n\tif ( v === null || v === void 0 ) {\n\t\treturn toStr.call( v );\n\t}\n\ttag = v[ toStringTag ];\n\tisOwn = hasOwnProp( v, toStringTag );\n\n\t// Attempt to override the `toStringTag` property. For built-ins having a `Symbol.toStringTag` property (e.g., `JSON`, `Math`, etc), the `Symbol.toStringTag` property is read-only (e.g., , so we need to wrap in a `try/catch`.\n\ttry {\n\t\tv[ toStringTag ] = void 0;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn toStr.call( v );\n\t}\n\tout = toStr.call( v );\n\n\tif ( isOwn ) {\n\t\tv[ toStringTag ] = tag;\n\t} else {\n\t\tdelete v[ toStringTag ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification (via the internal property `[[Class]]`) of an object.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\treturn toStr.call( v );\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar valueOf = String.prototype.valueOf; // non-generic\n\n\n// EXPORTS //\n\nexport default valueOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport test from './try2valueof.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string object\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns false\n*/\nfunction isString( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof String ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object String]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport valueOf from './valueof.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to extract a string value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a string can be extracted\n*/\nfunction test( value ) {\n\ttry {\n\t\tvalueOf.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a string\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*/\nfunction isString( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isString;\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* Tests whether an input value is the string representing column-major order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean result\n*\n* @example\n* var bool = isColumnMajorString( 'column-major' );\n* // returns true\n*\n* bool = isColumnMajorString( 'row-major' );\n* // returns false\n*\n* bool = isColumnMajorString( 'foo' );\n* // returns false\n*/\nfunction isColumnMajorString( v ) {\n\treturn ( v === 'column-major' );\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction rowmajor( shape ) {\n\tvar ndims;\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tout = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( 0 );\n\t}\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction columnmajor( shape ) {\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tout = [];\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout.push( s );\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Array} array strides\n*\n* @example\n* var s = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* s = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order ) {\n\tif ( isColumnMajor( order ) ) {\n\t\treturn columnmajor( shape );\n\t}\n\treturn rowmajor( shape );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a string.\n*\n* @module @stdlib/assert-is-string\n*\n* @example\n* import isString from '@stdlib/assert-is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 5 );\n* // returns false\n*\n* @example\n* import { isObject as isString } from '@stdlib/assert-is-string';\n*\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 'beep' );\n* // returns false\n*\n* @example\n* import { isPrimitive as isString } from '@stdlib/assert-is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a stride array from an array shape.\n*\n* @module @stdlib/ndarray-base-shape2strides\n*\n* @example\n* import shape2strides from '@stdlib/ndarray-base-shape2strides';\n*\n* var strides = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* strides = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction rowmajor( shape, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction columnmajor( shape, out ) {\n\tvar s;\n\tvar i;\n\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*\n* @example\n* var strides = [ 0, 0 ];\n*\n* var out = shape2strides( [ 3, 2 ], 'row-major', strides );\n* // returns [ 2, 1 ]\n*\n* var bool = ( out === strides );\n* // returns true\n*\n* out = shape2strides( [ 3, 2 ], 'column-major', strides );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order, out ) {\n\tif ( isColumnMajor( order ) ) {\n\t\treturn columnmajor( shape, out );\n\t}\n\treturn rowmajor( shape, out );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property\n* @returns {IntegerArray} strides\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x, copy ) {\n\tvar ord;\n\tvar sh;\n\tvar st;\n\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\tsh = x.shape;\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( !isString( ord ) ) {\n\t\t\tord = ROW_MAJOR;\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\tif ( copy ) {\n\t\treturn copyIndexed( st );\n\t}\n\treturn st;\n}\n\n\n// EXPORTS //\n\nexport default strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( typeof value === 'number' );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// EXPORTS //\n\nexport default Number; // eslint-disable-line stdlib/require-globals\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Number from '@stdlib/number-ctor';\n\n\n// MAIN //\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Number.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport Number from '@stdlib/number-ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\nfunction isNumber( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Number ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Number]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a number\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( null );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\nfunction strides2offset( shape, strides ) {\n\tvar offset;\n\tvar ndims;\n\tvar i;\n\n\tndims = shape.length;\n\toffset = 0;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\t// Note that, since the stride is negative, this operation increments, not decrements, the offset...\n\t\t\toffset -= strides[ i ] * ( shape[ i ]-1 );\n\t\t}\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nexport default strides2offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar o;\n\n\to = x.offset;\n\tif ( isNumber( o ) ) {\n\t\treturn o;\n\t}\n\tsh = x.shape;\n\tif ( sh.length === 0 ) {\n\t\treturn 0;\n\t}\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn 0;\n\t}\n\treturn strides2offset( sh, st );\n}\n\n\n// EXPORTS //\n\nexport default offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the absolute value of a double-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} absolute value\n*\n* @example\n* var v = abs( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = abs( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = abs( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( NaN );\n* // returns NaN\n*/\nfunction abs( x ) {\n\treturn Math.abs( x ); // eslint-disable-line stdlib/no-builtin-math\n}\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from '@stdlib/math-base-special-abs';\n\n\n// MAIN //\n\n/**\n* Determines the order of a multidimensional array based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} order\n*\n* @example\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\nfunction strides2order( strides ) {\n\tvar column;\n\tvar ndims;\n\tvar row;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0|0; // 'none'\n\t}\n\tcolumn = true;\n\trow = true;\n\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( column && s2 < s1 ) {\n\t\t\tcolumn = false;\n\t\t} else if ( row && s2 > s1 ) {\n\t\t\trow = false;\n\t\t}\n\t\tif ( row || column ) {\n\t\t\ts1 = s2;\n\t\t} else {\n\t\t\treturn 0|0; // 'none'\n\t\t}\n\t}\n\tif ( row && column ) {\n\t\treturn 3|0; // 'both'\n\t}\n\tif ( row ) {\n\t\treturn 1|0; // 'row-major'\n\t}\n\treturn 2|0; // 'column-major'\n}\n\n\n// EXPORTS //\n\nexport default strides2order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a number.\n*\n* @module @stdlib/assert-is-number\n*\n* @example\n* import isNumber from '@stdlib/assert-is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNumber } from '@stdlib/assert-is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNumber } from '@stdlib/assert-is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\to = x.order;\n\tif ( isString( o ) ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn ROW_MAJOR; // WARNING: default to row-major for ndarray-like objects lacking strides. This may or may not be accurate, and we're defaulting to row-major here based on the belief that row-major is more likely given that, e.g., JavaScript arrays are similar to C arrays (i.e., stored in row-major order).\n\t}\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( x.shape.length === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\treturn x.data;\n}\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport getter from '@stdlib/array-base-getter';\nimport setter from '@stdlib/array-base-setter';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **ref**: reference to the original ndarray-like object.\n* - **dtype**: underlying data type.\n* - **data**: data buffer.\n* - **length**: number of elements.\n* - **shape**: array dimensions.\n* - **strides**: array strides.\n* - **offset**: index offset.\n* - **order**: order.\n* - **accessorProtocol**: `boolean` indicating whether the data buffer supports the get/set protocol (i.e., uses accessors for getting and setting elements).\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an ndarray element and whose second element is an accessor for setting an ndarray element.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} object containing ndarray meta data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\n* // returns {...}\n*/\nfunction ndarraylike2object( x ) {\n\tvar xbuf;\n\tvar bool;\n\tvar sh;\n\tvar dt;\n\n\txbuf = getData( x );\n\tsh = getShape( x, true );\n\tdt = getDType( x );\n\n\tbool = isAccessorArray( xbuf );\n\n\treturn {\n\t\t'ref': x,\n\t\t'dtype': dt,\n\t\t'data': xbuf,\n\t\t'length': numel( sh ),\n\t\t'shape': sh,\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x ),\n\t\t'accessorProtocol': bool,\n\t\t'accessors': ( bool ) ?\n\t\t\t[ accessorGetter( dt ), accessorSetter( dt ) ] :\n\t\t\t[ getter( dt ), setter( dt ) ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2object;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 16; // 8 bytes per float64 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isComplex128Array( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isComplex128Array( [] );\n* // returns false\n*/\nfunction isComplex128Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex128Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex128array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex128Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 8; // 4 bytes per float32 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var bool = isComplex64Array( new Complex64Array( 10 ) );\n* // returns true\n*\n* bool = isComplex64Array( [] );\n* // returns false\n*/\nfunction isComplex64Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex64Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex64array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasFloat64Array = ( typeof Float64Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float64Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float64Array\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var bool = isFloat64Array( new Float64Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat64Array( [] );\n* // returns false\n*/\nfunction isFloat64Array( value ) {\n\treturn (\n\t\t( hasFloat64Array && value instanceof Float64Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float64Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Float64Array === 'function' ) ? Float64Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat64Array from '@stdlib/assert-is-float64array';\nimport GlobalFloat64Array from './float64array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float64Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float64Array` support\n*\n* @example\n* var bool = hasFloat64ArraySupport();\n* // returns \n*/\nfunction hasFloat64ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat64Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat64Array( [ 1.0, 3.14, -3.14, NaN ] );\n\t\tbool = (\n\t\t\tisFloat64Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.14 &&\n\t\t\tarr[ 2 ] === -3.14 &&\n\t\t\tarr[ 3 ] !== arr[ 3 ]\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat64ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float64Array === 'function' ) ? Float64Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of double-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array-float64\n*\n* @example\n* import ctor from '@stdlib/array-float64';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat64ArraySupport from '@stdlib/assert-has-float64array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat64ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of double-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex128Array` as a `Float64Array`.\n*\n* @param {Complex128Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float64Array} `Float64Array` view\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float64Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasFloat32Array = ( typeof Float32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float32Array\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var bool = isFloat32Array( new Float32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat32Array( [] );\n* // returns false\n*/\nfunction isFloat32Array( value ) {\n\treturn (\n\t\t( hasFloat32Array && value instanceof Float32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Double-precision floating-point positive infinity.\n*\n* @module @stdlib/constants-float64-pinf\n* @type {number}\n*\n* @example\n* import FLOAT64_PINF from '@stdlib/constants-float64-pinf';\n* // returns Infinity\n*/\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point positive infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point positive infinity has the bit sequence\n*\n* ```binarystring\n* 0 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.POSITIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_PINF = Number.POSITIVE_INFINITY; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default FLOAT64_PINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Float32Array === 'function' ) ? Float32Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float32Array === 'function' ) ? Float32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array-float32\n*\n* @example\n* import ctor from '@stdlib/array-float32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat32ArraySupport from '@stdlib/assert-has-float32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat32Array from '@stdlib/assert-is-float32array';\nimport PINF from '@stdlib/constants-float64-pinf';\nimport GlobalFloat32Array from './float32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float32Array` support\n*\n* @example\n* var bool = hasFloat32ArraySupport();\n* // returns \n*/\nfunction hasFloat32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat32Array( [ 1.0, 3.14, -3.14, 5.0e40 ] );\n\t\tbool = (\n\t\t\tisFloat32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.140000104904175 &&\n\t\t\tarr[ 2 ] === -3.140000104904175 &&\n\t\t\tarr[ 3 ] === PINF\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of single-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array-float32';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex64Array` as a `Float32Array`.\n*\n* @param {Complex64Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float32Array} `Float32Array` view\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Reinterprets a complex-valued floating-point array as a real-valued floating-point array having the same precision.\n*\n* @param {(Complex128Array|Complex64Array)} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @throws {TypeError} first argument must be a supported complex-valued floating-point array\n* @returns {(Float64Array|Float32Array)} real-valued floating-point array view\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\tif ( isComplex128Array( x ) ) {\n\t\treturn reinterpret128( x, offset );\n\t}\n\tif ( isComplex64Array( x ) ) {\n\t\treturn reinterpret64( x, offset );\n\t}\n\t// Note: intentionally throw here to catch the scenario in which we add, e.g., a Complex32Array and need to explicitly add support here...\n\tthrow new TypeError( format( 'invalid argument. First argument must be a complex-valued floating-point array. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint8Array = ( typeof Uint8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8Array\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var bool = isUint8Array( new Uint8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8Array( [] );\n* // returns false\n*/\nfunction isUint8Array( value ) {\n\treturn (\n\t\t( hasUint8Array && value instanceof Uint8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum unsigned 8-bit integer.\n*\n* @module @stdlib/constants-uint8-max\n* @type {integer32}\n*\n* @example\n* import UINT8_MAX from '@stdlib/constants-uint8-max';\n* // returns 255\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 8-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{8} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 255\n*/\nvar UINT8_MAX = 255|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT8_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint8Array === 'function' ) ? Uint8Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8Array === 'function' ) ? Uint8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array-uint8\n*\n* @example\n* import ctor from '@stdlib/array-uint8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ArraySupport from '@stdlib/assert-has-uint8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8Array from '@stdlib/assert-is-uint8array';\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport GlobalUint8Array from './uint8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8Array` support\n*\n* @example\n* var bool = hasUint8ArraySupport();\n* // returns \n*/\nfunction hasUint8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT8_MAX+1, UINT8_MAX+2 ];\n\t\tarr = new GlobalUint8Array( arr );\n\t\tbool = (\n\t\t\tisUint8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT8_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `BooleanArray` as a `Uint8Array`.\n*\n* @param {BooleanArray} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Uint8Array} `Uint8Array` view\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var x = new BooleanArray( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Uint8Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {integer} stride - index increment\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var offset = stride2offset( 10, -10 );\n* // returns 90\n*/\nfunction stride2offset( N, stride ) {\n\tif ( stride > 0 ) {\n\t\treturn 0;\n\t}\n\treturn ( 1 - N ) * stride;\n}\n\n\n// EXPORTS //\n\nexport default stride2offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar f;\n\n\n// FUNCTIONS //\n\n/**\n* Tests if a value is an array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an array\n*\n* @example\n* var bool = isArray( [] );\n* // returns true\n*\n* @example\n* var bool = isArray( {} );\n* // returns false\n*/\nfunction isArray( value ) {\n\treturn ( nativeClass( value ) === '[object Array]' );\n}\n\n\n// MAIN //\n\nif ( Array.isArray ) {\n\tf = Array.isArray;\n} else {\n\tf = isArray;\n}\n\n\n// EXPORTS //\n\nexport default f;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArray from '@stdlib/assert-is-array';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array function\n*\n* @example\n* import isOdd from '@stdlib/assert-is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arrayfcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arrayfcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArray( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arrayfcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is object-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is object-like\n*\n* @example\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( [] );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( null );\n* // returns false\n*/\nfunction isObjectLike( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObjectLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from '@stdlib/assert-is-object-like';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Buffer instance.\n*\n* @param {*} value - value to validate\n* @returns {boolean} boolean indicating if a value is a Buffer instance\n*\n* @example\n* var v = isBuffer( new Buffer( 'beep' ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( new Buffer( [1,2,3,4] ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( {} );\n* // returns false\n*\n* @example\n* var v = isBuffer( [] );\n* // returns false\n*/\nfunction isBuffer( value ) {\n\treturn (\n\t\tisObjectLike( value ) &&\n\t\t(\n\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\tvalue._isBuffer || // for envs missing Object.prototype.constructor (e.g., Safari 5-7)\n\t\t\t(\n\t\t\t\tvalue.constructor &&\n\n\t\t\t\t// WARNING: `typeof` is not a foolproof check, as certain envs consider RegExp and NodeList instances to be functions\n\t\t\t\ttypeof value.constructor.isBuffer === 'function' &&\n\t\t\t\tvalue.constructor.isBuffer( value )\n\t\t\t)\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @returns {RegExp} regular expression\n*\n* @example\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\nfunction reFunctionName() {\n\treturn /^\\s*function\\s*([^(]*)/i;\n}\n\n\n// EXPORTS //\n\nexport default reFunctionName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is object-like.\n*\n* @module @stdlib/assert-is-object-like\n*\n* @example\n* import isObjectLike from '@stdlib/assert-is-object-like';\n*\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* bool = isObjectLike( [] );\n* // returns true\n*\n* bool = isObjectLike( null );\n* // returns false\n*\n* @example\n* import { isObjectLikeArray as isObjectLike } from '@stdlib/assert-is-object-like';\n*\n* var bool = isObjectLike( [ {}, [] ] );\n* // returns true\n*\n* bool = isObjectLike( [ {}, '3.0' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-function';\nimport main from './main.js';\n\n\n// VARIABLES //\n\nvar isObjectLikeArray = arrayfun( main );\n\n\n// MAIN //\n\nsetReadOnly( main, 'isObjectLikeArray', isObjectLikeArray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reFunctionName from './main.js';\n\n\n// MAIN //\n\n/**\n* Captures everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* Regular expression: `/^\\s*function\\s*([^(]*)/i`\n*\n* - `/^\\s*`\n* - Match zero or more spaces at beginning\n*\n* - `function`\n* - Match the word `function`\n*\n* - `\\s*`\n* - Match zero or more spaces after the word `function`\n*\n* - `()`\n* - Capture\n*\n* - `[^(]*`\n* - Match anything except a left parenthesis `(` zero or more times\n*\n* - `/i`\n* - ignore case\n*\n* @constant\n* @type {RegExp}\n* @default /^\\s*function\\s*([^(]*)/i\n*/\nvar RE_FUNCTION_NAME = reFunctionName();\n\n\n// EXPORTS //\n\nexport default RE_FUNCTION_NAME;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\nimport { REGEXP as RE } from '@stdlib/regexp-function-name';\nimport isBuffer from '@stdlib/assert-is-buffer';\n\n\n// MAIN //\n\n/**\n* Determines the name of a value's constructor.\n*\n* @param {*} v - input value\n* @returns {string} name of a value's constructor\n*\n* @example\n* var v = constructorName( 'a' );\n* // returns 'String'\n*\n* @example\n* var v = constructorName( 5 );\n* // returns 'Number'\n*\n* @example\n* var v = constructorName( null );\n* // returns 'Null'\n*\n* @example\n* var v = constructorName( undefined );\n* // returns 'Undefined'\n*\n* @example\n* var v = constructorName( function noop() {} );\n* // returns 'Function'\n*/\nfunction constructorName( v ) {\n\tvar match;\n\tvar name;\n\tvar ctor;\n\tname = nativeClass( v ).slice( 8, -1 );\n\tif ( (name === 'Object' || name === 'Error') && v.constructor ) {\n\t\tctor = v.constructor;\n\t\tif ( typeof ctor.name === 'string' ) {\n\t\t\treturn ctor.name;\n\t\t}\n\t\tmatch = RE.exec( ctor.toString() );\n\t\tif ( match ) {\n\t\t\treturn match[ 1 ];\n\t\t}\n\t}\n\tif ( isBuffer( v ) ) {\n\t\treturn 'Buffer';\n\t}\n\treturn name;\n}\n\n\n// EXPORTS //\n\nexport default constructorName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @module @stdlib/regexp-function-name\n*\n* @example\n* import reFunctionName from '@stdlib/regexp-function-name';\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport REGEXP from './regexp.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'REGEXP', REGEXP );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from array constructors to data types...\nvar ctor2dtypes = {\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default ctor2dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint32Array = ( typeof Uint32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint32Array\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var bool = isUint32Array( new Uint32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint32Array( [] );\n* // returns false\n*/\nfunction isUint32Array( value ) {\n\treturn (\n\t\t( hasUint32Array && value instanceof Uint32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum unsigned 32-bit integer.\n*\n* @module @stdlib/constants-uint32-max\n* @type {uinteger32}\n*\n* @example\n* import UINT32_MAX from '@stdlib/constants-uint32-max';\n* // returns 4294967295\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar UINT32_MAX = 4294967295;\n\n\n// EXPORTS //\n\nexport default UINT32_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint32Array === 'function' ) ? Uint32Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint32Array === 'function' ) ? Uint32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 32-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array-uint32\n*\n* @example\n* import ctor from '@stdlib/array-uint32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint32ArraySupport from '@stdlib/assert-has-uint32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint32Array from '@stdlib/assert-is-uint32array';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\nimport GlobalUint32Array from './uint32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint32Array` support\n*\n* @example\n* var bool = hasUint32ArraySupport();\n* // returns \n*/\nfunction hasUint32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT32_MAX+1, UINT32_MAX+2 ];\n\t\tarr = new GlobalUint32Array( arr );\n\t\tbool = (\n\t\t\tisUint32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT32_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 32-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasInt32Array = ( typeof Int32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int32Array\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var bool = isInt32Array( new Int32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt32Array( [] );\n* // returns false\n*/\nfunction isInt32Array( value ) {\n\treturn (\n\t\t( hasInt32Array && value instanceof Int32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum signed 32-bit integer.\n*\n* @module @stdlib/constants-int32-max\n* @type {integer32}\n*\n* @example\n* import INT32_MAX from '@stdlib/constants-int32-max';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{31} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 2147483647\n*/\nvar INT32_MAX = 2147483647|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum signed 32-bit integer.\n*\n* @module @stdlib/constants-int32-min\n* @type {integer32}\n*\n* @example\n* import INT32_MIN from '@stdlib/constants-int32-min';\n* // returns -2147483648\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{31})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -2147483648\n*/\nvar INT32_MIN = -2147483648|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_MIN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Int32Array === 'function' ) ? Int32Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int32Array === 'function' ) ? Int32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array-int32\n*\n* @example\n* import ctor from '@stdlib/array-int32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt32ArraySupport from '@stdlib/assert-has-int32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt32Array from '@stdlib/assert-is-int32array';\nimport INT32_MAX from '@stdlib/constants-int32-max';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport GlobalInt32Array from './int32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int32Array` support\n*\n* @example\n* var bool = hasInt32ArraySupport();\n* // returns \n*/\nfunction hasInt32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt32Array( [ 1, 3.14, -3.14, INT32_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT32_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint16Array = ( typeof Uint16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint16Array\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var bool = isUint16Array( new Uint16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint16Array( [] );\n* // returns false\n*/\nfunction isUint16Array( value ) {\n\treturn (\n\t\t( hasUint16Array && value instanceof Uint16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum unsigned 16-bit integer.\n*\n* @module @stdlib/constants-uint16-max\n* @type {integer32}\n*\n* @example\n* import UINT16_MAX from '@stdlib/constants-uint16-max';\n* // returns 65535\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{16} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 65535\n*/\nvar UINT16_MAX = 65535|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT16_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint16Array === 'function' ) ? Uint16Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint16Array === 'function' ) ? Uint16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 16-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array-uint16\n*\n* @example\n* import ctor from '@stdlib/array-uint16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint16ArraySupport from '@stdlib/assert-has-uint16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint16Array from '@stdlib/assert-is-uint16array';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport GlobalUint16Array from './uint16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint16Array` support\n*\n* @example\n* var bool = hasUint16ArraySupport();\n* // returns \n*/\nfunction hasUint16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT16_MAX+1, UINT16_MAX+2 ];\n\t\tarr = new GlobalUint16Array( arr );\n\t\tbool = (\n\t\t\tisUint16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT16_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 16-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasInt16Array = ( typeof Int16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int16Array\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var bool = isInt16Array( new Int16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt16Array( [] );\n* // returns false\n*/\nfunction isInt16Array( value ) {\n\treturn (\n\t\t( hasInt16Array && value instanceof Int16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum signed 16-bit integer.\n*\n* @module @stdlib/constants-int16-max\n* @type {integer32}\n*\n* @example\n* import INT16_MAX from '@stdlib/constants-int16-max';\n* // returns 32767\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{15} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 32767\n*/\nvar INT16_MAX = 32767|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum signed 16-bit integer.\n*\n* @module @stdlib/constants-int16-min\n* @type {integer32}\n*\n* @example\n* import INT16_MIN from '@stdlib/constants-int16-min';\n* // returns -32768\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{15})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 1000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -32768\n*/\nvar INT16_MIN = -32768|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_MIN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Int16Array === 'function' ) ? Int16Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int16Array === 'function' ) ? Int16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array-int16\n*\n* @example\n* import ctor from '@stdlib/array-int16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt16ArraySupport from '@stdlib/assert-has-int16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt16Array from '@stdlib/assert-is-int16array';\nimport INT16_MAX from '@stdlib/constants-int16-max';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport GlobalInt16Array from './int16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int16Array` support\n*\n* @example\n* var bool = hasInt16ArraySupport();\n* // returns \n*/\nfunction hasInt16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt16Array( [ 1, 3.14, -3.14, INT16_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT16_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint8ClampedArray = ( typeof Uint8ClampedArray === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8ClampedArray.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8ClampedArray\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var bool = isUint8ClampedArray( new Uint8ClampedArray( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8ClampedArray( [] );\n* // returns false\n*/\nfunction isUint8ClampedArray( value ) {\n\treturn (\n\t\t( hasUint8ClampedArray && value instanceof Uint8ClampedArray ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8ClampedArray]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8ClampedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @module @stdlib/array-uint8c\n*\n* @example\n* import ctor from '@stdlib/array-uint8c';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ClampedArraySupport from '@stdlib/assert-has-uint8clampedarray-support'; // eslint-disable-line id-length\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ClampedArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8ClampedArray from '@stdlib/assert-is-uint8clampedarray';\nimport GlobalUint8ClampedArray from './uint8clampedarray.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8ClampedArray` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8ClampedArray` support\n*\n* @example\n* var bool = hasUint8ClampedArraySupport();\n* // returns \n*/\nfunction hasUint8ClampedArraySupport() { // eslint-disable-line id-length\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8ClampedArray !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalUint8ClampedArray( [ -1, 0, 1, 3.14, 4.99, 255, 256 ] );\n\t\tbool = (\n\t\t\tisUint8ClampedArray( arr ) &&\n\t\t\tarr[ 0 ] === 0 && // clamped\n\t\t\tarr[ 1 ] === 0 &&\n\t\t\tarr[ 2 ] === 1 &&\n\t\t\tarr[ 3 ] === 3 && // round to nearest\n\t\t\tarr[ 4 ] === 5 && // round to nearest\n\t\t\tarr[ 5 ] === 255 &&\n\t\t\tarr[ 6 ] === 255 // clamped\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ClampedArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasInt8Array = ( typeof Int8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int8Array\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var bool = isInt8Array( new Int8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt8Array( [] );\n* // returns false\n*/\nfunction isInt8Array( value ) {\n\treturn (\n\t\t( hasInt8Array && value instanceof Int8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum signed 8-bit integer.\n*\n* @module @stdlib/constants-int8-max\n* @type {integer32}\n*\n* @example\n* import INT8_MAX from '@stdlib/constants-int8-max';\n* // returns 127\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* 2^{7} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 127\n*/\nvar INT8_MAX = 127|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum signed 8-bit integer.\n*\n* @module @stdlib/constants-int8-min\n* @type {integer32}\n*\n* @example\n* import INT8_MIN from '@stdlib/constants-int8-min';\n* // returns -128\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* -(2^{7})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -128\n*/\nvar INT8_MIN = -128|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_MIN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Int8Array === 'function' ) ? Int8Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int8Array === 'function' ) ? Int8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array-int8\n*\n* @example\n* import ctor from '@stdlib/array-int8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt8ArraySupport from '@stdlib/assert-has-int8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt8Array from '@stdlib/assert-is-int8array';\nimport INT8_MAX from '@stdlib/constants-int8-max';\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport GlobalInt8Array from './int8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int8Array` support\n*\n* @example\n* var bool = hasInt8ArraySupport();\n* // returns \n*/\nfunction hasInt8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt8Array( [ 1, 3.14, -3.14, INT8_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT8_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Double-precision floating-point negative infinity.\n*\n* @module @stdlib/constants-float64-ninf\n* @type {number}\n*\n* @example\n* import FLOAT64_NINF from '@stdlib/constants-float64-ninf';\n* // returns -Infinity\n*/\n\n// MODULES //\n\nimport Number from '@stdlib/number-ctor';\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point negative infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point negative infinity has the bit sequence\n*\n* ```binarystring\n* 1 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.NEGATIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_NINF = Number.NEGATIVE_INFINITY;\n\n\n// EXPORTS //\n\nexport default FLOAT64_NINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a double-precision floating-point number toward negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floor( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floor( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floor( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floor( NaN );\n* // returns NaN\n*/\nvar floor = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is an integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an integer\n*\n* @example\n* var bool = isInteger( 1.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( 3.14 );\n* // returns false\n*/\nfunction isInteger( x ) {\n\treturn (floor(x) === x);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants-float64-pinf';\nimport NINF from '@stdlib/constants-float64-ninf';\nimport isInt from '@stdlib/math-base-assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a number primitive is an integer value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a number primitive is an integer value\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tvalue < PINF &&\n\t\tvalue > NINF &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having an integer value\n*\n* @example\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from '@stdlib/assert-is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having an integer value\n*\n* @example\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an integer\n*\n* @example\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isInteger( -3.14 );\n* // returns false\n*\n* @example\n* var bool = isInteger( null );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue >= 0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() >= 0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a nonnegative integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a nonnegative integer\n*\n* @example\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( null );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an integer.\n*\n* @module @stdlib/assert-is-integer\n*\n* @example\n* import isInteger from '@stdlib/assert-is-integer';\n*\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isInteger( -3.14 );\n* // returns false\n*\n* bool = isInteger( null );\n* // returns false\n*\n* @example\n* // Use interface to check for integer primitives...\n* import { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\n*\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*\n* @example\n* // Use interface to check for integer objects...\n* import { isObject as isInteger } from '@stdlib/assert-is-integer';\n*\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a nonnegative integer.\n*\n* @module @stdlib/assert-is-nonnegative-integer\n*\n* @example\n* import isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* bool = isNonNegativeInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum length of a generic array.\n*\n* @module @stdlib/constants-array-max-array-length\n*\n* @example\n* import MAX_ARRAY_LENGTH from '@stdlib/constants-array-max-array-length';\n* // returns 4294967295\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a generic array.\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar MAX_ARRAY_LENGTH = 4294967295>>>0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default MAX_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-array-max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an array-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is an array-like object\n*\n* @example\n* var bool = isArrayLikeObject( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( { 'length': 10 } );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( 'beep' );\n* // returns false\n*/\nfunction isArrayLikeObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLikeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum length of a typed array.\n*\n* @module @stdlib/constants-array-max-typed-array-length\n*\n* @example\n* import MAX_TYPED_ARRAY_LENGTH from '@stdlib/constants-array-max-typed-array-length';\n* // returns 9007199254740991\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a typed array.\n*\n* ```tex\n* 2^{53} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 9007199254740991\n*/\nvar MAX_TYPED_ARRAY_LENGTH = 9007199254740991;\n\n\n// EXPORTS //\n\nexport default MAX_TYPED_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-array-max-typed-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a collection.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a collection\n*\n* @example\n* var bool = isCollection( [] );\n* // returns true\n*\n* @example\n* var bool = isCollection( {} );\n* // returns false\n*/\nfunction isCollection( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isCollection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasArrayBuffer = ( typeof ArrayBuffer === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an ArrayBuffer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an ArrayBuffer\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var bool = isArrayBuffer( new ArrayBuffer( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isArrayBuffer( [] );\n* // returns false\n*/\nfunction isArrayBuffer( value ) {\n\treturn (\n\t\t( hasArrayBuffer && value instanceof ArrayBuffer ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object ArrayBuffer]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArray from '@stdlib/assert-is-array';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an object; e.g., `{}`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an object\n*\n* @example\n* var bool = isObject( {} );\n* // returns true\n*\n* @example\n* var bool = isObject( null );\n* // returns false\n*/\nfunction isObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t!isArray( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array of strings.\n*\n* @module @stdlib/assert-is-string-array\n*\n* @example\n* import isStringArray from '@stdlib/assert-is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', 123 ] );\n* // returns false\n*\n* @example\n* import { primitives as isStringArray } from '@stdlib/assert-is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', new String( 'def' ) ] );\n* // returns false\n*\n* @example\n* import { objects as isStringArray } from '@stdlib/assert-is-string-array';\n*\n* var bool = isStringArray( [ new String( 'abc' ), new String( 'def' ) ] );\n* // returns true\n*\n* bool = isStringArray( [ new String( 'abc' ), 'def' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-function';\nimport isString from '@stdlib/assert-is-string';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isString.isPrimitive );\nvar isObjectArray = arrayfun( isString.isObject );\n\n\n// MAIN //\n\nvar isStringArray = arrayfun( isString );\nsetReadOnly( isStringArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isStringArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isStringArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar RE = /./;\n\n\n// EXPORTS //\n\nexport default RE;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a boolean primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean primitive\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns false\n*/\nfunction isBoolean( value ) {\n\treturn ( typeof value === 'boolean' );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a boolean.\n*\n* @name Boolean\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {(boolean|Boolean)} boolean\n*\n* @example\n* var b = Boolean( null );\n* // returns false\n*\n* b = Boolean( [] );\n* // returns true\n*\n* b = Boolean( {} );\n* // returns true\n*\n* @example\n* var b = new Boolean( false );\n* // returns \n*/\nvar Bool = Boolean; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Boolean.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport Boolean from '@stdlib/boolean-ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean object\n*\n* @example\n* var bool = isBoolean( true );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Boolean ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Boolean]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a boolean\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a boolean.\n*\n* @module @stdlib/assert-is-boolean\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n* import isBoolean from '@stdlib/assert-is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n* import { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( true ) );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n* import { isObject as isBoolean } from '@stdlib/assert-is-boolean';\n*\n* var bool = isBoolean( true );\n* // returns false\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof self === 'object' ) ? self : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof window === 'object' ) ? window : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof globalThis === 'object' ) ? globalThis : null; // eslint-disable-line no-undef\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@stdlib/string-format';\nimport getThis from './codegen.js';\nimport Self from './self.js';\nimport Win from './window.js';\nimport GlobalThis from './global_this.js';\n\n\n// MAIN //\n\n/**\n* Returns the global object.\n*\n* ## Notes\n*\n* - Using code generation is the **most** reliable way to resolve the global object; however, doing so is likely to violate content security policies (CSPs) in, e.g., Chrome Apps and elsewhere.\n*\n* @private\n* @param {boolean} [codegen=false] - boolean indicating whether to use code generation to resolve the global object\n* @throws {TypeError} must provide a boolean\n* @throws {Error} unable to resolve global object\n* @returns {Object} global object\n*\n* @example\n* var g = getGlobal();\n* // returns {...}\n*/\nfunction getGlobal( codegen ) {\n\tif ( arguments.length ) {\n\t\tif ( !isBoolean( codegen ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a boolean. Value: `%s`.', codegen ) );\n\t\t}\n\t\tif ( codegen ) {\n\t\t\treturn getThis();\n\t\t}\n\t\t// Fall through...\n\t}\n\t// Case: 2020 revision of ECMAScript standard\n\tif ( GlobalThis ) {\n\t\treturn GlobalThis;\n\t}\n\t// Case: browsers and web workers\n\tif ( Self ) {\n\t\treturn Self;\n\t}\n\t// Case: browsers\n\tif ( Win ) {\n\t\treturn Win;\n\t}\n\t// Case: unknown\n\tthrow new Error( 'unexpected error. Unable to resolve global object.' );\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the global object using code generation.\n*\n* @private\n* @returns {Object} global object\n*/\nfunction getGlobal() {\n\treturn new Function( 'return this;' )(); // eslint-disable-line no-new-func, stdlib/require-globals\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getGlobal from '@stdlib/utils-global';\n\n\n// MAIN //\n\nvar root = getGlobal();\nvar nodeList = root.document && root.document.childNodes;\n\n\n// EXPORTS //\n\nexport default nodeList;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar typedarray = Int8Array; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default typedarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Determine a value's type.\n*\n* @module @stdlib/utils-type-of\n*\n* @example\n* import typeOf from '@stdlib/utils-type-of';\n*\n* var str = typeOf( 'a' );\n* // returns 'string'\n*\n* str = typeOf( 5 );\n* // returns 'number'\n*/\n\n// MODULES //\n\nimport usePolyfill from './check.js';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main = ( usePolyfill() ) ? polyfill : builtin;\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport RE from './fixtures/re.js';\nimport nodeList from './fixtures/nodelist.js';\nimport typedarray from './fixtures/typedarray.js';\n\n\n// MAIN //\n\n/**\n* Checks whether a polyfill is needed when using the `typeof` operator.\n*\n* @private\n* @returns {boolean} boolean indicating whether a polyfill is needed\n*/\nfunction check() {\n\tif (\n\t\t// Chrome 1-12 returns 'function' for regular expression instances (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof):\n\t\ttypeof RE === 'function' ||\n\n\t\t// Safari 8 returns 'object' for typed array and weak map constructors (underscore #1929):\n\t\ttypeof typedarray === 'object' ||\n\n\t\t// PhantomJS 1.9 returns 'function' for `NodeList` instances (underscore #2236):\n\t\ttypeof nodeList === 'function'\n\t) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\treturn ctorName( v ).toLowerCase();\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\n\n\n// NOTES //\n\n/*\n* Built-in `typeof` operator behavior:\n*\n* ```text\n* typeof null => 'object'\n* typeof undefined => 'undefined'\n* typeof 'a' => 'string'\n* typeof 5 => 'number'\n* typeof NaN => 'number'\n* typeof true => 'boolean'\n* typeof false => 'boolean'\n* typeof {} => 'object'\n* typeof [] => 'object'\n* typeof function foo(){} => 'function'\n* typeof function* foo(){} => 'object'\n* typeof Symbol() => 'symbol'\n* ```\n*\n*/\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\tvar type;\n\n\t// Address `typeof null` => `object` (see http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null):\n\tif ( v === null ) {\n\t\treturn 'null';\n\t}\n\ttype = typeof v;\n\n\t// If the `typeof` operator returned something other than `object`, we are done. Otherwise, we need to check for an internal class name or search for a constructor.\n\tif ( type === 'object' ) {\n\t\treturn ctorName( v ).toLowerCase();\n\t}\n\treturn type;\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport typeOf from '@stdlib/utils-type-of';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a function.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a function\n*\n* @example\n* function beep() {\n* return 'beep';\n* }\n*\n* var bool = isFunction( beep );\n* // returns true\n*/\nfunction isFunction( value ) {\n\t// Note: cannot use `typeof` directly, as various browser engines incorrectly return `'function'` when operating on non-function objects, such as regular expressions and NodeLists.\n\treturn ( typeOf( value ) === 'function' );\n}\n\n\n// EXPORTS //\n\nexport default isFunction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport setEnumerableReadOnly from '@stdlib/utils-define-read-only-property';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport format from '@stdlib/string-format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 128-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex128} 128-bit complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex128( real, imag ) {\n\tif ( !( this instanceof Complex128 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tsetEnumerableReadOnly( this, 're', real );\n\tsetEnumerableReadOnly( this, 'im', imag );\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128\n* @readonly\n* @type {string}\n* @default 'Complex128'\n*\n* @example\n* var name = Complex128.name;\n* // returns 'Complex128'\n*/\nsetReadOnly( Complex128, 'name', 'Complex128' );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex128.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128.prototype, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 16\n*/\nsetReadOnly( Complex128.prototype, 'byteLength', 16 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex128.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex128` instance.\n*\n* @name toJSON\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex128', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex128.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex128;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex128';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar fround = ( typeof Math.fround === 'function' ) ? Math.fround : null; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default fround;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array-float32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\n\n\n// MAIN //\n\n/**\n* Converts a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @param {number} x - double-precision floating-point number\n* @returns {number} nearest single-precision floating-point number\n*\n* @example\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\nfunction float64ToFloat32( x ) {\n\tFLOAT32_VIEW[ 0 ] = x;\n\treturn FLOAT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @module @stdlib/number-float64-base-to-float32\n*\n* @example\n* import float64ToFloat32 from '@stdlib/number-float64-base-to-float32';\n*\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\n\n// MODULES //\n\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar float64ToFloat32;\nif ( typeof builtin === 'function' ) {\n\tfloat64ToFloat32 = builtin;\n} else {\n\tfloat64ToFloat32 = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport setEnumerableReadOnly from '@stdlib/utils-define-read-only-property';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport float64ToFloat32 from '@stdlib/number-float64-base-to-float32';\nimport format from '@stdlib/string-format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 64-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex64} 64-bit complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex64( real, imag ) {\n\tif ( !( this instanceof Complex64 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tsetEnumerableReadOnly( this, 're', float64ToFloat32( real ) );\n\tsetEnumerableReadOnly( this, 'im', float64ToFloat32( imag ) );\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64\n* @readonly\n* @type {string}\n* @default 'Complex64'\n*\n* @example\n* var name = Complex64.name;\n* // returns 'Complex64'\n*/\nsetReadOnly( Complex64, 'name', 'Complex64' );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex64.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64.prototype, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 8\n*/\nsetReadOnly( Complex64.prototype, 'byteLength', 8 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex64.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex64` instance.\n*\n* @name toJSON\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex64', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex64.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex64;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex-float64-ctor';\nimport Complex64 from '@stdlib/complex-float32-ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a complex number-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex number-like object.\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var x = new Complex128( 4.0, 2.0 );\n* var bool = isComplexLike( x );\n* // returns true\n*\n* x = new Complex64( 4.0, 2.0 );\n* bool = isComplexLike( x );\n* // returns true\n*/\nfunction isComplexLike( value ) {\n\tif ( value instanceof Complex128 || value instanceof Complex64 ) {\n\t\treturn true;\n\t}\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.re === 'number' &&\n\t\ttypeof value.im === 'number'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplexLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a finite numeric value is an even number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an even number\n*\n* @example\n* var bool = isEven( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isEven( -2.0 );\n* // returns true\n*\n* @example\n* var bool = isEven( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isEven( NaN );\n* // returns false\n*/\nfunction isEven( x ) {\n\treturn isInteger( x/2.0 );\n}\n\n\n// EXPORTS //\n\nexport default isEven;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport Symbol from '@stdlib/symbol-ctor';\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.iterator` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.iterator` support\n*\n* @example\n* var bool = hasIteratorSymbolSupport();\n* // returns \n*/\nfunction hasIteratorSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol' &&\n\t\thasOwnProp( Symbol, 'iterator' ) &&\n\t\ttypeof Symbol.iterator === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasIteratorSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex64';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\n\n\n// MAIN //\n\n/**\n* Iterator symbol.\n*\n* @name IteratorSymbol\n* @constant\n* @type {(symbol|null)}\n*\n* @example\n* function iterator() {\n* var it;\n* var i;\n*\n* i = -1;\n*\n* it = {};\n* it.next = next;\n* it.return = done;\n*\n* if ( IteratorSymbol ) {\n* it[ IteratorSymbol ] = iterator;\n* }\n* return it;\n*\n* function next() {\n* i += 1;\n* return {\n* 'value': i,\n* 'done': false\n* };\n* }\n*\n* function done( value ) {\n* if ( arguments.length === 0 ) {\n* return {\n* 'done': true\n* };\n* }\n* return {\n* 'value': value,\n* 'done': true\n* };\n* }\n* }\n*\n* var obj = iterator();\n*/\nvar IteratorSymbol = ( hasIteratorSymbolSupport() ) ? Symbol.iterator : null;\n\n\n// EXPORTS //\n\nexport default IteratorSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - accessor\n*\n* @example\n* function getter() {\n* return 'bar';\n* }\n*\n* var obj = {};\n*\n* setNonEnumerableReadOnlyAccessor( obj, 'foo', getter );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnlyAccessor( obj, prop, getter ) { // eslint-disable-line id-length\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'get': getter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnlyAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the real component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the imaginary component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport isArray from '@stdlib/assert-is-array';\nimport { primitives as isStringArray } from '@stdlib/assert-is-string-array';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport isFunction from '@stdlib/assert-is-function';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isEven from '@stdlib/math-base-assert-is-even';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport Float32Array from '@stdlib/array-float32';\nimport Complex64 from '@stdlib/complex-float32-ctor';\nimport format from '@stdlib/string-format';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\nimport floor from '@stdlib/math-base-special-floor';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float32Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex64Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex64Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex128Array...\n\t\tvalue.name === 'Complex128Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float32Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex64} complex number\n*/\nfunction getComplex64( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex64( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 64-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `8`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `8`\n* @throws {TypeError} view length must be a positive multiple of `8`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} complex number array\n*\n* @example\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex64Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex64Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex64Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex64Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex64Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex64Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float32Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float32Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float32Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float32Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float32Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) ); // FIXME: `buf` is what is returned from above, NOT the original value\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var nbytes = Complex64Array.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64Array\n* @readonly\n* @type {string}\n* @default 'Complex64Array'\n*\n* @example\n* var str = Complex64Array.name;\n* // returns 'Complex64Array'\n*/\nsetReadOnly( Complex64Array, 'name', 'Complex64Array' );\n\n/**\n* Creates a new 64-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex64Array\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function clbk( v ) {\n* return new Complex64( realf(v)*2.0, imagf(v)*2.0 );\n* }\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex64Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of %u. Length: `%u`.', 2, len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 64-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex64Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex64Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = realf( z );\n* // returns 9.0\n*\n* im = imagf( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 80\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array.prototype, 'BYTES_PER_ELEMENT', Complex64Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} modified array\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex64( 1.0, 1.0 ), 0 );\n* arr.set( new Complex64( 2.0, 2.0 ), 1 );\n* arr.set( new Complex64( 3.0, 3.0 ), 2 );\n* arr.set( new Complex64( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = [\n* new Complex64( 1.0, 1.0 ),\n* new Complex64( 2.0, 2.0 ),\n* new Complex64( 3.0, 3.0 )\n* ];\n* arr = new Complex64Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': [ i, getComplex64( buf, i ) ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex64Array} modified array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.fill( new Complex64( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = realf( value );\n\tim = imagf( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex64Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex64Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex64( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex64( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex64( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 10 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex64( 4.0, -4.0 ), -3 );\n* // returns -1\n*/\nsetReadOnly( Complex64Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex64( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex64( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( v, i ) {\n* return new Complex64( 2.0*realf( v ), 2.0*imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2\n*\n* var im = imagf( z );\n* // returns -2\n*/\nsetReadOnly( Complex64Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex64( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = realf( v );\n\t\t\toutbuf[ (2*i)+1 ] = imagf( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import caddf from '@stdlib/complex-float32-base-add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import caddf from '@stdlib/complex-float32-base-add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = realf( value );\n\t\tbuf[ idx+1 ] = imagf( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float32Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float32Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = realf( v );\n\t\t\tbuf[ idx+1 ] = imagf( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = realf( tmp[i] );\n\t\tbuf[ j+1 ] = imagf( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + (begin*BYTES_PER_ELEMENT);\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex64Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = realf( v );\n* // returns 2.0\n*\n* im = imagf( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': getComplex64( buf, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex64Array} new typed array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex64( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 4.0\n*\n* var im = imagf( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex64Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = realf( value );\n\tbuf[ (2*index)+1 ] = imagf( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float32Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float32Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = realf( v );\n\t\tbuf[ j+1 ] = imagf( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the real component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the imaginary component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport format from '@stdlib/string-format';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport isArray from '@stdlib/assert-is-array';\nimport { primitives as isStringArray } from '@stdlib/assert-is-string-array';\nimport isString from '@stdlib/assert-is-string';\nimport isFunction from '@stdlib/assert-is-function';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isEven from '@stdlib/math-base-assert-is-even';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport Float64Array from '@stdlib/array-float64';\nimport Complex128 from '@stdlib/complex-float64-ctor';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\nimport floor from '@stdlib/math-base-special-floor';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport format from '@stdlib/string-format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex128Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex128Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex64Array...\n\t\tvalue.name === 'Complex64Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float64Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex128} complex number\n*/\nfunction getComplex128( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex128( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 128-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `16`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `16`\n* @throws {TypeError} view length must be a positive multiple of `16`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} complex number array\n*\n* @example\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex128Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex128Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex128Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex128Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex128Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex128Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float64Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float64Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float64Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float64Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float64Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var nbytes = Complex128Array.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128Array\n* @readonly\n* @type {string}\n* @default 'Complex128Array'\n*\n* @example\n* var name = Complex128Array.name;\n* // returns 'Complex128Array'\n*/\nsetReadOnly( Complex128Array, 'name', 'Complex128Array' );\n\n/**\n* Creates a new 128-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex128Array\n* @type {Function}\n* @param {(Collection|Object)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function clbk( v ) {\n* return new Complex128( real(v)*2.0, imag(v)*2.0 );\n* }\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex128Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 128-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex128Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex128Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = real( z );\n* // returns 9.0\n*\n* im = imag( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 160\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array.prototype, 'BYTES_PER_ELEMENT', Complex128Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} modified array\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex128( 1.0, 1.0 ), 0 );\n* arr.set( new Complex128( 2.0, 2.0 ), 1 );\n* arr.set( new Complex128( 3.0, 3.0 ), 2 );\n* arr.set( new Complex128( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = [\n* new Complex128( 1.0, 1.0 ),\n* new Complex128( 2.0, 2.0 ),\n* new Complex128( 3.0, 3.0 )\n* ];\n* arr = new Complex128Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex128( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex128Array} modified array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.fill( new Complex128( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = real( value );\n\tim = imag( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex128Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex128Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* var arr = new Complex128Array( 10 );\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex128( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex128( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex128( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex128( 4.0, -4.0 ), -3 );\n* // returns 3\n*/\nsetReadOnly( Complex128Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex128( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex128( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function scale( v, i ) {\n* return new Complex128( 2.0*real( v ), 2.0*imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns -2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex128( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = real( v );\n\t\t\toutbuf[ (2*i)+1 ] = imag( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n* import cadd from '@stdlib/complex-float64-base-add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n* import cadd from '@stdlib/complex-float64-base-add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n* @name set\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = real( value );\n\t\tbuf[ idx+1 ] = imag( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float64Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float64Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = real( v );\n\t\t\tbuf[ idx+1 ] = imag( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = real( tmp[i] );\n\t\tbuf[ j+1 ] = imag( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex128Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = real( v );\n* // returns 1.0\n*\n* var im = imag( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = real( v );\n* // returns 2.0\n*\n* im = imag( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': getComplex128( buf, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex128Array} new typed array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex128( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 4.0\n*\n* var im = imag( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex128Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = real( value );\n\tbuf[ (2*index)+1 ] = imag( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex128Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float64Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float64Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = real( v );\n\t\tbuf[ j+1 ] = imag( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( Boolean( v.value ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport format from '@stdlib/string-format';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport { primitives as isStringArray } from '@stdlib/assert-is-string-array';\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Boolean from '@stdlib/boolean-ctor';\nimport getter from '@stdlib/array-base-getter';\nimport floor from '@stdlib/math-base-special-floor';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport format from '@stdlib/string-format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Uint8Array.BYTES_PER_ELEMENT;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a boolean typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean typed array constructor\n*/\nfunction isBooleanArrayConstructor( value ) {\n\treturn ( value === BooleanArray );\n}\n\n\n// MAIN //\n\n/**\n* Boolean array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new BooleanArray( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new BooleanArray( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 16\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 8\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new BooleanArray( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction BooleanArray() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof BooleanArray) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new BooleanArray();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new BooleanArray( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new BooleanArray( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new BooleanArray( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Uint8Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isCollection( arg ) ) {\n\t\t\tbuf = fromArray( new Uint8Array( arg.length ), arg );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( fromIterator( buf ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tbuf = new Uint8Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( buf, byteOffset, len );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var nbytes = BooleanArray.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof BooleanArray\n* @readonly\n* @type {string}\n* @default 'BooleanArray'\n*\n* @example\n* var str = BooleanArray.name;\n* // returns 'BooleanArray'\n*/\nsetReadOnly( BooleanArray, 'name', 'BooleanArray' );\n\n/**\n* Creates a new boolean array from an array-like object or an iterable.\n*\n* @name from\n* @memberof BooleanArray\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.from( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* function clbk( v ) {\n* return !v;\n* }\n*\n* var arr = BooleanArray.from( [ true, false ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( BooleanArray, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tbuf[ i ] = Boolean( clbk.call( thisArg, get( src, i ), i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tlen = tmp.length;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new boolean array from a variable number of arguments.\n*\n* @name of\n* @memberof BooleanArray\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.of( true, true, true, true );\n* // returns \n*\n* var len = arr.length;\n* // returns 4\n*/\nsetReadOnly( BooleanArray, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element located at integer position (index) `i`, with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide an integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.at( 0 );\n* // returns true\n*\n* v = arr.at( -1 );\n* // returns true\n*\n* v = arr.at( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'at', function at( idx ) {\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tif ( idx < 0 ) {\n\t\tidx += len;\n\t}\n\tif ( idx < 0 || idx >= len ) {\n\t\treturn;\n\t}\n\treturn Boolean( buf[ idx ] );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray.prototype, 'BYTES_PER_ELEMENT', BooleanArray.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 4 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n* arr.set( true, 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* var v = arr.get( 2 );\n* // returns true\n*\n* v = arr.get( 3 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target, start );\n\t} else {\n\t\tthis._buffer.copyWithin( target, start, arguments[2] );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var it = arr.entries();\n*\n* var v = it.next().value;\n* // returns [ 0, true ]\n*\n* v = it.next().value;\n* // returns [ 1, false ]\n*\n* v = it.next().value;\n* // returns [ 2, true ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': [ i, Boolean( buf[ i ] ) ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.fill( true, 1 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar val;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tif ( value ) {\n\t\tval = 1;\n\t} else {\n\t\tval = 0;\n\t}\n\tfor ( i = start; i < end; i++ ) {\n\t\tbuf[ i ] = val;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* function predicate( v ) {\n* return ( v === true );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 2\n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\tout.push( v );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.find( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findIndex( predicate );\n* // returns 0\n*/\nsetReadOnly( BooleanArray.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLast( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLastIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( BooleanArray.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tfcn.call( thisArg, Boolean( buf[ i ] ), i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'get', function get( idx ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn Boolean( this._buffer[ idx ] );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a value\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var bool = arr.includes( true );\n* // returns true\n*\n* bool = arr.includes( false, 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.indexOf( true );\n* // returns 0\n*\n* idx = arr.indexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.indexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.join();\n* // returns 'true,false,true'\n*\n* str = arr.join( '|' );\n* // returns 'true|false|true'\n*/\nsetReadOnly( BooleanArray.prototype, 'join', function join( separator ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length > 0 ) {\n\t\tif ( !isString( separator ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t\t}\n\t} else {\n\t\tseparator = ',';\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( separator );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.lastIndexOf( true );\n* // returns 4\n*\n* idx = arr.lastIndexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} new boolean array\n*\n* @example\n* function invert( v ) {\n* return !v;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.map( invert );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns false\n*\n* z = out.get( 1 );\n* // returns true\n*\n* z = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be a function. Value: `%s`.', fcn );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\toutbuf[ i ] = Boolean( fcn.call( thisArg, Boolean( buf[ i ] ), i, this ) );\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduce( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ 0 ] );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduceRight( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len - 1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ len-1 ] );\n\t\ti = len - 2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ i ];\n\t\tbuf[ i ] = buf[ j ];\n\t\tbuf[ j ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(Collection|BooleanArray|*)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'set', function set( value ) {\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isCollection( value ) ) {\n\t\tN = value.length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tif ( isBooleanArray( value ) ) {\n\t\t\tsbuf = value._buffer; // eslint-disable-line no-underscore-dangle\n\t\t} else {\n\t\t\tsbuf = value;\n\t\t}\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Uint8Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\tbuf[ idx ] = ( sbuf[ i ] ) ? 1 : 0;\n\t\t}\n\t\treturn;\n\t}\n\tif ( idx >= this._length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t}\n\tbuf[ idx ] = ( value ) ? 1 : 0;\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be integer\n* @throws {TypeError} second argument must be integer\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var bool = out.get( 0 );\n* // returns true\n*\n* bool = out.get( len-1 );\n* // returns true\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* bool = out.get( 0 );\n* // returns false\n*\n* bool = out.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'slice', function slice( begin, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar len;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin < end ) {\n\t\toutlen = end - begin;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\toutbuf[ i ] = buf[ i+begin ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( false, 0 );\n* arr.set( true, 1 );\n* arr.set( false, 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.sort( compare );\n*\n* var v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'sort', function sort( compareFcn ) {\n\tvar buf;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length === 0 ) {\n\t\tbuf.sort();\n\t\treturn this;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf.sort( compare );\n\treturn this;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {BooleanArray} subarray\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var bool = subarr.get( 0 );\n* // returns true\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* bool = subarr.get( 0 );\n* // returns false\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toLocaleString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( Boolean( buf[ i ] ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ len - i - 1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*\n* v = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ i ];\n\t}\n\tif ( arguments.length === 0 ) {\n\t\toutbuf.sort();\n\t\treturn out;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\toutbuf.sort( compare );\n\treturn out;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns true\n*\n* v = iter.next().value;\n* // returns false\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': Boolean( buf[ i ] ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {boolean} value - new value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a boolean\n* @returns {BooleanArray} new typed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.with( 0, false );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tif ( value ) {\n\t\tbuf[ index ] = 1;\n\t} else {\n\t\tbuf[ index ] = 0;\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default BooleanArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Fills an output array with \"boolean\" values.\n*\n* @private\n* @param {Uint8Array} buf - output array\n* @param {Array} arr - input array\n* @returns {Uint8Array} output array\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar i;\n\n\tlen = arr.length;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tbuf[ i ] = Boolean( arr[ i ] );\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {Array} output array\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tout.push( Boolean( clbk.call( thisArg, v.value, i ) ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int8Array from '@stdlib/array-int8';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert-is-buffer';\nimport isArray from '@stdlib/assert-is-array';\nimport constructorName from '@stdlib/utils-constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an array.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn null;\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport getter from '@stdlib/array-base-getter';\nimport setter from '@stdlib/array-base-setter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Converts an array-like to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding array meta data to ensure that internal functions operating on arrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **data**: reference to the input array.\n* - **dtype**: array data type.\n* - **accessorProtocol**: `boolean` indicating whether the input array uses accessors for getting and setting elements.\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing array meta data\n*\n* @example\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\nfunction arraylike2object( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn {\n\t\t\t'data': x,\n\t\t\t'dtype': dt,\n\t\t\t'accessorProtocol': true,\n\t\t\t'accessors': [\n\t\t\t\taccessorGetter( dt ),\n\t\t\t\taccessorSetter( dt )\n\t\t\t]\n\t\t};\n\t}\n\treturn {\n\t\t'data': x,\n\t\t'dtype': dt,\n\t\t'accessorProtocol': false,\n\t\t'accessors': [\n\t\t\tgetter( dt ),\n\t\t\tsetter( dt )\n\t\t]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default arraylike2object;\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// VARIABLES //\n\nvar M = 5;\n\n\n// MAIN //\n\n/**\n* Multiplies `x` by a scalar `alpha`.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {number} alpha - scalar\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} stride - index increment\n* @param {NonNegativeInteger} offset - starting index\n* @returns {NumericArray} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ];\n*\n* gscal( 3, 5.0, arraylike2object( toAccessorArray( x ) ), 1, x.length-3 );\n* // x => [ 1.0, -2.0, 3.0, -20.0, 25.0, -30.0 ]\n*/\nfunction gscal( N, alpha, x, stride, offset ) {\n\tvar xbuf;\n\tvar xget;\n\tvar xset;\n\tvar ix;\n\tvar m;\n\tvar i;\n\n\txbuf = x.data;\n\txget = x.accessors[ 0 ];\n\txset = x.accessors[ 1 ];\n\n\tix = offset;\n\tif ( stride === 0 ) {\n\t\txset( xbuf, ix, xget( xbuf, ix ) * N * alpha );\n\t\treturn x;\n\t}\n\n\t// Use loop unrolling if the stride is equal to `1`...\n\tif ( stride === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\txset( xbuf, ix, xget( xbuf, ix ) * alpha );\n\t\t\t\tix += stride;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn x;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\txset( xbuf, ix, xget( xbuf, ix ) * alpha );\n\t\t\txset( xbuf, ix+1, xget( xbuf, ix+1 ) * alpha );\n\t\t\txset( xbuf, ix+2, xget( xbuf, ix+2 ) * alpha );\n\t\t\txset( xbuf, ix+3, xget( xbuf, ix+3 ) * alpha );\n\t\t\txset( xbuf, ix+4, xget( xbuf, ix+4 ) * alpha );\n\t\t\tix += M;\n\t\t}\n\t\treturn x;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\txset( xbuf, ix, xget( xbuf, ix ) * alpha );\n\t\tix += stride;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gscal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 5;\n\n\n// MAIN //\n\n/**\n* Multiplies a vector by a scalar constant using alternative indexing semantics.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {number} alpha - scalar\n* @param {NumericArray} x - input array\n* @param {integer} stride - stride length\n* @param {NonNegativeInteger} offset - starting index\n* @returns {NumericArray} input array\n*\n* @example\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ];\n*\n* gscal( 3, 5.0, x, 1, x.length-3 );\n* // x => [ 1.0, -2.0, 3.0, -20.0, 25.0, -30.0 ]\n*/\nfunction gscal( N, alpha, x, stride, offset ) {\n\tvar ix;\n\tvar m;\n\tvar o;\n\tvar i;\n\n\tif ( N <= 0 || alpha === 1.0 ) {\n\t\treturn x;\n\t}\n\to = arraylike2object( x );\n\tif ( o.accessorProtocol ) {\n\t\taccessors( N, alpha, o, stride, offset );\n\t\treturn x;\n\t}\n\n\tix = offset;\n\tif ( stride === 0 ) {\n\t\tx[ ix ] *= alpha * N;\n\t\treturn x;\n\t}\n\n\t// Use loop unrolling if the stride is equal to `1`...\n\tif ( stride === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\tx[ ix ] *= alpha;\n\t\t\t\tix += stride;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn x;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\tx[ ix ] *= alpha;\n\t\t\tx[ ix+1 ] *= alpha;\n\t\t\tx[ ix+2 ] *= alpha;\n\t\t\tx[ ix+3 ] *= alpha;\n\t\t\tx[ ix+4 ] *= alpha;\n\t\t\tix += M;\n\t\t}\n\t\treturn x;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tx[ ix ] *= alpha;\n\t\tix += stride;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gscal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Multiplies a vector by a scalar constant.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {number} alpha - scalar constant\n* @param {NumericArray} x - input array\n* @param {PositiveInteger} stride - stride length\n* @returns {NumericArray} input array\n*\n* @example\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gscal( x.length, 5.0, x, 1 );\n* // x => [ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]\n*/\nfunction gscal( N, alpha, x, stride ) {\n\treturn ndarray( N, alpha, x, stride, stride2offset( N, stride ) );\n}\n\n\n// EXPORTS //\n\nexport default gscal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction zeroTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 0; i < n; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default zeroTo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\n\n\n// FUNCTIONS //\n\n/**\n* Fills an indexed array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction indexed( out, stride, offset ) {\n\tvar v;\n\tvar i;\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < out.length ) {\n\t\tout[ i ] = v;\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn out;\n}\n\n/**\n* Fills a complex number array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {(Complex128Array|Complex64Array)} out - output complex number array\n* @param {(Float64Array|Float32Array)} data - output array data\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {(Complex128Array|Complex64Array)} output array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n* import reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\n*\n* var out = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n* // returns \n*\n* var data = reinterpret128( out, 0 );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* var arr = complex( out, data, 1, 0 );\n* // returns \n*\n* var bool = ( arr === out );\n* // returns true\n*\n* data = reinterpret128( out, 0 );\n* returns [ 0.0, 0.0, 1.0, 0.0, 2.0, 0.0 ]\n*/\nfunction complex( out, data, stride, offset ) {\n\tvar v;\n\tvar s;\n\tvar i;\n\n\ts = stride * 2;\n\ti = offset * 2;\n\tv = 0.0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tdata[ i ] = v; // real component\n\t\tdata[ i+1 ] = 0.0; // imaginary component\n\t\ti += s;\n\t\tv += 1.0;\n\t}\n\treturn out;\n}\n\n/**\n* Fills an accessor array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {Object} out - output array object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n\n* var out = toAccessorArray( [ 0, 0, 0, 0, 0, 0 ] );\n* var arr = accessors( arraylike2object( out ), 1, 0 );\n*\n* var bool = ( arr === out );\n* // returns true\n*\n* var v = out.get( 0 );\n* // returns 0\n*\n* v = out.get( out.length-1 );\n* // returns 5\n*/\nfunction accessors( out, stride, offset ) {\n\tvar data;\n\tvar set;\n\tvar v;\n\tvar i;\n\n\tdata = out.data;\n\tset = out.accessors[ 1 ];\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tset( data, i, v );\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Fills an array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction assign( out, stride, offset ) {\n\tvar obj = arraylike2object( out );\n\tif ( obj.accessorProtocol ) {\n\t\t// If provided a complex number array, reinterpret as a real typed array and only set the real components...\n\t\tif ( obj.dtype === 'complex128' ) {\n\t\t\treturn complex( out, reinterpret128( out, 0 ), stride, offset );\n\t\t}\n\t\tif ( obj.dtype === 'complex64' ) {\n\t\t\treturn complex( out, reinterpret64( out, 0 ), stride, offset );\n\t\t}\n\t\treturn accessors( obj, stride, offset );\n\t}\n\treturn indexed( out, stride, offset );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Takes elements from an indexed array.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var y = take( x, indices );\n* // returns [ 4, 2, 3, 1 ]\n*/\nfunction take( x, indices ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout.push( x[ indices[ i ] ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default take;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: ndarray strides sorted in loop order.\n* - **idx**: dimension indices sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n*\n* var o = loopOrder( sh, sx );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var idx = o.idx;\n* // returns [ 2, 1, 0 ]\n*/\nfunction loopOrder( sh, sx ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape based on the sorted array strides:\n\tsh = take( sh, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'idx': idx\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20`) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue > 0.0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() > 0.0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a positive integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a positive integer\n*\n* @example\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( null );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.keys()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\treturn Object.keys( Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Multiply a vector by a scalar constant.\n*\n* @module @stdlib/blas-base-gscal\n*\n* @example\n* import gscal from '@stdlib/blas-base-gscal';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gscal( x.length, 5.0, x, 1 );\n* // x => [ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]\n*\n* @example\n* import gscal from '@stdlib/blas-base-gscal';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gscal.ndarray( x.length, 5.0, x, 1, 0 );\n* // x => [ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @module @stdlib/array-base-zero-to\n*\n* @example\n* import zeroTo from '@stdlib/array-base-zero-to';\n*\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* import zeroTo from '@stdlib/array-base-zero-to';\n*\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n* var arr = zeroTo.assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* var bool = ( out === arr );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a positive integer.\n*\n* @module @stdlib/assert-is-positive-integer\n*\n* @example\n* import isPositiveInteger from '@stdlib/assert-is-positive-integer';\n*\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* bool = isPositiveInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar bool = ( typeof Object.keys !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from './main.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment returns the expected internal class of the `arguments` object.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment behaves as expected\n*\n* @example\n* var bool = detect();\n* // returns \n*/\nfunction detect() {\n\treturn isArguments( arguments );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn ( nativeClass( value ) === '[object Arguments]' );\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is `NaN`.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 7.0 );\n* // returns false\n*/\nfunction isnan( x ) {\n\treturn ( x !== x );\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isNan from '@stdlib/math-base-assert-is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `NaN` number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `NaN` number primitive\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from '@stdlib/assert-is-number';\nimport isNan from '@stdlib/math-base-assert-is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a value of `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a value of `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( null );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is `NaN`.\n*\n* @module @stdlib/assert-is-nan\n*\n* @example\n* import isnan from '@stdlib/assert-is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isnan } from '@stdlib/assert-is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns false\n*\n* @example\n* import { isObject as isnan } from '@stdlib/assert-is-nan';\n*\n* var bool = isnan( NaN );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @private\n* @name isEnumerableProperty\n* @type {Function}\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty.call( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty.call( beep, 'hasOwnProperty' );\n* // returns false\n*/\nvar isEnumerableProperty = Object.prototype.propertyIsEnumerable;\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnum from './native.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment has a bug where String indices are not detected as \"enumerable\" properties. Observed in Node v0.10.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment has the bug\n*/\nfunction detect() {\n\treturn !isEnum.call( 'beep', '0' );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isString from '@stdlib/assert-is-string';\nimport { isPrimitive as isnan } from '@stdlib/assert-is-nan';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isEnum from './native.js';\nimport hasStringEnumBug from './has_string_enumerability_bug.js';\n\n\n// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'hasOwnProperty' );\n* // returns false\n*/\nfunction isEnumerableProperty( value, property ) {\n\tvar bool;\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\tbool = isEnum.call( value, property );\n\tif ( !bool && hasStringEnumBug && isString( value ) ) {\n\t\t// Note: we only check for indices, as properties attached to a `String` object are properly detected as enumerable above.\n\t\tproperty = +property;\n\t\treturn (\n\t\t\t!isnan( property ) &&\n\t\t\tisInteger( property ) &&\n\t\t\tproperty >= 0 &&\n\t\t\tproperty < value.length\n\t\t);\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an `arguments` object.\n*\n* @module @stdlib/assert-is-arguments\n*\n* @example\n* import isArguments from '@stdlib/assert-is-arguments';\n*\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* bool = isArguments( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport hasArgumentsClass from './detect.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar isArguments;\nif ( hasArgumentsClass ) {\n\tisArguments = main;\n} else {\n\tisArguments = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isEnumerableProperty from '@stdlib/assert-is-enumerable-property';\nimport isArray from '@stdlib/assert-is-array';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-uint32-max';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object' &&\n\t\t!isArray( value ) &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH &&\n\t\thasOwnProp( value, 'callee' ) &&\n\t\t!isEnumerableProperty( value, 'callee' )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from '@stdlib/assert-is-arguments';\nimport builtin from './builtin.js';\n\n\n// VARIABLES //\n\nvar slice = Array.prototype.slice;\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tif ( isArguments( value ) ) {\n\t\treturn builtin( slice.call( value ) );\n\t}\n\treturn builtin( value );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert-is-enumerable-property';\nimport noop from '@stdlib/utils-noop';\n\n\n// MAIN //\n\n// Note: certain environments treat an object's prototype as enumerable, which, as a matter of convention, it shouldn't be...\nvar bool = isEnumerableProperty( noop, 'prototype' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* No operation.\n*\n* @example\n* noop();\n* // ...does nothing.\n*/\nfunction noop() {\n\t// Empty function...\n}\n\n\n// EXPORTS //\n\nexport default noop;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert-is-enumerable-property';\n\n\n// VARIABLES //\n\nvar obj = {\n\t'toString': null\n};\n\n\n// MAIN //\n\n// Note: certain environments don't allow enumeration of overwritten properties which are considered non-enumerable...\nvar bool = !isEnumerableProperty( obj, 'toString' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from '@stdlib/assert-is-nan';\nimport isCollection from '@stdlib/assert-is-collection';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @param {ArrayLike} arr - array-like object\n* @param {*} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (if negative, the start index is determined relative to last element)\n* @throws {TypeError} must provide an array-like object\n* @throws {TypeError} third argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 3 );\n* // returns 1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 5 );\n* // returns -1\n*\n* @example\n* // Using a `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, 3 );\n* // returns 5\n*\n* @example\n* // `fromIndex` which exceeds `array` length:\n* var arr = [ 1, 2, 3, 4, 2, 5 ];\n* var idx = indexOf( arr, 2, 10 );\n* // returns -1\n*\n* @example\n* // Negative `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6, 2 ];\n* var idx = indexOf( arr, 2, -4 );\n* // returns 5\n*\n* idx = indexOf( arr, 2, -1 );\n* // returns 7\n*\n* @example\n* // Negative `fromIndex` exceeding input `array` length:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, -10 );\n* // returns 1\n*\n* @example\n* // Array-like objects:\n* var str = 'bebop';\n* var idx = indexOf( str, 'o' );\n* // returns 3\n*/\nfunction indexOf( arr, searchElement, fromIndex ) {\n\tvar len;\n\tvar i;\n\tif ( !isCollection( arr ) && !isString( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', arr ) );\n\t}\n\tlen = arr.length;\n\tif ( len === 0 ) {\n\t\treturn -1;\n\t}\n\tif ( arguments.length === 3 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= 0 ) {\n\t\t\tif ( fromIndex >= len ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\ti = fromIndex;\n\t\t} else {\n\t\t\ti = len + fromIndex;\n\t\t\tif ( i < 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\ti = 0;\n\t}\n\t// Check for `NaN`...\n\tif ( isnan( searchElement ) ) {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( isnan( arr[i] ) ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( arr[ i ] === searchElement ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests whether a value equals the prototype of its constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction isConstructorPrototype( value ) {\n\treturn ( value.constructor && value.constructor.prototype === value );\n}\n\n\n// EXPORTS //\n\nexport default isConstructorPrototype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar w = ( typeof window === 'undefined' ) ? void 0 : window;\n\n\n// EXPORTS //\n\nexport default w;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport indexOf from '@stdlib/utils-index-of';\nimport typeOf from '@stdlib/utils-type-of';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport EXCLUDED_KEYS from './excluded_keys.json';\nimport win from './window.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Determines whether an environment throws when comparing to the prototype of a value's constructor (e.g., [IE9][1]).\n*\n* [1]: https://stackoverflow.com/questions/7688070/why-is-comparing-the-constructor-property-of-two-windows-unreliable\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment is buggy\n*/\nfunction check() {\n\tvar k;\n\tif ( typeOf( win ) === 'undefined' ) {\n\t\treturn false;\n\t}\n\tfor ( k in win ) { // eslint-disable-line guard-for-in\n\t\ttry {\n\t\t\tif (\n\t\t\t\tindexOf( EXCLUDED_KEYS, k ) === -1 &&\n\t\t\t\thasOwnProp( win, k ) &&\n\t\t\t\twin[ k ] !== null &&\n\t\t\t\ttypeOf( win[ k ] ) === 'object'\n\t\t\t) {\n\t\t\t\tisConstructorPrototype( win[ k ] );\n\t\t\t}\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\nbool = check();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar bool = ( typeof window !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasArgumentsBug from './has_arguments_bug.js';\nimport HAS_BUILTIN from './has_builtin.js';\nimport builtin from './builtin.js';\nimport wrapper from './builtin_wrapper.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @name keys\n* @type {Function}\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nvar keys;\nif ( HAS_BUILTIN ) {\n\tif ( hasArgumentsBug() ) {\n\t\tkeys = wrapper;\n\t} else {\n\t\tkeys = builtin;\n\t}\n} else {\n\tkeys = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport keys from './builtin.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests the built-in `Object.keys()` implementation when provided `arguments`.\n*\n* @private\n* @returns {boolean} boolean indicating whether the built-in implementation returns the expected number of keys\n*/\nfunction test() {\n\treturn ( keys( arguments ) || '' ).length !== 2;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether the built-in `Object.keys()` implementation supports providing `arguments` as an input value.\n*\n* ## Notes\n*\n* - Safari 5.0 does **not** support `arguments` as an input value.\n*\n* @private\n* @returns {boolean} boolean indicating whether a built-in implementation supports `arguments`\n*/\nfunction check() {\n\treturn test( 1, 2 );\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from '@stdlib/assert-is-object-like';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isArguments from '@stdlib/assert-is-arguments';\nimport HAS_ENUM_PROTO_BUG from './has_enumerable_prototype_bug.js';\nimport HAS_NON_ENUM_PROPS_BUG from './has_non_enumerable_properties_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype_wrapper.js';\nimport NON_ENUMERABLE from './non_enumerable.json';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tvar skipConstructor;\n\tvar skipPrototype;\n\tvar isFcn;\n\tvar out;\n\tvar k;\n\tvar p;\n\tvar i;\n\n\tout = [];\n\tif ( isArguments( value ) ) {\n\t\t// Account for environments which treat `arguments` differently...\n\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\tout.push( i.toString() );\n\t\t}\n\t\t// Note: yes, we are precluding the `arguments` array-like object from having other enumerable properties; however, this should (1) be very rare and (2) not be encouraged (e.g., doing something like `arguments.a = 'b'`; in certain engines directly manipulating the `arguments` value results in automatic de-optimization).\n\t\treturn out;\n\t}\n\tif ( typeof value === 'string' ) {\n\t\t// Account for environments which do not treat string character indices as \"own\" properties...\n\t\tif ( value.length > 0 && !hasOwnProp( value, '0' ) ) {\n\t\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\t\tout.push( i.toString() );\n\t\t\t}\n\t\t}\n\t} else {\n\t\tisFcn = ( typeof value === 'function' );\n\t\tif ( isFcn === false && !isObjectLike( value ) ) {\n\t\t\treturn out;\n\t\t}\n\t\tskipPrototype = ( HAS_ENUM_PROTO_BUG && isFcn );\n\t}\n\tfor ( k in value ) {\n\t\tif ( !( skipPrototype && k === 'prototype' ) && hasOwnProp( value, k ) ) {\n\t\t\tout.push( String( k ) );\n\t\t}\n\t}\n\tif ( HAS_NON_ENUM_PROPS_BUG ) {\n\t\tskipConstructor = isConstructorPrototype( value );\n\t\tfor ( i = 0; i < NON_ENUMERABLE.length; i++ ) {\n\t\t\tp = NON_ENUMERABLE[ i ];\n\t\t\tif ( !( skipConstructor && p === 'constructor' ) && hasOwnProp( value, p ) ) {\n\t\t\t\tout.push( String( p ) );\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasAutomationEqualityBug from './has_automation_equality_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport HAS_WINDOW from './has_window.js';\n\n\n// MAIN //\n\n/**\n* Wraps the test for constructor prototype equality to accommodate buggy environments (e.g., environments which throw when testing equality).\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction wrapper( value ) {\n\tif ( HAS_WINDOW === false && !hasAutomationEqualityBug ) {\n\t\treturn isConstructorPrototype( value );\n\t}\n\ttry {\n\t\treturn isConstructorPrototype( value );\n\t} catch ( error ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrapper;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar getProto;\nif ( isFunction( Object.getPrototypeOf ) ) {\n\tgetProto = builtin;\n} else {\n\tgetProto = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object.\n*\n* @name Object\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {Object} object\n*\n* @example\n* var o = new Object( null );\n* // returns {}\n*\n* @example\n* var o = new Object( 5.0 );\n* // returns \n*\n* @example\n* var o = new Object( 'beep' );\n* // returns \n*\n* @example\n* var o1 = {};\n*\n* var o2 = new Object( o1 );\n* // returns {}\n*\n* var bool = ( o1 === o2 );\n* // returns true\n*/\nvar Obj = Object; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar getProto = Object.getPrototypeOf;\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\nimport Object from '@stdlib/object-ctor';\nimport getProto from './proto.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {(Object|null)} prototype\n*/\nfunction getPrototypeOf( obj ) {\n\tvar proto = getProto( obj );\n\tif ( proto || proto === null ) {\n\t\treturn proto;\n\t}\n\tif ( nativeClass( obj.constructor ) === '[object Function]' ) {\n\t\t// May break if the constructor has been tampered with...\n\t\treturn obj.constructor.prototype;\n\t}\n\tif ( obj instanceof Object ) {\n\t\treturn Object.prototype;\n\t}\n\t// Return `null` for objects created via `Object.create( null )`. Also return `null` for cross-realm objects on browsers that lack `__proto__` support, such as IE < 11.\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the value of the `__proto__` property.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {*} value of `__proto__` property\n*/\nfunction getProto( obj ) {\n\t// eslint-disable-next-line no-proto\n\treturn obj.__proto__;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Object from '@stdlib/object-ctor';\nimport getProto from './detect.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @param {*} value - input value\n* @returns {(Object|null)} prototype\n*\n* @example\n* var proto = getPrototypeOf( {} );\n* // returns {}\n*/\nfunction getPrototypeOf( value ) {\n\tif (\n\t\tvalue === null ||\n\t\tvalue === void 0\n\t) {\n\t\treturn null;\n\t}\n\t// In order to ensure consistent ES5/ES6 behavior, cast input value to an object (strings, numbers, booleans); ES5 `Object.getPrototypeOf` throws when provided primitives and ES6 `Object.getPrototypeOf` casts:\n\tvalue = Object( value );\n\n\treturn getProto( value );\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar objectPrototype = Object.prototype;\n\n\n// FUNCTIONS //\n\n/**\n* Tests that an object only has own properties.\n*\n* @private\n* @param {Object} obj - value to test\n* @returns {boolean} boolean indicating if an object only has own properties\n*/\nfunction ownProps( obj ) {\n\tvar key;\n\n\t// NOTE: possibility of perf boost if key enumeration order is known (see http://stackoverflow.com/questions/18531624/isplainobject-thing).\n\tfor ( key in obj ) {\n\t\tif ( !hasOwnProp( obj, key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// MAIN //\n\n/**\n* Tests if a value is a plain object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a plain object\n*\n* @example\n* var bool = isPlainObject( {} );\n* // returns true\n*\n* @example\n* var bool = isPlainObject( null );\n* // returns false\n*/\nfunction isPlainObject( value ) {\n\tvar proto;\n\n\t// Screen for obvious non-objects...\n\tif ( !isObject( value ) ) {\n\t\treturn false;\n\t}\n\t// Objects with no prototype (e.g., `Object.create( null )`) are plain...\n\tproto = getPrototypeOf( value );\n\tif ( !proto ) {\n\t\treturn true;\n\t}\n\t// Objects having a prototype are plain if and only if they are constructed with a global `Object` function and the prototype points to the prototype of a plain object...\n\treturn (\n\t\t// Cannot have own `constructor` property:\n\t\t!hasOwnProp( value, 'constructor' ) &&\n\n\t\t// Prototype `constructor` property must be a function (see also https://bugs.jquery.com/ticket/9897 and http://stackoverflow.com/questions/18531624/isplainobject-thing):\n\t\thasOwnProp( proto, 'constructor' ) &&\n\t\tisFunction( proto.constructor ) &&\n\t\tnativeClass( proto.constructor ) === '[object Function]' &&\n\n\t\t// Test for object-specific method:\n\t\thasOwnProp( proto, 'isPrototypeOf' ) &&\n\t\tisFunction( proto.isPrototypeOf ) &&\n\n\t\t(\n\t\t\t// Test if the prototype matches the global `Object` prototype (same realm):\n\t\t\tproto === objectPrototype ||\n\n\t\t\t// Test that all properties are own properties (cross-realm; *most* likely a plain object):\n\t\t\townProps( value )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPlainObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport isArray from '@stdlib/assert-is-array';\nimport isObject from '@stdlib/assert-is-plain-object';\nimport isObjectLike from '@stdlib/assert-is-object-like';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Inverts an object, such that keys become values and values become keys.\n*\n* @param {ObjectLike} obj - input object\n* @param {Options} [opts] - function options\n* @param {boolean} [opts.duplicates=true] - boolean indicating whether to store duplicate keys\n* @throws {TypeError} first argument must be object-like\n* @throws {TypeError} second argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Object} inverted object\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'boop'\n* });\n* // returns { 'beep': 'a', 'boop': 'b' }\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'beep'\n* });\n* // returns { 'beep': [ 'a', 'b' ] }\n*\n* @example\n* var obj = {};\n* obj.a = 'beep';\n* obj.b = 'boop';\n* obj.c = 'beep'; // inserted after `a`\n*\n* var out = invert( obj, {\n* 'duplicates': false\n* });\n* // returns { 'beep': 'c', 'boop': 'b' }\n*/\nfunction invert( obj, opts ) {\n\tvar allowDupes = true;\n\tvar keys;\n\tvar len;\n\tvar key;\n\tvar val;\n\tvar out;\n\tvar v;\n\tvar i;\n\tif ( !isObjectLike( obj ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object (except null). Value: `%s`.', obj ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isObject( opts ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t}\n\t\tif ( hasOwnProp( opts, 'duplicates' ) ) {\n\t\t\tallowDupes = opts.duplicates;\n\t\t\tif ( !isBoolean( allowDupes ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'duplicates', allowDupes ) );\n\t\t\t}\n\t\t}\n\t}\n\tkeys = objectKeys( obj );\n\tlen = keys.length;\n\tout = {};\n\tif ( allowDupes ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tval = obj[ key ];\n\t\t\tif ( !hasOwnProp( out, val ) ) {\n\t\t\t\tout[ val ] = key;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tv = out[ val ];\n\t\t\tif ( isArray( v ) ) {\n\t\t\t\tout[ val ].push( key );\n\t\t\t} else {\n\t\t\t\tout[ val ] = [ v, key ];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tout[ obj[ key ] ] = key;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default invert;\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 stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported data type strings to enumeration constants\n*\n* @example\n* var table = dtypeEnums();\n* // returns {...}\n*/\nfunction dtypeEnums() {\n\t// NOTE: the following should match the C enumeration in `@stdlib/ndarray/dtypes`!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t'float16': 10,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 11,\n\t\t'float64': 12,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex32': 13,\n\t\t'complex64': 14,\n\t\t'complex128': 15,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 16,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 17,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 18,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default dtypeEnums;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport objectInverse from '@stdlib/object-inverse';\nimport dtypeEnums from '@stdlib/ndarray-base-dtype-enums';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( dtypeEnums(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with an ndarray data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( isString( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport enum2str from '@stdlib/ndarray-base-dtype-enum2str';\nimport BYTES_PER_ELEMENT from './bytes_per_element.json';\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes per element for a provided underlying ndarray data type.\n*\n* @param {*} dtype - data type\n* @returns {(PositiveInteger|null)} number of bytes per element\n*\n* @example\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\n* // returns null\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'value',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n* // returns \n*\n* var nbytes = bytesPerElement( Struct );\n* // returns 8\n*/\nfunction bytesPerElement( dtype ) {\n\tvar v;\n\tif ( isString( dtype ) ) {\n\t\treturn BYTES_PER_ELEMENT[ dtype ] || null;\n\t}\n\tif ( isNumber( dtype ) ) {\n\t\treturn BYTES_PER_ELEMENT[ enum2str( dtype ) ] || null;\n\t}\n\tif ( dtype ) {\n\t\tv = dtype.byteLength;\n\t\tif ( isPositiveInteger( v ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default bytesPerElement;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nexport default defaults;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport defaults from './defaults.js';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {ArrayLikeObject} dtypes - list of input and output ndarray data types\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = blockSize( [ 'float64', 'float64', 'float64', 'float64' ] );\n* // returns \n*/\nfunction blockSize( dtypes ) {\n\tvar max;\n\tvar len;\n\tvar nb;\n\tvar i;\n\n\tlen = dtypes.length;\n\tif ( len <= 0 ) {\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tmax = bytesPerElement( dtypes[ 0 ] );\n\tif ( max === null ) {\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS; // e.g., \"generic\" arrays\n\t}\n\t// Find the largest element size among all arrays...\n\tfor ( i = 1; i < len; i++ ) {\n\t\tnb = bytesPerElement( dtypes[ i ] );\n\t\tif ( nb === null ) {\n\t\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS; // e.g., \"generic\" arrays\n\t\t}\n\t\tif ( nb > max ) {\n\t\t\tmax = nb;\n\t\t}\n\t}\n\tnb = ( defaults.BLOCK_SIZE_IN_BYTES/max )|0; // asm type annotation\n\treturn ( nb > 0 ) ? nb : 1|0;\n}\n\n\n// EXPORTS //\n\nexport default blockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = nullaryBlockSize( 'float64' );\n* // returns \n*/\nfunction nullaryBlockSize( dtypeX ) {\n\treturn blockSize( [ dtypeX ] );\n}\n\n\n// EXPORTS //\n\nexport default nullaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an array view\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an underlying data buffer\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\nfunction vind2bind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tind = offset;\n\tif ( isColumnMajor( order ) ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nexport default vind2bind;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = anynd( x );\n* // returns true\n*/\nfunction anynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anynd( x );\n* // returns true\n*/\nfunction anynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anynd( x );\n* // returns true\n*/\nfunction anynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorany2d from './2d_blocked_accessors.js';\nimport blockedaccessorany3d from './3d_blocked_accessors.js';\nimport blockedaccessorany4d from './4d_blocked_accessors.js';\nimport blockedaccessorany5d from './5d_blocked_accessors.js';\nimport blockedaccessorany6d from './6d_blocked_accessors.js';\nimport blockedaccessorany7d from './7d_blocked_accessors.js';\nimport blockedaccessorany8d from './8d_blocked_accessors.js';\nimport blockedaccessorany9d from './9d_blocked_accessors.js';\nimport blockedaccessorany10d from './10d_blocked_accessors.js';\nimport blockedcomplexany2d from './2d_blocked_complex.js';\nimport blockedcomplexany3d from './3d_blocked_complex.js';\nimport blockedcomplexany4d from './4d_blocked_complex.js';\nimport blockedcomplexany5d from './5d_blocked_complex.js';\nimport blockedcomplexany6d from './6d_blocked_complex.js';\nimport blockedcomplexany7d from './7d_blocked_complex.js';\nimport blockedcomplexany8d from './8d_blocked_complex.js';\nimport blockedcomplexany9d from './9d_blocked_complex.js';\nimport blockedcomplexany10d from './10d_blocked_complex.js';\nimport blockedany2d from './2d_blocked.js';\nimport blockedany3d from './3d_blocked.js';\nimport blockedany4d from './4d_blocked.js';\nimport blockedany5d from './5d_blocked.js';\nimport blockedany6d from './6d_blocked.js';\nimport blockedany7d from './7d_blocked.js';\nimport blockedany8d from './8d_blocked.js';\nimport blockedany9d from './9d_blocked.js';\nimport blockedany10d from './10d_blocked.js';\nimport accessorany0d from './0d_accessors.js';\nimport accessorany1d from './1d_accessors.js';\nimport accessorany2d from './2d_accessors.js';\nimport accessorany3d from './3d_accessors.js';\nimport accessorany4d from './4d_accessors.js';\nimport accessorany5d from './5d_accessors.js';\nimport accessorany6d from './6d_accessors.js';\nimport accessorany7d from './7d_accessors.js';\nimport accessorany8d from './8d_accessors.js';\nimport accessorany9d from './9d_accessors.js';\nimport accessorany10d from './10d_accessors.js';\nimport accessoranynd from './nd_accessors.js';\nimport complexany0d from './0d_complex.js';\nimport complexany1d from './1d_complex.js';\nimport complexany2d from './2d_complex.js';\nimport complexany3d from './3d_complex.js';\nimport complexany4d from './4d_complex.js';\nimport complexany5d from './5d_complex.js';\nimport complexany6d from './6d_complex.js';\nimport complexany7d from './7d_complex.js';\nimport complexany8d from './8d_complex.js';\nimport complexany9d from './9d_complex.js';\nimport complexany10d from './10d_complex.js';\nimport complexanynd from './nd_complex.js';\nimport any0d from './0d.js';\nimport any1d from './1d.js';\nimport any2d from './2d.js';\nimport any3d from './3d.js';\nimport any4d from './4d.js';\nimport any5d from './5d.js';\nimport any6d from './6d.js';\nimport any7d from './7d.js';\nimport any8d from './8d.js';\nimport any9d from './9d.js';\nimport any10d from './10d.js';\nimport anynd from './nd.js';\n\n\n// VARIABLES //\n\nvar ANY = [\n\tany0d,\n\tany1d,\n\tany2d,\n\tany3d,\n\tany4d,\n\tany5d,\n\tany6d,\n\tany7d,\n\tany8d,\n\tany9d,\n\tany10d\n];\nvar ACCESSOR_ANY = [\n\taccessorany0d,\n\taccessorany1d,\n\taccessorany2d,\n\taccessorany3d,\n\taccessorany4d,\n\taccessorany5d,\n\taccessorany6d,\n\taccessorany7d,\n\taccessorany8d,\n\taccessorany9d,\n\taccessorany10d\n];\nvar COMPLEX_ANY = [\n\tcomplexany0d,\n\tcomplexany1d,\n\tcomplexany2d,\n\tcomplexany3d,\n\tcomplexany4d,\n\tcomplexany5d,\n\tcomplexany6d,\n\tcomplexany7d,\n\tcomplexany8d,\n\tcomplexany9d,\n\tcomplexany10d\n];\nvar BLOCKED_ANY = [\n\tblockedany2d, // 0\n\tblockedany3d,\n\tblockedany4d,\n\tblockedany5d,\n\tblockedany6d,\n\tblockedany7d,\n\tblockedany8d,\n\tblockedany9d,\n\tblockedany10d // 8\n];\nvar BLOCKED_ACCESSOR_ANY = [\n\tblockedaccessorany2d, // 0\n\tblockedaccessorany3d,\n\tblockedaccessorany4d,\n\tblockedaccessorany5d,\n\tblockedaccessorany6d,\n\tblockedaccessorany7d,\n\tblockedaccessorany8d,\n\tblockedaccessorany9d,\n\tblockedaccessorany10d // 8\n];\nvar BLOCKED_COMPLEX_ANY = [\n\tblockedcomplexany2d, // 0\n\tblockedcomplexany3d,\n\tblockedcomplexany4d,\n\tblockedcomplexany5d,\n\tblockedcomplexany6d,\n\tblockedcomplexany7d,\n\tblockedcomplexany8d,\n\tblockedcomplexany9d,\n\tblockedcomplexany10d // 8\n];\nvar MAX_DIMS = ANY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any( [ x ] );\n* // returns true\n*/\nfunction any( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ANY[ ndims ]( x );\n\t\t}\n\t\treturn ANY[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ANY[ ndims ]( x );\n\t\t}\n\t\treturn ANY[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ANY[ 1 ]( x );\n\t\t}\n\t\treturn ANY[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+1 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ANY[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ANY[ 1 ]( x );\n\t\t\t}\n\t\t\treturn ANY[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ANY[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ANY[ ndims ]( x );\n\t\t\t}\n\t\t\treturn ANY[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ANY[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_ANY[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_ANY[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoranynd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexanynd( x );\n\t}\n\treturn anynd( x );\n}\n\n\n// EXPORTS //\n\nexport default any;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any0d( x );\n* // returns true\n*/\nfunction any0d( x ) {\n\tif ( x.data[ x.offset ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any1d( x );\n* // returns true\n*/\nfunction any1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any2d( x );\n* // returns true\n*/\nfunction any2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any3d( x );\n* // returns true\n*/\nfunction any3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any4d( x );\n* // returns true\n*/\nfunction any4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any5d( x );\n* // returns true\n*/\nfunction any5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any6d( x );\n* // returns true\n*/\nfunction any6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any7d( x );\n* // returns true\n*/\nfunction any7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any8d( x );\n* // returns true\n*/\nfunction any8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any9d( x );\n* // returns true\n*/\nfunction any9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any10d( x );\n* // returns true\n*/\nfunction any10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any0d( x );\n* // returns true\n*/\nfunction any0d( x ) {\n\tif ( x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any1d( x );\n* // returns true\n*/\nfunction any1d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any2d( x );\n* // returns true\n*/\nfunction any2d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any3d( x );\n* // returns true\n*/\nfunction any3d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any4d( x );\n* // returns true\n*/\nfunction any4d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any5d( x );\n* // returns true\n*/\nfunction any5d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any6d( x );\n* // returns true\n*/\nfunction any6d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any7d( x );\n* // returns true\n*/\nfunction any7d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any8d( x );\n* // returns true\n*/\nfunction any8d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any9d( x );\n* // returns true\n*/\nfunction any9d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any10d( x );\n* // returns true\n*/\nfunction any10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any0d( x );\n* // returns true\n*/\nfunction any0d( x ) {\n\tif ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any1d( x );\n* // returns true\n*/\nfunction any1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any2d( x );\n* // returns true\n*/\nfunction any2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any3d( x );\n* // returns true\n*/\nfunction any3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any4d( x );\n* // returns true\n*/\nfunction any4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any5d( x );\n* // returns true\n*/\nfunction any5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any6d( x );\n* // returns true\n*/\nfunction any6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any7d( x );\n* // returns true\n*/\nfunction any7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any8d( x );\n* // returns true\n*/\nfunction any8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any9d( x );\n* // returns true\n*/\nfunction any9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any10d( x );\n* // returns true\n*/\nfunction any10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x );\n* // returns true\n*/\nfunction blockedany2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x );\n* // returns true\n*/\nfunction blockedany3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x );\n* // returns true\n*/\nfunction blockedany4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x );\n* // returns true\n*/\nfunction blockedany5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x );\n* // returns true\n*/\nfunction blockedany6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x );\n* // returns true\n*/\nfunction blockedany7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x );\n* // returns true\n*/\nfunction blockedany8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x );\n* // returns true\n*/\nfunction blockedany9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x );\n* // returns true\n*/\nfunction blockedany10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x );\n* // returns true\n*/\nfunction blockedany2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x );\n* // returns true\n*/\nfunction blockedany3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x );\n* // returns true\n*/\nfunction blockedany4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x );\n* // returns true\n*/\nfunction blockedany5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x );\n* // returns true\n*/\nfunction blockedany6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x );\n* // returns true\n*/\nfunction blockedany7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x );\n* // returns true\n*/\nfunction blockedany8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x );\n* // returns true\n*/\nfunction blockedany9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x );\n* // returns true\n*/\nfunction blockedany10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x );\n* // returns true\n*/\nfunction blockedany2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x );\n* // returns true\n*/\nfunction blockedany3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x );\n* // returns true\n*/\nfunction blockedany4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x );\n* // returns true\n*/\nfunction blockedany5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x );\n* // returns true\n*/\nfunction blockedany6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x );\n* // returns true\n*/\nfunction blockedany7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x );\n* // returns true\n*/\nfunction blockedany8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x );\n* // returns true\n*/\nfunction blockedany9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x );\n* // returns true\n*/\nfunction blockedany10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'reverse' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Reverses an array in-place.\n*\n* @private\n* @param {Collection} x - input array\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = internal( x );\n* // returns [ 4, 3, 2, 1 ]\n*/\nfunction internal( x ) {\n\tvar tmp;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tN = floor( x.length/2 );\n\tM = x.length - 1;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = M - i;\n\t\ttmp = x[ i ];\n\t\tx[ i ] = x[ j ];\n\t\tx[ j ] = tmp;\n\t}\n\treturn x;\n}\n\n/**\n* Reverses an array in-place.\n*\n* @private\n* @param {Object} x - input array object\n* @returns {Collection} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* var out = accessors( arraylike2object( x ) );\n*\n* v = x.get( 0 );\n* // returns 4\n*/\nfunction accessors( x ) {\n\tvar data;\n\tvar get;\n\tvar set;\n\tvar tmp;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tdata = x.data;\n\tget = x.accessors[ 0 ];\n\tset = x.accessors[ 1 ];\n\n\tN = floor( data.length/2 );\n\tM = data.length - 1;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = M - i;\n\t\ttmp = get( data, i );\n\t\tset( data, i, get( data, j ) );\n\t\tset( data, j, tmp );\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Reverses an array in-place.\n*\n* @param {Collection} x - input array\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = reverse( x );\n* // returns [ 4, 3, 2, 1 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var out = reverse( x );\n* // returns [ 4, 3, 2, 1 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction reverse( x ) {\n\tvar obj;\n\tif ( hasMethod( x, 'reverse' ) ) {\n\t\treturn x.reverse();\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj );\n\t}\n\treturn internal( x );\n}\n\n\n// EXPORTS //\n\nexport default reverse;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled \"generic\" array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} filled array\n*\n* @example\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filled( value, len ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default filled;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport filled from '@stdlib/array-base-filled';\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled \"generic\" array.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction zeros( len ) {\n\treturn filled( 0.0, len );\n}\n\n\n// EXPORTS //\n\nexport default zeros;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a double-precision floating-point number toward positive infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = ceil( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = ceil( 9.99999 );\n* // returns 10.0\n*\n* @example\n* var v = ceil( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = ceil( NaN );\n* // returns NaN\n*/\nvar ceil = Math.ceil; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default ceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from '@stdlib/math-base-special-floor';\nimport ceil from '@stdlib/math-base-special-ceil';\n\n\n// MAIN //\n\n/**\n* Rounds a double-precision floating-point number toward zero.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = trunc( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = trunc( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = trunc( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = trunc( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = trunc( NaN );\n* // returns NaN\n*\n* @example\n* var v = trunc( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = trunc( -Infinity );\n* // returns -Infinity\n*/\nfunction trunc( x ) {\n\tif ( x < 0.0 ) {\n\t\treturn ceil( x );\n\t}\n\treturn floor( x );\n}\n\n\n// EXPORTS //\n\nexport default trunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport trunc from '@stdlib/math-base-special-trunc';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @param {(Array|TypedArray|Object)} out - destination object\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {(Array|TypedArray|Object)} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub( shape, strides, offset, order, 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\n* // returns true\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode, out ) {\n\tvar ndims;\n\tvar len;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\tif ( offset === 0 ) {\n\t\tif ( isColumnMajor( order ) ) {\n\t\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\t\ts = idx % shape[ i ];\n\t\t\t\tidx -= s;\n\t\t\t\tidx /= shape[ i ];\n\t\t\t\tout[ i ] = s;\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\t// Case: row-major\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tout[ i ] = s;\n\t\t}\n\t\treturn out;\n\t}\n\tif ( isColumnMajor( order ) ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = k;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = k;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default ind2sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-base-zeros';\nimport getSubscripts from './assign.js';\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function interprets the linear index as an index into the underlying data buffer for the array, thus returning subscripts from the perspective of that buffer. If an `offset` is equal to `0`, the function treats the linear index as an index into an array view, thus returning subscripts from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = 'throw';\n*\n* // From the perspective of a view...\n* var s = ind2sub( shape, strides, 0, order, 0, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 1, mode );\n* // returns [ 0, 1 ]\n*\n* s = ind2sub( shape, strides, 0, order, 2, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 3, mode );\n* // returns [ 1, 1 ]\n*\n* // From the perspective of an underlying buffer...\n* s = ind2sub( shape, strides, offset, order, 0, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 1, mode );\n* // returns [ 1, 1 ]\n*\n* s = ind2sub( shape, strides, offset, order, 2, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 3, mode );\n* // returns [ 0, 1 ]\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {Array} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = ind2sub( shape, strides, offset, order, 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode ) {\n\treturn getSubscripts( shape, strides, offset, order, idx, mode, zeros( shape.length ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ind2sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a linear index to an array of subscripts.\n*\n* @module @stdlib/ndarray-base-ind2sub\n*\n* @example\n* import ind2sub from '@stdlib/ndarray-base-ind2sub';\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = ind2sub( shape, strides, offset, 'row-major', 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*\n* @example\n* import ind2sub from '@stdlib/ndarray-base-ind2sub';\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub.assign( shape, strides, offset, 'row-major', 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = anynd( x, predicate, {} );\n* // returns true\n*/\nfunction anynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anynd( x, predicate, {} );\n* // returns true\n*/\nfunction anynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorany2d from './2d_blocked_accessors.js';\nimport blockedaccessorany3d from './3d_blocked_accessors.js';\nimport blockedaccessorany4d from './4d_blocked_accessors.js';\nimport blockedaccessorany5d from './5d_blocked_accessors.js';\nimport blockedaccessorany6d from './6d_blocked_accessors.js';\nimport blockedaccessorany7d from './7d_blocked_accessors.js';\nimport blockedaccessorany8d from './8d_blocked_accessors.js';\nimport blockedaccessorany9d from './9d_blocked_accessors.js';\nimport blockedaccessorany10d from './10d_blocked_accessors.js';\nimport blockedany2d from './2d_blocked.js';\nimport blockedany3d from './3d_blocked.js';\nimport blockedany4d from './4d_blocked.js';\nimport blockedany5d from './5d_blocked.js';\nimport blockedany6d from './6d_blocked.js';\nimport blockedany7d from './7d_blocked.js';\nimport blockedany8d from './8d_blocked.js';\nimport blockedany9d from './9d_blocked.js';\nimport blockedany10d from './10d_blocked.js';\nimport accessorany0d from './0d_accessors.js';\nimport accessorany1d from './1d_accessors.js';\nimport accessorany2d from './2d_accessors.js';\nimport accessorany3d from './3d_accessors.js';\nimport accessorany4d from './4d_accessors.js';\nimport accessorany5d from './5d_accessors.js';\nimport accessorany6d from './6d_accessors.js';\nimport accessorany7d from './7d_accessors.js';\nimport accessorany8d from './8d_accessors.js';\nimport accessorany9d from './9d_accessors.js';\nimport accessorany10d from './10d_accessors.js';\nimport accessoranynd from './nd_accessors.js';\nimport any0d from './0d.js';\nimport any1d from './1d.js';\nimport any2d from './2d.js';\nimport any3d from './3d.js';\nimport any4d from './4d.js';\nimport any5d from './5d.js';\nimport any6d from './6d.js';\nimport any7d from './7d.js';\nimport any8d from './8d.js';\nimport any9d from './9d.js';\nimport any10d from './10d.js';\nimport anynd from './nd.js';\n\n\n// VARIABLES //\n\nvar ANY = [\n\tany0d,\n\tany1d,\n\tany2d,\n\tany3d,\n\tany4d,\n\tany5d,\n\tany6d,\n\tany7d,\n\tany8d,\n\tany9d,\n\tany10d\n];\nvar ACCESSOR_ANY = [\n\taccessorany0d,\n\taccessorany1d,\n\taccessorany2d,\n\taccessorany3d,\n\taccessorany4d,\n\taccessorany5d,\n\taccessorany6d,\n\taccessorany7d,\n\taccessorany8d,\n\taccessorany9d,\n\taccessorany10d\n];\nvar BLOCKED_ANY = [\n\tblockedany2d, // 0\n\tblockedany3d,\n\tblockedany4d,\n\tblockedany5d,\n\tblockedany6d,\n\tblockedany7d,\n\tblockedany8d,\n\tblockedany9d,\n\tblockedany10d // 8\n];\nvar BLOCKED_ACCESSOR_ANY = [\n\tblockedaccessorany2d, // 0\n\tblockedaccessorany3d,\n\tblockedaccessorany4d,\n\tblockedaccessorany5d,\n\tblockedaccessorany6d,\n\tblockedaccessorany7d,\n\tblockedaccessorany8d,\n\tblockedaccessorany9d,\n\tblockedaccessorany10d // 8\n];\nvar MAX_DIMS = ANY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anyBy( [ x ], predicate );\n* // returns true\n*/\nfunction anyBy( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn ANY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn ANY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ANY[ ndims-2 ]( x, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_ANY[ ndims-2 ]( x, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoranynd( x, predicate, thisArg );\n\t}\n\treturn anynd( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default anyBy;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any0d( x, predicate, {} );\n* // returns true\n*/\nfunction any0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any1d( x, predicate, {} );\n* // returns true\n*/\nfunction any1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any2d( x, predicate, {} );\n* // returns true\n*/\nfunction any2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any3d( x, predicate, {} );\n* // returns true\n*/\nfunction any3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any4d( x, predicate, {} );\n* // returns true\n*/\nfunction any4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any5d( x, predicate, {} );\n* // returns true\n*/\nfunction any5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any6d( x, predicate, {} );\n* // returns true\n*/\nfunction any6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any7d( x, predicate, {} );\n* // returns true\n*/\nfunction any7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any8d( x, predicate, {} );\n* // returns true\n*/\nfunction any8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any9d( x, predicate, {} );\n* // returns true\n*/\nfunction any9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any10d( x, predicate, {} );\n* // returns true\n*/\nfunction any10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any0d( x, predicate, {} );\n* // returns true\n*/\nfunction any0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any1d( x, predicate, {} );\n* // returns true\n*/\nfunction any1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any2d( x, predicate, {} );\n* // returns true\n*/\nfunction any2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any3d( x, predicate, {} );\n* // returns true\n*/\nfunction any3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any4d( x, predicate, {} );\n* // returns true\n*/\nfunction any4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any5d( x, predicate, {} );\n* // returns true\n*/\nfunction any5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any6d( x, predicate, {} );\n* // returns true\n*/\nfunction any6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any7d( x, predicate, {} );\n* // returns true\n*/\nfunction any7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any8d( x, predicate, {} );\n* // returns true\n*/\nfunction any8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any9d( x, predicate, {} );\n* // returns true\n*/\nfunction any9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any10d( x, predicate, {} );\n* // returns true\n*/\nfunction any10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport isFunction from '@stdlib/assert-is-function';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\n\n\n// MAIN //\n\n/**\n* Tests if a value is struct constructor-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is struct constructor-like\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'foo',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var bool = isStructConstructorLike( Struct );\n* // returns true\n*\n* bool = isStructConstructorLike( [] );\n* // returns false\n*/\nfunction isStructConstructorLike( value ) {\n\treturn (\n\t\tisFunction( value ) &&\n\t\tisPositiveInteger( value.alignment ) &&\n\t\tisPositiveInteger( value.byteLength ) &&\n\t\tisFunction( value.byteLengthOf ) &&\n\t\tisFunction( value.byteOffsetOf ) &&\n\t\tisFunction( value.bufferOf ) &&\n\t\tisFunction( value.isStruct ) &&\n\t\tisFunction( value.viewOf ) &&\n\t\thasOwnProp( value, 'fields' ) &&\n\t\thasOwnProp( value, 'layout' )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isStructConstructorLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport dtypeEnums from '@stdlib/ndarray-base-dtype-enums';\n\n\n// VARIABLES //\n\nvar ENUM = dtypeEnums();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an ndarray data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( isNumber( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport enum2str from '@stdlib/ndarray-base-dtype-enum2str';\nimport str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported ndarray data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\tif ( t === 'object' && dtype ) {\n\t\treturn String( dtype );\n\t}\n\tif ( isStructConstructorLike( dtype ) ) {\n\t\treturn dtype.layout;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport SAFE_CASTS from './safe_casts.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\nfunction safeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default safeCasts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport safeCasts from '@stdlib/ndarray-safe-casts';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// VARIABLES //\n\nvar TABLE = safeCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to another ndarray data type.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be safely cast to another data type\n*\n* @example\n* var bool = isSafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isSafeCast( from, to ) {\n\tvar t;\n\tfrom = resolveStr( from );\n\tto = resolveStr( to );\n\tif ( from === to ) { // note: for \"struct\" data types, require strict equality to be considered a safe cast\n\t\treturn true;\n\t}\n\tt = TABLE[ from ];\n\tif ( t ) {\n\t\treturn t[ to ] > 0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isSafeCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport CASTS from './data.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast and, for floating-point data types, can be downcast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = mostlySafeCasts( 'float32' );\n* // returns [...]\n*/\nfunction mostlySafeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default mostlySafeCasts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport casts from '@stdlib/ndarray-mostly-safe-casts';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// VARIABLES //\n\nvar TABLE = casts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast or, for floating-point data types, downcast to another ndarray data type.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isMostlySafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isMostlySafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isMostlySafeCast( from, to ) {\n\tvar t;\n\tfrom = resolveStr( from );\n\tto = resolveStr( to );\n\tif ( from === to ) { // note: for \"struct\" data types, require strict equality to be considered a \"mostly\" safe cast\n\t\treturn true;\n\t}\n\tt = TABLE[ from ];\n\tif ( t ) {\n\t\treturn t[ to ] > 0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isMostlySafeCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport SAME_KIND_CASTS from './same_kind_casts.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of same \"kind\" casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of same \"kind\" casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast or cast within the same \"kind\".\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = sameKindCasts( 'float32' );\n* // returns [...]\n*/\nfunction sameKindCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default sameKindCasts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sameKindCasts from '@stdlib/ndarray-same-kind-casts';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// VARIABLES //\n\nvar TABLE = sameKindCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to, or is of the same \"kind\" as, another ndarray data type.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isSameKindCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSameKindCast( 'uint16', 'int16' );\n* // returns false\n*/\nfunction isSameKindCast( from, to ) {\n\tvar t;\n\tfrom = resolveStr( from );\n\tto = resolveStr( to );\n\tif ( from === to ) { // note: for \"struct\" data types, require strict equality to be considered a safe cast\n\t\treturn true;\n\t}\n\tt = TABLE[ from ];\n\tif ( t ) {\n\t\treturn t[ to ] > 0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isSameKindCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSafeCast from '@stdlib/ndarray-base-assert-is-safe-data-type-cast';\nimport isMostlySafeCast from '@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast';\nimport isSameKindCast from '@stdlib/ndarray-base-assert-is-same-kind-data-type-cast';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be cast to another ndarray data type according to a specified casting mode.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @param {string} casting - ndarray casting mode\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isAllowedCast( 'float32', 'float64', 'safe' );\n* // returns true\n*\n* bool = isAllowedCast( 'float64', 'int32', 'safe' );\n* // returns false\n*/\nfunction isAllowedCast( from, to, casting ) {\n\tvar dt1;\n\tvar dt2;\n\n\t// Anything goes for \"unsafe\" casting...\n\tif ( casting === 'unsafe' ) {\n\t\treturn true;\n\t}\n\tdt1 = resolveStr( from );\n\tdt2 = resolveStr( to );\n\n\t// \"Casting\" to the same data type is always allowed, regardless of the casting mode...\n\tif ( dt1 === dt2 ) {\n\t\treturn true;\n\t}\n\t// No casts between different data types are allowed in \"none\" or \"equiv\" casting modes...\n\tif ( casting === 'none' || casting === 'equiv' ) {\n\t\treturn false;\n\t}\n\t// In \"safe\" casting mode, only casts which preserve values are allowed...\n\tif ( casting === 'safe' ) {\n\t\treturn isSafeCast( from, to );\n\t}\n\t// In \"mostly-safe\" casting mode, in addition to \"safe\" casts, for floating-point data types, downcasts are allowed...\n\tif ( casting === 'mostly-safe' ) {\n\t\treturn isMostlySafeCast( from, to );\n\t}\n\t// In \"same-kind\" casting mode, in addition to \"safe\" casts, casts within a \"kind\" (e.g., between signed integers or between floating-point numbers) are allowed...\n\treturn isSameKindCast( from, to );\n}\n\n\n// EXPORTS //\n\nexport default isAllowedCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport getter from '@stdlib/array-base-getter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating if an array contains a search value\n*\n* @example\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\nfunction contains( x, value ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( get( x, i ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default contains;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport dtype from '@stdlib/array-dtype';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function to tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {Function} function to test if an array contains a search value\n*\n* @example\n* var contains = factory( [ 1, 2, 3 ] );\n* // returns \n*\n* var bool = contains( 2 );\n* // returns true\n*/\nfunction factory( x ) {\n\tvar get;\n\tvar len;\n\tvar dt;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', x ) );\n\t}\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\treturn ( get === void 0 ) ? contains : accessors;\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*\n\t* @example\n\t* var out = contains( [ 1, 2, 3 ], 2 );\n\t* // returns true\n\t*/\n\tfunction contains( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( x[ i ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*/\n\tfunction accessors( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( get( x, i ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {RegExp} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string-base-capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\treturn str.replace( search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if an array contains a provided search value.\n*\n* @module @stdlib/array-base-assert-contains\n*\n* @example\n* import contains from '@stdlib/array-base-assert-contains';\n*\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data type strings.\n*\n* @param {string} [kind] - data type kind\n* @returns {Array} list of ndarray data type strings\n*\n* @example\n* var list = dtypeStrings();\n* // returns [...]\n*\n* @example\n* var list = dtypeStrings( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypeStrings() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' && kind !== 'index' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypeStrings;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'boolean' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray boolean data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'binary' );\n* // returns false\n*\n* bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nfunction isBooleanDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'boolean_index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray boolean index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray boolean index data type\n*\n* @example\n* var bool = isBooleanIndexDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isBooleanIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isBooleanIndexDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmax from '@stdlib/ndarray-base-minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if a buffer length is compatible\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\nfunction isBufferLengthCompatible( len, shape, strides, offset ) {\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tvar buf = minmax( shape, strides, offset );\n\n\t// If the indices are \"inbounds\", then the buffer length is compatible:\n\treturn ( buf[ 0 ] >= 0 && buf[ 1 ] < len );\n}\n\n\n// EXPORTS //\n\nexport default isBufferLengthCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MODES from './modes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray casting modes.\n*\n* @returns {StringArray} list of ndarray casting modes\n*\n* @example\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray casting modes.\n*\n* @module @stdlib/ndarray-casting-modes\n*\n* @example\n* import modes from '@stdlib/ndarray-casting-modes';\n*\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport modes from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported casting modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `NO_CASTING == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported casting modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `casting_modes.h` enumeration!!!!\n\treturn {\n\t\t'none': 0,\n\t\t'equiv': 1,\n\t\t'safe': 2,\n\t\t'mostly-safe': 3,\n\t\t'same-kind': 4,\n\t\t'unsafe': 5\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport modes from '@stdlib/ndarray-casting-modes';\n\n\n// VARIABLES //\n\nvar MODES = modes();\nvar len = MODES.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray casting mode.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray casting mode\n*\n* @example\n* var bool = isCastingMode( 'none' );\n* // returns true\n*\n* bool = isCastingMode( 'equiv' );\n* // returns true\n*\n* bool = isCastingMode( 'safe' );\n* // returns true\n*\n* bool = isCastingMode( 'mostly-safe' );\n* // returns true\n*\n* bool = isCastingMode( 'same-kind' );\n* // returns true\n*\n* bool = isCastingMode( 'unsafe' );\n* // returns true\n*\n* bool = isCastingMode( 'foo' );\n* // returns false\n*/\nfunction isCastingMode( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === MODES[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isCastingMode;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from '@stdlib/math-base-special-abs';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is column-major\n*\n* @example\n* var bool = isColumnMajor( [ 1, 2 ] );\n* // returns true\n*\n* bool = isColumnMajor( [ 2, 1 ] );\n* // returns false\n*/\nfunction isColumnMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 < s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport minmax from '@stdlib/ndarray-base-minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is compatible with a single memory segment.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is compatible with a single memory segment\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 10 ];\n* var strides = [ 3 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns false\n*/\nfunction isSingleSegmentCompatible( shape, strides, offset ) {\n\tvar len;\n\tvar buf;\n\n\t// Compute the total number of elements:\n\tlen = numel( shape );\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tbuf = minmax( shape, strides, offset );\n\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nexport default isSingleSegmentCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'complex_floating_point' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nfunction isComplexFloatingPointDataType( v ) { // eslint-disable-line id-length\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\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\nimport replace from '@stdlib/string-base-replace';\nimport DATA from './data.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data type single letter character abbreviations.\n*\n* @param {string} [kind] - data type kind\n* @returns {Array} list of ndarray data type single letter character abbreviations\n*\n* @example\n* var list = dtypeChars();\n* // returns [...]\n*\n* @example\n* var list = dtypeChars( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypeChars() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DATA.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' && kind !== 'index' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DATA[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'o' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypeChars;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypeChars from '@stdlib/ndarray-base-dtype-chars';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type single letter character abbreviation.\n*\n* @name isComplexFloatingPointDataTypeChar\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type single letter character abbreviation\n*\n* @example\n* var bool = isComplexFloatingPointDataTypeChar( 'r' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'c' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataTypeChar( 'z' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataTypeChar( 'f' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'd' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'o' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'k' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'i' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 's' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 't' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'u' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'b' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'a' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataTypeChar = contains( dtypeChars( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataTypeChar;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported built-in ndarray data type string.\n*\n* @name isDataTypeString\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported built-in ndarray data type string\n*\n* @example\n* var bool = isDataTypeString( 'binary' );\n* // returns true\n*\n* bool = isDataTypeString( 'float32' );\n* // returns true\n*\n* bool = isDataTypeString( 'float64' );\n* // returns true\n*\n* bool = isDataTypeString( 'generic' );\n* // returns true\n*\n* bool = isDataTypeString( 'int16' );\n* // returns true\n*\n* bool = isDataTypeString( 'int32' );\n* // returns true\n*\n* bool = isDataTypeString( 'int8' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint16' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint32' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint8' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint8c' );\n* // returns true\n*\n* bool = isDataTypeString( 'foo' );\n* // returns false\n*/\nvar isDataTypeString = contains( dtypes() );\n\n\n// EXPORTS //\n\nexport default isDataTypeString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport table from './table.js';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the description for a provided data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} description(s)\n*\n* @example\n* var obj = dtypeDesc();\n* // returns {...}\n*\n* @example\n* var desc = dtypeDesc( 'float64' );\n* // returns '...'\n*\n* desc = dtypeDesc( 'generic' );\n* // returns '...'\n*/\nfunction dtypeDesc( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeDesc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport table from './table.js';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the single letter character abbreviation for an underlying array data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} single letter character abbreviation(s)\n*\n* @example\n* var obj = dtypeChar();\n* // returns {...}\n*\n* @example\n* var ch = dtypeChar( 'float64' );\n* // returns 'd'\n*\n* ch = dtypeChar( 'generic' );\n* // returns 'o'\n*/\nfunction dtypeChar( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeChar;\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\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport table from './table.js';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the alignment (in bytes) for an underlying array data type.\n*\n* ## Notes\n*\n* - If provided an unrecognized/unsupported data type, the function returns `null`.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|number|null)} alignment (in bytes)\n*\n* @example\n* var obj = dtypeAlignment();\n* // returns {...}\n*\n* @example\n* var out = dtypeAlignment( 'float64' );\n* // returns 8\n*\n* out = dtypeAlignment( 'generic' );\n* // returns null\n*/\nfunction dtypeAlignment( dtype ) {\n\tvar v;\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\tif ( dtype ) {\n\t\tv = dtype.alignment;\n\t\tif ( isPositiveInteger( v ) ) {\n\t\t\treturn v;\n\t\t}\n\t\treturn TABLE[ resolve( dtype ) ] || null;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeAlignment;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if an object has a specified property, either own or inherited.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object has a specified property\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasProp( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasProp( beep, 'bap' );\n* // returns false\n*/\nfunction hasProp( value, property ) {\n\tif ( value === void 0 || value === null ) {\n\t\treturn false;\n\t}\n\tif ( typeof property === 'symbol' ) {\n\t\treturn property in Object( value );\n\t}\n\treturn ( String( property ) in Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default hasProp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport enum2str from '@stdlib/ndarray-base-dtype-enum2str';\nimport str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\tif ( t === 'object' && dtype && isInteger( dtype.enum ) ) {\n\t\treturn dtype.enum;\n\t}\n\tif ( isStructConstructorLike( dtype ) ) {\n\t\treturn str2enum( 'userdefined_type' );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping data type strings to descriptions.\n*\n* @private\n* @returns {Object} object mapping data type strings to descriptions\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'byte',\n\n\t\t'bool': 'boolean',\n\n\t\t'complex32': 'half-precision floating-point complex number',\n\t\t'complex64': 'single-precision floating-point complex number',\n\t\t'complex128': 'double-precision floating-point complex number',\n\n\t\t'float16': 'half-precision floating-point number',\n\t\t'bfloat16': 'brain floating-point number',\n\t\t'float32': 'single-precision floating-point number',\n\t\t'float64': 'double-precision floating-point number',\n\t\t'float128': 'quadruple-precision floating-point number',\n\n\t\t'generic': 'generic array value',\n\n\t\t'int8': 'signed 8-bit integer',\n\t\t'int16': 'signed 16-bit integer',\n\t\t'int32': 'signed 32-bit integer',\n\t\t'int64': 'signed 64-bit integer',\n\t\t'int128': 'signed 128-bit integer',\n\t\t'int256': 'signed 256-bit integer',\n\n\t\t'uint8': 'unsigned 8-bit integer',\n\t\t'uint8c': 'unsigned 8-bit integer (clamped)',\n\t\t'uint16': 'unsigned 16-bit integer',\n\t\t'uint32': 'unsigned 32-bit integer',\n\t\t'uint64': 'unsigned 64-bit integer',\n\t\t'uint128': 'unsigned 128-bit integer',\n\t\t'uint256': 'unsigned 256-bit integer'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default table;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping data type strings to single letter abbreviations.\n*\n* @private\n* @returns {Object} object mapping data type string to single letter abbreviations\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'r',\n\n\t\t'bool': 'x',\n\n\t\t'complex32': 'j',\n\t\t'complex64': 'c',\n\t\t'complex128': 'z',\n\n\t\t'float16': 'h',\n\t\t'bfloat16': 'e',\n\t\t'float32': 'f',\n\t\t'float64': 'd',\n\t\t'float128': 'g',\n\n\t\t'generic': 'o',\n\n\t\t'int8': 's',\n\t\t'int16': 'k',\n\t\t'int32': 'i',\n\t\t'int64': 'l',\n\t\t'int128': 'm',\n\t\t'int256': 'n',\n\n\t\t'uint8': 'b',\n\t\t'uint8c': 'a',\n\t\t'uint16': 't',\n\t\t'uint32': 'u',\n\t\t'uint64': 'v',\n\t\t'uint128': 'w',\n\t\t'uint256': 'y'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default table;\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 an object mapping data type strings to alignments (in bytes).\n*\n* @private\n* @returns {Object} object mapping data type string to alignments (in bytes)\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 1,\n\n\t\t'bool': 1,\n\n\t\t'complex32': 2, // same as float16\n\t\t'complex64': 4, // same as float32\n\t\t'complex128': 8, // same as float64\n\n\t\t'float16': 2,\n\t\t'bfloat16': 2,\n\t\t'float32': 4,\n\t\t'float64': 8,\n\t\t'float128': 16,\n\n\t\t'generic': null,\n\n\t\t'int8': 1,\n\t\t'int16': 2,\n\t\t'int32': 4,\n\t\t'int64': 8,\n\t\t'int128': 16,\n\t\t'int256': 32,\n\n\t\t'uint8': 1,\n\t\t'uint8c': 1,\n\t\t'uint16': 2,\n\t\t'uint32': 4,\n\t\t'uint64': 8,\n\t\t'uint128': 16,\n\t\t'uint256': 32\n\t};\n}\n\n\n// EXPORTS //\n\nexport default table;\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 no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport isPlainObject from '@stdlib/assert-is-plain-object';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtype2desc from '@stdlib/ndarray-base-dtype-desc';\nimport dtype2char from '@stdlib/ndarray-base-dtype-char';\nimport dtype2alignment from '@stdlib/ndarray-base-dtype-alignment';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `DataType`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `DataType`\n*/\nfunction isDataType( value ) { // NOTE: we do not use `ndarray/base/assert/is-data-type-object` in order to avoid circular dependencies\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tvalue.constructor.name === 'DataType' &&\n\t\t\tisString( value.char ) &&\n\t\t\tisString( value.description ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// MAIN //\n\n/**\n* Data type constructor.\n*\n* @constructor\n* @param {*} value - data type value\n* @param {Options} [options] - constructor options\n* @param {string} [options.description] - data type description\n* @throws {TypeError} first argument must be a supported data type value\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {DataType} data type instance\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var str = dt.toString();\n* // returns 'float64'\n*/\nfunction DataType( value, options ) {\n\tvar nargs;\n\tvar type;\n\tvar opts;\n\n\tnargs = arguments.length;\n\tif ( !( this instanceof DataType ) ) {\n\t\tif ( nargs < 2 ) {\n\t\t\treturn new DataType( value );\n\t\t}\n\t\treturn new DataType( value, options );\n\t}\n\tif ( isDataTypeString( value ) ) {\n\t\ttype = 'builtin';\n\t} else if ( isDataType( value ) ) {\n\t\t// Clone the input data type:\n\t\treturn new DataType( value.value, {\n\t\t\t'description': value.description\n\t\t});\n\t} else if ( isStructConstructorLike( value ) ) {\n\t\ttype = 'struct';\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a supported data type string, a struct constructor, or another data type instance. Value: `%s`.', value ) );\n\t}\n\tif ( nargs > 1 ) {\n\t\topts = options;\n\t\tif ( !isPlainObject( opts ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t}\n\t\tif ( hasOwnProp( opts, 'description' ) && !isString( opts.description ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a string. Option: `%s`.', 'description', opts.description ) );\n\t\t}\n\t} else {\n\t\topts = {};\n\t}\n\tsetReadOnly( this, '_value', value );\n\tsetReadOnly( this, '_description', opts.description || ( dtype2desc( value ) || '' ) );\n\tsetReadOnly( this, '_char', dtype2char( value ) || '' );\n\tsetReadOnly( this, '_enum', resolveEnum( value ) || -1 );\n\tsetReadOnly( this, '_alignment', dtype2alignment( value ) || -1 );\n\tsetReadOnly( this, '_byteLength', bytesPerElement( value ) || -1 );\n\tsetReadOnly( this, '_byteOrder', 'host' ); // TODO: consider supporting little-endian and big-endian byte orders\n\tsetReadOnly( this, '_type', type );\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof DataType\n* @type {string}\n* @default 'DataType'\n*\n* @example\n* var v = DataType.name;\n* // returns 'DataType'\n*/\nsetReadOnly( DataType, 'name', 'DataType' );\n\n/**\n* Alignment (in bytes) for the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a known alignment, the returned value is `-1`.\n*\n* @name alignment\n* @memberof DataType.prototype\n* @readonly\n* @type {integer}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.alignment;\n* // returns 8\n*/\nsetReadOnlyAccessor( DataType.prototype, 'alignment', function get() {\n\treturn this._alignment;\n});\n\n/**\n* Size (in bytes) of the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a known size, the returned value is `-1`.\n*\n* @name byteLength\n* @memberof DataType.prototype\n* @readonly\n* @type {integer}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.byteLength;\n* // returns 8\n*/\nsetReadOnlyAccessor( DataType.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Data type byte order.\n*\n* ## Notes\n*\n* - Potential values:\n*\n* - **host**: host platform byte order.\n* - **little-endian**: little-endian byte order.\n* - **big-endian**: big-endian byte order.\n*\n* @name byteOrder\n* @memberof DataType.prototype\n* @readonly\n* @type {string}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.byteOrder;\n* // returns 'host'\n*/\nsetReadOnlyAccessor( DataType.prototype, 'byteOrder', function get() {\n\treturn this._byteOrder;\n});\n\n/**\n* Single letter character abbreviation for the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a corresponding single letter character abbreviation, the returned value is an empty string.\n*\n* @name char\n* @memberof DataType.prototype\n* @readonly\n* @type {string}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.char;\n* // returns 'd'\n*/\nsetReadOnlyAccessor( DataType.prototype, 'char', function get() {\n\treturn this._char;\n});\n\n/**\n* Data type description.\n*\n* ## Notes\n*\n* - If a data type does not have an associated description, the returned value is an empty string.\n*\n* @name description\n* @memberof DataType.prototype\n* @readonly\n* @type {string}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.description;\n* // returns \n*/\nsetReadOnlyAccessor( DataType.prototype, 'description', function get() {\n\treturn this._description;\n});\n\n/**\n* Enumeration constant for the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a corresponding known enumeration constant, the returned value is `-1`.\n*\n* @name enum\n* @memberof DataType.prototype\n* @readonly\n* @type {integer}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.enum;\n* // returns \n*/\nsetReadOnlyAccessor( DataType.prototype, 'enum', function get() {\n\treturn this._enum;\n});\n\n/**\n* Raw (original) data type value.\n*\n* @name value\n* @memberof DataType.prototype\n* @readonly\n* @type {*}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.value;\n* // returns 'float64'\n*/\nsetReadOnlyAccessor( DataType.prototype, 'value', function get() {\n\treturn this._value;\n});\n\n/**\n* Serializes a data type instance as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `DataType` instance.\n*\n* @name toJSON\n* @memberof DataType.prototype\n* @type {Function}\n* @returns {Object} serialized instance\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var o = dt.toJSON();\n* // returns {...}\n*/\nsetReadOnly( DataType.prototype, 'toJSON', function toJSON() {\n\treturn {\n\t\t'type': 'DataType',\n\t\t'value': this.toString(),\n\t\t'byteOrder': this._byteOrder,\n\t\t'description': this._description\n\t};\n});\n\n/**\n* Serializes a data type instance to a string.\n*\n* @name toString\n* @memberof DataType.prototype\n* @type {Function}\n* @returns {string} serialized string\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.toString();\n* // returns 'float64'\n*/\nsetReadOnly( DataType.prototype, 'toString', function toString() {\n\treturn ( this._type === 'struct' ) ? this._value.layout : String( this._value );\n});\n\n/**\n* Converts a data type instance to a primitive value.\n*\n* @name valueOf\n* @memberof DataType.prototype\n* @type {Function}\n* @returns {string} primitive value\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.valueOf();\n* // returns 'float64'\n*/\nsetReadOnly( DataType.prototype, 'valueOf', function valueOf() {\n\treturn this.toString();\n});\n\n\n// EXPORTS //\n\nexport default DataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray struct data type.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray struct data type\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var Struct = structFactory([\n* {\n* 'name': 'foo',\n* 'type': 'float64'\n* }\n* ]);\n*\n* var bool = isStructDataType( Struct );\n* // returns true\n*\n* bool = isStructDataType( 'binary' );\n* // returns false\n*\n* bool = isStructDataType( 'float32' );\n* // returns false\n*\n* bool = isStructDataType( 'float64' );\n* // returns false\n*\n* bool = isStructDataType( 'generic' );\n* // returns false\n*\n* bool = isStructDataType( 'int16' );\n* // returns false\n*\n* bool = isStructDataType( 'int32' );\n* // returns false\n*\n* bool = isStructDataType( 'int8' );\n* // returns false\n*\n* bool = isStructDataType( 'uint16' );\n* // returns false\n*\n* bool = isStructDataType( 'uint32' );\n* // returns false\n*\n* bool = isStructDataType( 'uint8' );\n* // returns false\n*\n* bool = isStructDataType( 'uint8c' );\n* // returns false\n*\n* bool = isStructDataType( 'foo' );\n* // returns false\n*/\nfunction isStructDataType( value ) {\n\treturn (\n\t\tisFunction( value ) &&\n\t\tisPositiveInteger( value.alignment ) &&\n\t\tisPositiveInteger( value.byteLength ) &&\n\t\tisFunction( value.byteLengthOf ) &&\n\t\tisFunction( value.byteOffsetOf ) &&\n\t\tisFunction( value.bufferOf ) &&\n\t\tisFunction( value.viewOf )\n\t) || (\n\t\tisDataTypeObject( value ) &&\n\t\tisStructDataType( value.value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isStructDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether two values are equal ndarray data types.\n*\n* @param {*} v1 - first input value\n* @param {*} v2 - second input value\n* @returns {boolean} boolean indicating whether two input values are equal ndarray data types\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isEqualDataType( 'binary', 'binary' );\n* // returns true\n*\n* bool = isEqualDataType( 'float32', 'float32' );\n* // returns true\n*\n* bool = isEqualDataType( 'float64', new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isEqualDataType( 'generic', new DataType( 'generic' ) );\n* // returns true\n*\n* bool = isEqualDataType( 'int16', 'int32' );\n* // returns false\n*\n* bool = isEqualDataType( 'int32', new DataType( 'int16' ) );\n* // returns false\n*/\nfunction isEqualDataType( v1, v2 ) {\n\tif ( isDataTypeString( v1 ) ) {\n\t\t// Nothing to do here. Branch is kept to avoid additional assertion logic for what is expected to be a common use case; namely, comparing data type strings...\n\t} else if ( isDataTypeObject( v1 ) ) {\n\t\tv1 = String( v1 );\n\t} else if ( isStructDataType( v1 ) ) {\n\t\tv1 = v1.layout;\n\t} else {\n\t\treturn false;\n\t}\n\tif ( isDataTypeString( v2 ) ) {\n\t\t// Nothing to do here. Branch is kept to avoid additional assertion logic for what is expected to be a common use case; namely, comparing data type strings...\n\t} else if ( isDataTypeObject( v2 ) ) {\n\t\tv2 = String( v2 );\n\t} else if ( isStructDataType( v2 ) ) {\n\t\tv2 = v2.layout;\n\t} else {\n\t\treturn false;\n\t}\n\treturn ( v1 === v2 );\n}\n\n\n// EXPORTS //\n\nexport default isEqualDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'floating_point' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray floating-point data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray floating-point data type\n*\n* @example\n* var bool = isFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'foo' );\n* // returns false\n*/\nfunction isFloatingPointDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isFloatingPointDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index data type\n*\n* @example\n* var bool = isIndexDataType( 'binary' );\n* // returns false\n*\n* bool = isIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isIndexDataType( 'generic' );\n* // returns true\n*\n* bool = isIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isIndexDataType( 'int32' );\n* // returns true\n*\n* bool = isIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isIndexDataType( 'uint8' );\n* // returns true\n*\n* bool = isIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isIndexDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MODES from './modes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray index modes.\n*\n* @returns {StringArray} list of ndarray index modes\n*\n* @example\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported index modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `throw == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported index modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `index_modes.h` enumeration!!!!\n\treturn {\n\t\t'throw': 1,\n\t\t'clamp': 2,\n\t\t'wrap': 3,\n\t\t'normalize': 4\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray index modes.\n*\n* @module @stdlib/ndarray-index-modes\n*\n* @example\n* import modes from '@stdlib/ndarray-index-modes';\n*\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport modes from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport modes from '@stdlib/ndarray-index-modes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index mode.\n*\n* @name isIndexMode\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index mode\n*\n* @example\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\n* // returns false\n*/\nvar isIndexMode = contains( modes() );\n\n\n// EXPORTS //\n\nexport default isIndexMode;\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\nimport POLICIES from './policies.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of input ndarray casting policies.\n*\n* @returns {StringArray} list of policies\n*\n* @example\n* var list = policies();\n* // returns [...]\n*/\nfunction policies() {\n\treturn POLICIES.slice();\n}\n\n\n// EXPORTS //\n\nexport default policies;\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 an object mapping supported policy strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `NONE == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @private\n* @returns {Object} object mapping supported policies to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `input_casting_policies.h` enumeration!!!!\n\treturn {\n\t\t'none': 0,\n\t\t'promoted': 1,\n\t\t'accumulation': 2,\n\t\t'output': 3\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\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* Return a list of input ndarray casting policies.\n*\n* @module @stdlib/ndarray-input-casting-policies\n*\n* @example\n* import policies from '@stdlib/ndarray-input-casting-policies';\n*\n* var list = policies();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport policies from '@stdlib/ndarray-input-casting-policies';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported input ndarray casting policy.\n*\n* @name isInputCastingPolicy\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported input ndarray casting policy\n*\n* @example\n* var bool = isInputCastingPolicy( 'none' );\n* // returns true\n*\n* bool = isInputCastingPolicy( 'promoted' );\n* // returns true\n*\n* bool = isInputCastingPolicy( 'output' );\n* // returns true\n*\n* bool = isInputCastingPolicy( 'foo' );\n* // returns false\n*/\nvar isInputCastingPolicy = contains( policies() );\n\n\n// EXPORTS //\n\nexport default isInputCastingPolicy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'integer' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray integer data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray integer data type\n*\n* @example\n* var bool = isIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isIntegerDataType( 'foo' );\n* // returns false\n*/\nfunction isIntegerDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isIntegerDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'integer_index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray integer index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray integer index data type\n*\n* @example\n* var bool = isIntegerIndexDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint8' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isIntegerIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isIntegerIndexDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'mask_index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray mask index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray mask index data type\n*\n* @example\n* var bool = isMaskIndexDataType( 'binary' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'generic' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'int32' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'uint8' );\n* // returns true\n*\n* bool = isMaskIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isMaskIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isMaskIndexDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'numeric' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray numeric data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray numeric data type\n*\n* @example\n* var bool = isNumericDataType( 'binary' );\n* // returns false\n*\n* bool = isNumericDataType( 'float32' );\n* // returns true\n*\n* bool = isNumericDataType( 'float64' );\n* // returns true\n*\n* bool = isNumericDataType( 'generic' );\n* // returns false\n*\n* bool = isNumericDataType( 'int16' );\n* // returns true\n*\n* bool = isNumericDataType( 'int32' );\n* // returns true\n*\n* bool = isNumericDataType( 'int8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint16' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint32' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8c' );\n* // returns true\n*\n* bool = isNumericDataType( 'foo' );\n* // returns false\n*/\nfunction isNumericDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isNumericDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ORDERS from './orders.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray orders.\n*\n* @returns {StringArray} list of ndarray orders\n*\n* @example\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction orders() {\n\treturn ORDERS.slice();\n}\n\n\n// EXPORTS //\n\nexport default orders;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported layouts to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 101`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of array objects.\n*\n* @returns {Object} object mapping supported layouts to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `layouts.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 101,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 102\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of BLAS memory layouts.\n*\n* @module @stdlib/blas-base-layouts\n*\n* @example\n* import layouts from '@stdlib/blas-base-layouts';\n*\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DATA from './data.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of BLAS memory layouts.\n*\n* @returns {StringArray} list of memory layouts\n*\n* @example\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction layouts() {\n\treturn DATA.slice();\n}\n\n\n// EXPORTS //\n\nexport default layouts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { enum as layouts } from '@stdlib/blas-base-layouts';\n\n\n// VARIABLES //\n\nvar LAYOUTS = layouts();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported orders to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported orders to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `orders.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': LAYOUTS[ 'row-major' ],\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': LAYOUTS[ 'column-major' ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray orders.\n*\n* @module @stdlib/ndarray-orders\n*\n* @example\n* import orders from '@stdlib/ndarray-orders';\n*\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport orders from '@stdlib/ndarray-orders';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray order.\n*\n* @name isOrder\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray order\n*\n* @example\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\nvar isOrder = contains( orders() );\n\n\n// EXPORTS //\n\nexport default isOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport POLICIES from './policies.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of output ndarray data type policies.\n*\n* @returns {StringArray} list of ndarray data type policies\n*\n* @example\n* var list = policies();\n* // returns [...]\n*/\nfunction policies() {\n\treturn POLICIES.slice();\n}\n\n\n// EXPORTS //\n\nexport default policies;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type policy strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @private\n* @returns {Object} object mapping supported dtype policies to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `output_dtype_policies.h` enumeration!!!!\n\treturn {\n\t\t'same': 0,\n\t\t'promoted': 1,\n\t\t'accumulation': 2,\n\t\t'boolean': 3,\n\t\t'boolean_and_generic': 4,\n\t\t'signed_integer': 5,\n\t\t'signed_integer_and_generic': 6,\n\t\t'unsigned_integer': 7,\n\t\t'unsigned_integer_and_generic': 8,\n\t\t'integer': 9,\n\t\t'integer_and_generic': 10,\n\t\t'floating_point': 11,\n\t\t'floating_point_and_generic': 12,\n\t\t'real_floating_point': 13,\n\t\t'real_floating_point_and_generic': 14,\n\t\t'complex_floating_point': 15,\n\t\t'complex_floating_point_and_generic': 16,\n\t\t'real': 17,\n\t\t'real_and_generic': 18,\n\t\t'numeric': 19,\n\t\t'numeric_and_generic': 20,\n\t\t'integer_index': 21,\n\t\t'integer_index_and_generic': 22,\n\t\t'boolean_index': 23,\n\t\t'boolean_index_and_generic': 24,\n\t\t'mask_index': 25,\n\t\t'mask_index_and_generic': 26,\n\t\t'default': 27,\n\t\t'default_index': 28\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of output ndarray data type policies.\n*\n* @module @stdlib/ndarray-output-dtype-policies\n*\n* @example\n* import policies from '@stdlib/ndarray-output-dtype-policies';\n*\n* var list = policies();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport policies from '@stdlib/ndarray-output-dtype-policies';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray output data type policy.\n*\n* @name isOutputDataTypePolicy\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray output data type policy\n*\n* @example\n* var bool = isOutputDataTypePolicy( 'boolean' );\n* // returns true\n*\n* bool = isOutputDataTypePolicy( 'real' );\n* // returns true\n*\n* bool = isOutputDataTypePolicy( 'numeric' );\n* // returns true\n*\n* bool = isOutputDataTypePolicy( 'foo' );\n* // returns false\n*/\nvar isOutputDataTypePolicy = contains( policies() );\n\n\n// EXPORTS //\n\nexport default isOutputDataTypePolicy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\nvar bool = isFunction( Object.assign ); // eslint-disable-line node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies own enumerable properties from source objects to a target object.\n*\n* ## Notes\n*\n* - If a property key is present in multiple sources, the property from the last source that defines the key prevails.\n* - The target object is mutated.\n* - Both string and symbol properties are copied.\n*\n* @name assign\n* @type {Function}\n* @param {Object} target - target object\n* @param {...Object} source - source object(s)\n* @throws {TypeError} first argument must not be null or undefined\n* @returns {Object} target object\n*\n* @example\n* var obj1 = {\n* 'a': 'beep'\n* };\n* var obj2 = {\n* 'b': 'boop'\n* };\n*\n* var out = assign( obj1, obj2 );\n* // returns { 'a': 'beep', 'b': 'boop' }\n*/\nvar assign = Object.assign; // eslint-disable-line node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar bool = ( typeof Object.getOwnPropertySymbols !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Object from '@stdlib/object-ctor';\n\n\n// VARIABLES //\n\nvar propertySymbols = Object.getOwnPropertySymbols;\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own symbol properties.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.getOwnPropertySymbols()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own symbol properties\n*\n* @example\n* var symbols = getOwnPropertySymbols( {} );\n*/\nfunction getOwnPropertySymbols( value ) {\n\treturn propertySymbols( Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default getOwnPropertySymbols;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an array of an object's own symbol properties.\n*\n* @module @stdlib/utils-property-symbols\n*\n* @example\n* import getOwnPropertySymbols from '@stdlib/utils-property-symbols';\n*\n* var symbols = getOwnPropertySymbols( {} );\n*/\n\n// MODULES //\n\nimport HAS_BUILTIN from './has_builtin.js';\nimport builtin from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( HAS_BUILTIN ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Copy enumerable own properties from one or more source objects to a target object.\n*\n* @module @stdlib/object-assign\n*\n* @example\n* import assign from '@stdlib/object-assign';\n*\n* var out = assign( {}, { 'foo': 'bar' }, { 'baz': 'beep' } );\n* // returns { 'foo': 'bar', 'baz': 'beep' }\n*/\n\n// MODULES //\n\nimport hasObjectAssign from './has_object_assign.js';\nimport main from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar assign;\nif ( hasObjectAssign ) {\n\tassign = main;\n} else {\n\tassign = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an array of an object's own symbol properties.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.getOwnPropertySymbols()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {EmptyArray} a list of own symbol properties\n*\n* @example\n* var symbols = getOwnPropertySymbols( {} );\n* // returns []\n*/\nfunction getOwnPropertySymbols() {\n\treturn [];\n}\n\n\n// EXPORTS //\n\nexport default getOwnPropertySymbols;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport keys from '@stdlib/utils-keys';\nimport propertySymbols from '@stdlib/utils-property-symbols';\nimport isEnumerable from '@stdlib/assert-is-enumerable-property';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names and symbols.\n*\n* @param {*} value - input object\n* @returns {Array} a list of own property enumerable names and symbols\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var props = enumerableProperties( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction enumerableProperties( value ) {\n\tvar out;\n\tvar tmp;\n\tvar i;\n\n\tout = keys( value );\n\ttmp = propertySymbols( value );\n\tfor ( i = 0; i < tmp.length; i++ ) {\n\t\tif ( isEnumerable( value, tmp[ i ] ) ) {\n\t\t\tout.push( tmp[ i ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default enumerableProperties;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport enumerableProperties from '@stdlib/utils-enumerable-properties';\nimport Object from '@stdlib/object-ctor';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Copies own enumerable properties from source objects to a target object.\n*\n* ## Notes\n*\n* - If a property key is present in multiple sources, the property from the last source that defines the key prevails.\n* - The target object is mutated.\n* - Both string and symbol properties are copied.\n*\n* @param {Object} target - target object\n* @param {...Object} source - source object(s)\n* @throws {TypeError} first argument must not be null or undefined\n* @returns {Object} target object\n*\n* @example\n* var obj1 = {\n* 'a': 'beep'\n* };\n* var obj2 = {\n* 'b': 'boop'\n* };\n*\n* var out = assign( obj1, obj2 );\n* // returns { 'a': 'beep', 'b': 'boop' }\n*/\nfunction assign( target ) {\n\tvar source;\n\tvar keys;\n\tvar key;\n\tvar len;\n\tvar to;\n\tvar i;\n\tvar j;\n\tif ( target === void 0 || target === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a non-null object. Value: `%s`.', target ) );\n\t}\n\tto = Object( target );\n\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\tsource = arguments[ i ];\n\t\tif ( source === void 0 || source === null ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tkeys = enumerableProperties( Object( source ) );\n\t\tlen = keys.length;\n\t\tfor ( j = 0; j < len; j++ ) {\n\t\t\tkey = keys[ j ];\n\t\t\tto[ key ] = source[ key ];\n\t\t}\n\t}\n\treturn to;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from '@stdlib/object-assign';\n\n\n// MAIN //\n\n/**\n* Returns the flags of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `flags` property\n* @returns {Object} flags\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = flags( zeros( [ 3, 3, 3 ] ), false );\n* // returns {...}\n*/\nfunction flags( x, copy ) {\n\tvar f = x.flags;\n\tif ( typeof f !== 'object' || f === null ) {\n\t\treturn {};\n\t}\n\tif ( copy ) {\n\t\treturn assign( {}, f );\n\t}\n\treturn f;\n}\n\n\n// EXPORTS //\n\nexport default flags;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport flags from '@stdlib/ndarray-base-flags';\n\n\n// MAIN //\n\n/**\n* Returns a specified flag for a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {(string|symbol)} name - flag name\n* @returns {*} flag value\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = flag( zeros( [ 3, 3, 3 ] ), 'READONLY' );\n* // returns \n*/\nfunction flag( x, name ) {\n\treturn flags( x, false )[ name ];\n}\n\n\n// EXPORTS //\n\nexport default flag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport flag from '@stdlib/ndarray-base-flag';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray is read-only.\n*\n* @param {ndarray} arr - input ndarray\n* @returns {boolean} boolean indicating whether an ndarray is read-only\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1, 2, 3, 4 ], {\n* 'readonly': true\n* });\n* var bool = isReadOnly( x );\n* // returns true\n*\n* x = array( [ 1, 2, 3, 4 ] );\n* bool = isReadOnly( x );\n* // returns false\n*/\nfunction isReadOnly( arr ) {\n\treturn ( flag( arr, 'READONLY' ) === true );\n}\n\n\n// EXPORTS //\n\nexport default isReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'real' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nfunction isRealDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'real_floating_point' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued floating-point data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued floating-point data type\n*\n* @example\n* var bool = isRealFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\n* // returns false\n*/\nfunction isRealFloatingPointDataType( v ) { // eslint-disable-line id-length\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isRealFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from '@stdlib/math-base-special-abs';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is row-major\n*\n* @example\n* var bool = isRowMajor( [ 2, 1 ] );\n* // returns true\n*\n* bool = isRowMajor( [ 1, 2 ] );\n* // returns false\n*/\nfunction isRowMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 > s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isRowMajor;\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* Tests whether an input value is the string representing row-major order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean result\n*\n* @example\n* var bool = isRowMajorString( 'row-major' );\n* // returns true\n*\n* bool = isRowMajorString( 'column-major' );\n* // returns false\n*\n* bool = isRowMajorString( 'foo' );\n* // returns false\n*/\nfunction isRowMajorString( v ) {\n\treturn ( v === 'row-major' );\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var v = min( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = min( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = min( NaN, 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = min( -0.0, +0.0 );\n* // returns +0.0\n*\n* @example\n* var v = min( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction min( x, y ) {\n\tif ( x < y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @module @stdlib/array-buffer\n*\n* @example\n* import ctor from '@stdlib/array-buffer';\n*\n* var buf = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasArrayBufferSupport from '@stdlib/assert-has-arraybuffer-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport Float64Array from '@stdlib/array-float64';\nimport GlobalArrayBuffer from './arraybuffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `ArrayBuffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `ArrayBuffer` support\n*\n* @example\n* var bool = hasArrayBufferSupport();\n* // returns \n*/\nfunction hasArrayBufferSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalArrayBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new GlobalArrayBuffer( 16 );\n\t\tbool = ( isArrayBuffer( buf ) && typeof GlobalArrayBuffer.isView === 'function' );\n\t\tif ( bool ) {\n\t\t\tview = new Float64Array( buf );\n\t\t\tview[ 0 ] = -3.14;\n\t\t\tview[ 1 ] = NaN;\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tGlobalArrayBuffer.isView( view ) &&\n\t\t\t\tbuf.byteLength === 16 &&\n\t\t\t\tview[ 0 ] === -3.14 &&\n\t\t\t\tview[ 1 ] !== view[ 1 ]\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasArrayBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasDataView = ( typeof DataView === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `DataView`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a DataView\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n* import DataView from '@stdlib/array-dataview';\n*\n* var bool = isDataView( new DataView( new ArrayBuffer( 10 ) ) );\n* // returns true\n*\n* @example\n* var bool = isDataView( [] );\n* // returns false\n*/\nfunction isDataView( value ) {\n\treturn (\n\t\t( hasDataView && value instanceof DataView ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object DataView]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataView;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof DataView === 'function' ) ? DataView : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof DataView === 'function' ) ? DataView : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @module @stdlib/array-dataview\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n* import DataView from '@stdlib/array-dataview';\n*\n* var buf = new ArrayBuffer( 10 );\n* // returns \n*\n* var dv = new DataView( buf );\n* // returns \n*/\n\n// MODULES //\n\nimport hasDataViewSupport from '@stdlib/assert-has-dataview-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasDataViewSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataView from '@stdlib/assert-is-dataview';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport GlobalDataView from './dataview.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `DataView` support.\n*\n* @returns {boolean} boolean indicating if an environment has `DataView` support\n*\n* @example\n* var bool = hasDataViewSupport();\n* // returns \n*/\nfunction hasDataViewSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalDataView !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new ArrayBuffer( 24 );\n\t\tview = new GlobalDataView( buf, 8 );\n\t\tbool = ( isDataView( view ) && typeof view.getFloat64 === 'function' && typeof view.setFloat64 === 'function' );\n\t\tif ( bool ) {\n\t\t\tview.setFloat64( 0, -3.14 );\n\t\t\tview.setFloat64( 8, NaN );\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tview.buffer === buf &&\n\t\t\t\tview.byteLength === 16 &&\n\t\t\t\tview.byteOffset === 8 &&\n\t\t\t\tview.getFloat64( 0 ) === -3.14 &&\n\t\t\t\tview.getFloat64( 8 ) !== view.getFloat64( 8 )\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasDataViewSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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// Define a property name which is unlikely to be used in end user code:\nvar PRIVATE_BUFFER = '__@@##$$@@__struct_buffer__@@$$##@@__';\n\n\n// EXPORTS //\n\nexport default PRIVATE_BUFFER;\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\nvar CTOR_NAME = 'Struct';\n\n\n// EXPORTS //\n\nexport default CTOR_NAME;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-write accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - get accessor\n* @param {Function} setter - set accessor\n*\n* @example\n* function getter() {\n* return name + ' foo';\n* }\n*\n* function setter( v ) {\n* name = v;\n* }\n*\n* var name = 'bar';\n* var obj = {};\n*\n* setNonEnumerableReadWriteAccessor( obj, 'foo', getter, setter );\n*\n* var v = obj.foo;\n* // returns 'bar foo'\n*\n* obj.foo = 'beep';\n*\n* v = obj.foo;\n* // returns 'beep foo'\n*/\nfunction setNonEnumerableReadWriteAccessor( obj, prop, getter, setter ) { // eslint-disable-line id-length\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'get': getter,\n\t\t'set': setter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadWriteAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-only accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - accessor\n*\n* @example\n* function getter() {\n* return 'bar';\n* }\n*\n* var obj = {};\n*\n* setReadOnlyAccessor( obj, 'foo', getter );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setReadOnlyAccessor( obj, prop, getter ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'get': getter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadOnlyAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-write accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - get accessor\n* @param {Function} setter - set accessor\n*\n* @example\n* function getter() {\n* return name + ' foo';\n* }\n*\n* function setter( v ) {\n* name = v;\n* }\n*\n* var name = 'bar';\n* var obj = {};\n*\n* setReadWriteAccessor( obj, 'foo', getter, setter );\n*\n* var v = obj.foo;\n* // returns 'bar foo'\n*\n* obj.foo = 'beep';\n*\n* v = obj.foo;\n* // returns 'beep foo'\n*/\nfunction setReadWriteAccessor( obj, prop, getter, setter ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'get': getter,\n\t\t'set': setter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadWriteAccessor;\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\nvar DATA_VIEW_METHODS = {\n\t'int8': {\n\t\t'get': 'getInt8',\n\t\t'set': 'setInt8'\n\t},\n\t'int16': {\n\t\t'get': 'getInt16',\n\t\t'set': 'setInt16'\n\t},\n\t'int32': {\n\t\t'get': 'getInt32',\n\t\t'set': 'setInt32'\n\t},\n\t'int64': {\n\t\t'get': 'getBigInt64',\n\t\t'set': 'setBigInt64'\n\t},\n\t'uint8': {\n\t\t'get': 'getUint8',\n\t\t'set': 'setUint8'\n\t},\n\t'uint16': {\n\t\t'get': 'getUint16',\n\t\t'set': 'setUint16'\n\t},\n\t'uint32': {\n\t\t'get': 'getUint32',\n\t\t'set': 'setUint32'\n\t},\n\t'uint64': {\n\t\t'get': 'getBigUint64',\n\t\t'set': 'setBigUint64'\n\t},\n\t'float16': {\n\t\t'get': 'getFloat16',\n\t\t'set': 'setFloat16'\n\t},\n\t'float32': {\n\t\t'get': 'getFloat32',\n\t\t'set': 'setFloat32'\n\t},\n\t'float64': {\n\t\t'get': 'getFloat64',\n\t\t'set': 'setFloat64'\n\t},\n\t'complex32': {\n\t\t'get': 'getFloat16',\n\t\t'set': 'setFloat16'\n\t},\n\t'complex64': {\n\t\t'get': 'getFloat32',\n\t\t'set': 'setFloat32'\n\t},\n\t'complex128': {\n\t\t'get': 'getFloat64',\n\t\t'set': 'setFloat64'\n\t},\n\t'bool': {\n\t\t'get': 'getUint8',\n\t\t'set': 'setUint8'\n\t}\n};\n\n\n// EXPORTS //\n\nexport default DATA_VIEW_METHODS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from './ctors.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if an environment is little endian.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment is little endian\n*\n* @example\n* var bool = isLittleEndian();\n* // returns \n*/\nfunction isLittleEndian() {\n\tvar uint16view;\n\tvar uint8view;\n\n\tuint16view = new ctors[ 'uint16' ]( 1 );\n\n\t/*\n\t* Set the uint16 view to a value having distinguishable lower and higher order words.\n\t*\n\t* 4660 => 0x1234 => 0x12 0x34 => '00010010 00110100' => (0x12,0x34) == (18,52)\n\t*/\n\tuint16view[ 0 ] = 0x1234;\n\n\t// Create a uint8 view on top of the uint16 buffer:\n\tuint8view = new ctors[ 'uint8' ]( uint16view.buffer );\n\n\t// If little endian, the least significant byte will be first...\n\treturn ( uint8view[ 0 ] === 0x34 );\n}\n\n\n// MAIN //\n\nbool = isLittleEndian();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint16Array from '@stdlib/array-uint16';\n\n\n// MAIN //\n\nvar ctors = {\n\t'uint16': Uint16Array,\n\t'uint8': Uint8Array\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex64 from '@stdlib/complex-float32-ctor';\nimport Complex128 from '@stdlib/complex-float64-ctor';\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns a complex number constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'complex128' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'complex' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from '@stdlib/complex-ctors';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'float64': 'complex128',\n\t'float32': 'complex64'\n};\nvar DEFAULT_CTOR = ctors( TABLE[ 'float64' ] );\n\n\n// MAIN //\n\n/**\n* Creates a complex number.\n*\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {Complex} complex number\n*\n* @example\n* var z = complex( 5.0, 3.0, 'float64' );\n* // returns \n*/\nfunction complex( real, imag, dtype ) {\n\tvar ctor;\n\tif ( arguments.length > 2 ) {\n\t\tctor = ctors( TABLE[ dtype ] );\n\t\tif ( ctor ) {\n\t\t\treturn new ctor( real, imag );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new DEFAULT_CTOR( real, imag );\n}\n\n\n// EXPORTS //\n\nexport default complex;\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 no-invalid-this, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport complex from '@stdlib/complex-cmplx';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// VARIABLES //\n\nvar CMPLX_TO_REAL = {\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for resolving field data\n*/\nfunction getComplex( obj, method ) {\n\treturn getter;\n\n\t/**\n\t* Reads a complex number from an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {Complex} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\tvar re = view[ method ]( obj.byteOffset, IS_LITTLE_ENDIAN );\n\t\tvar im = view[ method ]( obj.byteOffset+(obj.byteLength/2), IS_LITTLE_ENDIAN );\n\t\treturn complex( re, im, CMPLX_TO_REAL[ obj.type ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getComplex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Int16Array from '@stdlib/array-int16';\nimport Int32Array from '@stdlib/array-int32';\nimport Int8Array from '@stdlib/array-int8';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns a typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 array settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32',\n\t\t\t'boolean': 'bool',\n\t\t\t'index': 'int32',\n\t\t\t'integer_index': 'int32',\n\t\t\t'boolean_index': 'bool',\n\t\t\t'mask_index': 'uint8'\n\t\t}\n\t};\n}\n\n\n// EXPORTS //\n\nexport default defaults;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defaults from './main.js';\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'dtypes.boolean': DEFAULTS.dtypes.boolean,\n\t'dtypes.index': DEFAULTS.dtypes.index,\n\t'dtypes.integer_index': DEFAULTS.dtypes.integer_index,\n\t'dtypes.boolean_index': DEFAULTS.dtypes.boolean_index,\n\t'dtypes.mask_index': DEFAULTS.dtypes.mask_index\n};\n\n\n// MAIN //\n\n/**\n* Returns a default array setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return default array settings.\n*\n* @module @stdlib/array-defaults\n*\n* @example\n* import defaults from '@stdlib/array-defaults';\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport get from './get.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport ctors from '@stdlib/array-typed-ctors';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport defaults from '@stdlib/array-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\nvar Complex64Array = ctors( 'complex64' );\nvar Complex128Array = ctors( 'complex128' );\nvar BooleanArray = ctors( 'bool' );\n\n\n// MAIN //\n\n/**\n* Creates a typed array.\n*\n* @param {(NonNegativeInteger|ComplexArray|TypedArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {(ComplexArray|TypedArray)} typed array\n*\n* @example\n* var arr = typedarray();\n* // returns \n*\n* @example\n* var arr = typedarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var arr = typedarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\nfunction typedarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\n\t\t// Note: the following checks are not particularly robust, as `instanceof` will fail for cross-realm instances...\n\t\tif ( arg instanceof Complex64Array ) {\n\t\t\targ = reinterpret64( arg, 0 );\n\t\t} else if ( arg instanceof Complex128Array ) {\n\t\t\targ = reinterpret128( arg, 0 );\n\t\t} else if ( arg instanceof BooleanArray ) {\n\t\t\targ = reinterpretBoolean( arg, 0 );\n\t\t}\n\t\treturn new ctor( arg );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nexport default typedarray;\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\nimport format from '@stdlib/string-format';\nimport DATA_VIEW_METHODS from './data_view_methods.js';\nimport getNumber from './get_number.js';\nimport getBoolean from './get_boolean.js';\nimport getComplex from './get_complex.js';\nimport getBigInt from './get_bigint.js';\nimport getStruct from './get_struct.js';\nimport getTypedArray from './get_typedarray.js';\nimport getStructArray from './get_struct_array.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @throws {Error} unexpected error\n* @returns {Function} function for resolving field data\n*/\nfunction getter( obj ) {\n\tif ( obj.length ) {\n\t\tif ( obj.isStructType ) {\n\t\t\treturn getStructArray( obj );\n\t\t}\n\t\treturn getTypedArray( obj );\n\t}\n\tswitch ( obj.type ) {\n\tcase 'float64':\n\tcase 'float32':\n\tcase 'float16':\n\tcase 'int8':\n\tcase 'int16':\n\tcase 'int32':\n\tcase 'uint8':\n\tcase 'uint16':\n\tcase 'uint32':\n\t\treturn getNumber( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tcase 'int64':\n\tcase 'uint64':\n\t\treturn getBigInt( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tcase 'bool':\n\t\treturn getBoolean( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tcase 'complex128':\n\tcase 'complex64':\n\tcase 'complex32':\n\t\treturn getComplex( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tdefault:\n\t\tif ( obj.isStructType ) {\n\t\t\treturn getStruct( obj );\n\t\t}\n\t\t// Ensure that we fail loudly if we have failed to add support for newly added data types:\n\t\tthrow new Error( format( 'unexpected error. Unrecognized data type. Value: `%s`.', obj.type ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getter;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for resolving field data\n*/\nfunction getStructArray( obj ) {\n\treturn getter;\n\n\t/**\n\t* Returns a list of `struct` views of an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {Array} result\n\t*/\n\tfunction getter() {\n\t\tvar offset;\n\t\tvar view;\n\t\tvar out;\n\t\tvar i;\n\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\toffset = view.byteOffset + obj.byteOffset;\n\t\tout = [];\n\t\tfor ( i = 0; i < obj.length; i++ ) {\n\t\t\tout.push( new obj.type( view.buffer, offset, obj.byteLength ) );\n\t\t\toffset += obj.byteOffset;\n\t\t}\n\t\treturn out;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getStructArray;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport typedarray from '@stdlib/array-typed';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for resolving field data\n*/\nfunction getTypedArray( obj ) {\n\treturn getter;\n\n\t/**\n\t* Returns a typed array view of an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {TypedArray} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn typedarray( view.buffer, view.byteOffset+obj.byteOffset, obj.length, obj.type ); // eslint-disable-line max-len\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getTypedArray;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for resolving field data\n*/\nfunction getBigInt( obj, method ) {\n\treturn getter;\n\n\t/**\n\t* Reads a BigInt value from an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {BigInt} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn view[ method ]( obj.byteOffset, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getBigInt;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport Boolean from '@stdlib/boolean-ctor';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for resolving field data\n*/\nfunction getBoolean( obj, method ) {\n\treturn getter;\n\n\t/**\n\t* Reads a boolean value from an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {boolean} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn Boolean( view[ method ]( obj.byteOffset, IS_LITTLE_ENDIAN ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getBoolean;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for resolving field data\n*/\nfunction getStruct( obj ) {\n\treturn getter;\n\n\t/**\n\t* Returns a `struct` view of an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {Object} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn new obj.type( view.buffer, view.byteOffset+obj.byteOffset, obj.byteLength ); // eslint-disable-line max-len\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getStruct;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', ... ]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' && kind !== 'index' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array real-valued floating-point data type.\n*\n* @name isRealFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array real-valued floating-point data type\n*\n* @example\n* var bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isRealFloatingPointDataType = contains( dtypes( 'real_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isRealFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array signed integer data type.\n*\n* @name isSignedIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array signed integer data type\n*\n* @example\n* var bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isSignedIntegerDataType = contains( dtypes( 'signed_integer' ) );\n\n\n// EXPORTS //\n\nexport default isSignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getGlobal from '@stdlib/utils-global';\n\n\n// VARIABLES //\n\nvar Global = getGlobal();\n\n\n// MAIN //\n\n/**\n* Tests for native `BigInt` support.\n*\n* @returns {boolean} boolean indicating if an environment has `BigInt` support\n*\n* @example\n* var bool = hasBigIntSupport();\n* // returns \n*/\nfunction hasBigIntSupport() {\n\treturn (\n\t\ttypeof Global.BigInt === 'function' &&\n\t\ttypeof BigInt === 'function' && // eslint-disable-line stdlib/require-globals\n\t\ttypeof Global.BigInt( '1' ) === 'bigint' &&\n\t\ttypeof BigInt( '1' ) === 'bigint' // eslint-disable-line stdlib/require-globals, no-undef, stdlib/no-builtin-big-int\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasBigIntSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a BigInt primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a BigInt primitive\n*/\nfunction isBigInt( value ) {\n\treturn ( typeof value === 'bigint' );\n}\n\n\n// EXPORTS //\n\nexport default isBigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\nimport test from './try2valueof.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a BigInt object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a BigInt object\n*/\nfunction BigInt( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tnativeClass( value ) === '[object BigInt]' &&\n\t\ttest( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default BigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Attempts to call a `BigInt` method.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if able to call a `BigInt` method\n*/\nfunction test( value ) {\n\ttry {\n\t\treturn (\n\t\t\t// Objects created via `Object.create( null )` have no `valueOf()` method:\n\t\t\ttypeof value.valueOf() === 'bigint'\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a BigInt.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a BigInt\n*/\nfunction isBigInt( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isBigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Creates a function which always returns the same value.\n*\n* @param {*} [value] - value to always return\n* @returns {Function} constant function\n*\n* @example\n* var fcn = wrap( 3.14 );\n*\n* var v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*/\nfunction wrap( value ) {\n\treturn constantFunction;\n\n\t/**\n\t* Constant function.\n\t*\n\t* @private\n\t* @returns {*} constant value\n\t*/\n\tfunction constantFunction() {\n\t\treturn value;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport isSymbol from './generic.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( isSymbol, 'isPrimitive', isPrimitive );\nsetReadOnly( isSymbol, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default isSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport constantFunction from '@stdlib/utils-constant-function';\n\n\n// MAIN //\n\nvar isBigInt = constantFunction( false );\nvar isPrimitive = constantFunction( false );\nvar isObject = constantFunction( false );\n\nsetReadOnly( isBigInt, 'isPrimitive', isPrimitive );\nsetReadOnly( isBigInt, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default isBigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a BigInt.\n*\n* @module @stdlib/assert-is-bigint\n*\n* @example\n* import BigInt from '@stdlib/bigint-ctor';\n* import isBigInt from '@stdlib/assert-is-bigint';\n*\n* var bool = isBigInt( BigInt( '1' ) );\n* // returns true\n*\n* bool = isBigInt( Object( BigInt( '1' ) ) );\n* // returns true\n*\n* bool = isBigInt( {} );\n* // returns false\n*\n* @example\n* import { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\n*\n* var bool = isBigInt( BigInt( '1' ) );\n* // returns true\n*\n* bool = isBigInt( Object( BigInt( '1' ) ) );\n* // returns false\n*\n* bool = isBigInt( {} );\n* // returns false\n*\n* @example\n* import { isObject as isBigIntObject } from '@stdlib/assert-is-bigint';\n*\n* var bool = isBigIntObject( BigInt( '1' ) );\n* // returns false\n*\n* bool = isBigIntObject( Object( BigInt( '1' ) ) );\n* // returns true\n*\n* bool = isBigIntObject( {} );\n* // returns false\n*/\n\n// MODULES //\n\nimport hasBigInts from '@stdlib/assert-has-bigint-support';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar isBigInt;\nif ( hasBigInts() ) {\n\tisBigInt = main;\n} else {\n\tisBigInt = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default isBigInt;\n\n// exports: { \"isPrimitive\": \"isBigInt.isPrimitive\", \"isObject\": \"isBigInt.isObject\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport NINF from '@stdlib/constants-float64-ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is negative zero.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is negative zero\n*\n* @example\n* var bool = isNegativeZero( -0.0 );\n* // returns true\n*\n* @example\n* var bool = isNegativeZero( 0.0 );\n* // returns false\n*/\nfunction isNegativeZero( x ) {\n\treturn (x === 0.0 && 1.0/x === NINF);\n}\n\n\n// EXPORTS //\n\nexport default isNegativeZero;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Smallest positive single-precision floating-point subnormal number.\n*\n* @module @stdlib/constants-float32-smallest-subnormal\n* @type {number}\n*\n* @example\n* import FLOAT32_SMALLEST_SUBNORMAL from '@stdlib/constants-float32-smallest-subnormal';\n* // returns 1.401298464324817e-45\n*/\n\n\n// MAIN //\n\n/**\n* Smallest positive single-precision floating-point subnormal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{127-1} 2^{23}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000 00000000000000000000001\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.401298464324817e-45\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_SMALLEST_SUBNORMAL = 1.401298464324817e-45;\n\n\n// EXPORTS //\n\nexport default FLOAT32_SMALLEST_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum safe single-precision floating-point integer.\n*\n* @module @stdlib/constants-float32-max-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT32_MAX_SAFE_INTEGER from '@stdlib/constants-float32-max-safe-integer';\n* // returns 16777215\n*/\n\n\n// MAIN //\n\n/**\n* Maximum safe single-precision floating-point integer.\n*\n* ## Notes\n*\n* The maximum safe integer is given by\n*\n* ```tex\n* 2^{24} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 16777215\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_MAX_SAFE_INTEGER = 16777215;\n\n\n// EXPORTS //\n\nexport default FLOAT32_MAX_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum safe single-precision floating-point integer.\n*\n* @module @stdlib/constants-float32-min-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT32_MIN_SAFE_INTEGER from '@stdlib/constants-float32-min-safe-integer';\n* // returns -16777215\n*/\n\n\n// MAIN //\n\n/**\n* Minimum safe single-precision floating-point integer.\n*\n* ## Notes\n*\n* The minimum safe integer is given by\n*\n* ```tex\n* -(2^{24} - 1)\n* ```\n*\n* @constant\n* @type {number}\n* @default -16777215\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_MIN_SAFE_INTEGER = -16777215;\n\n\n// EXPORTS //\n\nexport default FLOAT32_MIN_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isNegativeZero from '@stdlib/math-base-assert-is-negative-zero';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport PINF from '@stdlib/constants-float64-pinf';\nimport NINF from '@stdlib/constants-float64-ninf';\nimport FLOAT32_SMALLEST_SUBNORMAL from '@stdlib/constants-float32-smallest-subnormal'; // eslint-disable-line id-length\nimport FLOAT32_MAX_SAFE_INTEGER from '@stdlib/constants-float32-max-safe-integer';\nimport FLOAT32_MIN_SAFE_INTEGER from '@stdlib/constants-float32-min-safe-integer';\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the minimum floating-point array data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} array data type\n*/\nfunction minFloatDataType( value ) {\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value >= FLOAT32_MIN_SAFE_INTEGER && value <= FLOAT32_MAX_SAFE_INTEGER ) { // eslint-disable-line max-len\n\t\t\treturn 'float32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// MAIN //\n\n/**\n* Returns the minimum array data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} array data type\n*\n* @example\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* @example\n* var dt = minDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minDataType( value ) {\n\tif ( !isNumber( value ) ) {\n\t\tif ( isBoolean( value ) ) {\n\t\t\treturn 'bool';\n\t\t}\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tif ( minFloatDataType( value.re ) === 'float64' || minFloatDataType( value.im ) === 'float64' ) {\n\t\t\t\treturn 'complex128';\n\t\t\t}\n\t\t\treturn 'complex64';\n\t\t}\n\t\treturn 'generic';\n\t}\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value === 0 && isNegativeZero( value ) ) {\n\t\t\treturn 'float32';\n\t\t}\n\t\tif ( value < 0 ) {\n\t\t\tif ( value >= INT8_MIN ) {\n\t\t\t\treturn 'int8';\n\t\t\t}\n\t\t\tif ( value >= INT16_MIN ) {\n\t\t\t\treturn 'int16';\n\t\t\t}\n\t\t\tif ( value >= INT32_MIN ) {\n\t\t\t\treturn 'int32';\n\t\t\t}\n\t\t\treturn 'float64';\n\t\t}\n\t\tif ( value <= UINT8_MAX ) {\n\t\t\treturn 'uint8';\n\t\t}\n\t\tif ( value <= UINT16_MAX ) {\n\t\t\treturn 'uint16';\n\t\t}\n\t\tif ( value <= UINT32_MAX ) {\n\t\t\treturn 'uint32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// EXPORTS //\n\nexport default minDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from complex number constructors to data types...\nvar ctor2dtypes = {\n\t'Complex64': 'complex64',\n\t'Complex128': 'complex128'\n};\n\n\n// EXPORTS //\n\nexport default ctor2dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dtypes from '@stdlib/complex-dtypes';\n\n\n// MAIN //\n\nvar DTYPES = dtypes();\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from '@stdlib/complex-ctors';\nimport DTYPES from './dtypes.js';\n\n\n// MAIN //\n\nvar CTORS = [];\nvar i;\nfor ( i = 0; i < DTYPES.length; i++ ) {\n\tCTORS.push( ctors( DTYPES[ i ] ) );\n}\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DTYPES from './dtypes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of complex number data types.\n*\n* @returns {StringArray} list of complex number data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport constructorName from '@stdlib/utils-constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of a complex number.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var dt = dtype( new Complex128( 1.0, 2.0 ) );\n* // returns 'complex128'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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* Converts a boolean to a number.\n*\n* @private\n* @param {boolean} value - input value\n* @returns {number} result\n*/\nfunction boolean2number( value ) {\n\treturn ( value ) ? 1 : 0;\n}\n\n\n// EXPORTS //\n\nexport default boolean2number;\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\nimport Number from '@stdlib/number-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a BigInt to a number.\n*\n* @private\n* @param {BigInt} value - input value\n* @returns {number} result\n*/\nfunction bigint2number( value ) {\n\treturn Number( value );\n}\n\n\n// EXPORTS //\n\nexport default bigint2number;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport isRealFloatingPointDataType from '@stdlib/array-base-assert-is-real-floating-point-data-type'; // eslint-disable-line id-length\nimport isSignedIntegerDataType from '@stdlib/array-base-assert-is-signed-integer-data-type';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport minDataType from '@stdlib/array-min-dtype';\nimport minSignedIntegerDataType from '@stdlib/array-base-min-signed-integer-dtype';\nimport complexDType from '@stdlib/complex-dtype';\nimport format from '@stdlib/string-format';\nimport boolean2number from './boolean2number.js';\nimport bigint2number from './bigint2number.js';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport defaults from './defaults.json';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setNumber( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a number value to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar v;\n\t\tif ( isNumber( value ) ) {\n\t\t\tif ( isRealFloatingPointDataType( obj.type ) ) {\n\t\t\t\tdt = obj.type;\n\t\t\t} else if ( !isInteger( value ) ) {\n\t\t\t\tdt = defaults.dtypes.real;\n\t\t\t} else if ( isSignedIntegerDataType( obj.type ) ) {\n\t\t\t\tdt = minSignedIntegerDataType( value );\n\t\t\t} else {\n\t\t\t\tdt = minDataType( value );\n\t\t\t}\n\t\t\tv = value;\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || ( ( obj.type === 'float32' ) ? 'complex64' : 'complex128' );\n\t\t\tv = value.re; // discard imaginary component\n\t\t} else if ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tv = boolean2number( value );\n\t\t} else if ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // note: the specific integer data type (int64 vs uint64) should not matter here\n\t\t\tv = bigint2number( value );\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tv = value;\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, v, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport INT8_MAX from '@stdlib/constants-int8-max';\nimport INT16_MAX from '@stdlib/constants-int16-max';\nimport INT32_MAX from '@stdlib/constants-int32-max';\n\n\n// MAIN //\n\n/**\n* Returns the minimum array data type for storing a provided signed integer value.\n*\n* @param {integer} value - scalar value\n* @returns {string} array data type\n*\n* @example\n* var dt = minSignedIntegerDataType( 9999 );\n* // returns 'int16'\n*\n* @example\n* var dt = minSignedIntegerDataType( 3 );\n* // returns 'int8'\n*/\nfunction minSignedIntegerDataType( value ) {\n\tif ( value < 0 ) {\n\t\tif ( value >= INT8_MIN ) {\n\t\t\treturn 'int8';\n\t\t}\n\t\tif ( value >= INT16_MIN ) {\n\t\t\treturn 'int16';\n\t\t}\n\t\tif ( value >= INT32_MIN ) {\n\t\t\treturn 'int32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\tif ( value <= INT8_MAX ) {\n\t\treturn 'int8';\n\t}\n\tif ( value <= INT16_MAX ) {\n\t\treturn 'int16';\n\t}\n\tif ( value <= INT32_MAX ) {\n\t\treturn 'int32';\n\t}\n\treturn 'float64';\n}\n\n\n// EXPORTS //\n\nexport default minSignedIntegerDataType;\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\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a number to a boolean.\n*\n* @private\n* @param {number} value - input value\n* @returns {boolean} result\n*/\nfunction number2boolean( value ) {\n\treturn Boolean( value );\n}\n\n\n// EXPORTS //\n\nexport default number2boolean;\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\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a complex number to a boolean.\n*\n* @private\n* @param {ComplexLike} value - input value\n* @returns {boolean} result\n*/\nfunction complex2boolean( value ) {\n\treturn Boolean( value.re || value.im );\n}\n\n\n// EXPORTS //\n\nexport default complex2boolean;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport complexDType from '@stdlib/complex-dtype';\nimport Boolean from '@stdlib/boolean-ctor';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport boolean2number from './boolean2number.js';\nimport number2boolean from './number2boolean.js';\nimport complex2boolean from './complex2boolean.js';\nimport bigint2boolean from './bigint2boolean.js';\nimport defaults from './defaults.json';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setBoolean( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a boolean value to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar v;\n\t\tif ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tv = boolean2number( value );\n\t\t} else if ( isNumber( value ) ) {\n\t\t\tdt = defaults.dtypes.real;\n\t\t\tv = boolean2number( number2boolean( value ) );\n\t\t} else if ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // note: the specific integer data type (int64 vs uint64) should not matter here\n\t\t\tv = boolean2number( bigint2boolean( value ) );\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || defaults.dtypes.complex;\n\t\t\tv = boolean2number( complex2boolean( value ) );\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tv = Boolean( value );\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, v, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setBoolean;\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\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a BigInt to a boolean.\n*\n* @private\n* @param {BigInt} value - input value\n* @returns {boolean} result\n*/\nfunction bigint2boolean( value ) {\n\treturn Boolean( value );\n}\n\n\n// EXPORTS //\n\nexport default bigint2boolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* global BigInt */\n\n'use strict';\n\n// MAIN //\n\nvar BigInteger = ( typeof BigInt === 'function' ) ? BigInt : void 0; // eslint-disable-line stdlib/require-globals, node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default BigInteger;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport minDataType from '@stdlib/array-min-dtype';\nimport complexDType from '@stdlib/complex-dtype';\nimport BigInt from '@stdlib/bigint-ctor';\nimport Number from '@stdlib/number-ctor';\nimport floor from '@stdlib/math-base-special-floor';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport boolean2bigint from './boolean2bigint.js';\nimport defaults from './defaults.json';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setBigInt( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a number value to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar v;\n\t\tif ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // FIXME: support both int64 and uint64\n\t\t\tv = value;\n\t\t} else if ( isNumber( value ) ) {\n\t\t\tif ( isInteger( value ) ) {\n\t\t\t\tdt = minDataType( value );\n\t\t\t\tv = BigInt( value );\n\t\t\t} else {\n\t\t\t\tdt = defaults.dtypes.real;\n\t\t\t\tv = BigInt( floor( value ) );\n\t\t\t}\n\t\t} else if ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tv = boolean2bigint( value );\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || defaults.dtypes.complex;\n\t\t\tv = BigInt( floor( value.re ) ); // discard imaginary component\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tv = BigInt( floor( Number( v ) ) );\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, v, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setBigInt;\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\nimport BigInt from '@stdlib/bigint-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a boolean to a BigInt.\n*\n* @private\n* @param {boolean} value - input value\n* @returns {number} result\n*/\nfunction boolean2bigint( value ) {\n\treturn BigInt( ( value ) ? 1 : 0 );\n}\n\n\n// EXPORTS //\n\nexport default boolean2bigint;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies values from `x` into `y`.\n*\n* @private\n* @param {PositiveInteger} N - number of indexed elements\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Object} y - output array object\n* @param {Collection} y.data - output array data\n* @param {Array} y.accessors - array element accessors\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Object} output array object\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\n*\n* function setter( data, idx, value ) {\n* data.set( value, idx );\n* }\n*\n* function getter( data, idx ) {\n* return data.get( idx );\n* }\n*\n* var x = {\n* 'data': new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ),\n* 'accessors': [ getter, setter ]\n* };\n*\n* var y = {\n* 'data': new Complex64Array( [ 5.0, 6.0, 7.0, 8.0 ] ),\n* 'accessors': [ getter, setter ]\n* };\n*\n* gcopy( x.data.length, x, 1, 0, y, 1, 0 );\n*\n* var view = reinterpret64( y.data, 0 );\n* // view => [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction gcopy( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar set;\n\tvar get;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\t// Cache references to array data:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache a reference to the element accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default gcopy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 8;\n\n\n// MAIN //\n\n/**\n* Copies values from `x` into `y`.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - output array\n* @param {integer} strideY - `y` stride length\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction gcopy( N, x, strideX, y, strideY ) {\n\tvar ix;\n\tvar iy;\n\tvar ox;\n\tvar oy;\n\tvar m;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tox = arraylike2object( x );\n\toy = arraylike2object( y );\n\tif ( ox.accessorProtocol || oy.accessorProtocol ) {\n\t\tif ( strideX < 0 ) {\n\t\t\tix = (1-N) * strideX;\n\t\t} else {\n\t\t\tix = 0;\n\t\t}\n\t\tif ( strideY < 0 ) {\n\t\t\tiy = (1-N) * strideY;\n\t\t} else {\n\t\t\tiy = 0;\n\t\t}\n\t\taccessors( N, ox, strideX, ix, oy, strideY, iy );\n\t\treturn oy.data;\n\t}\n\t// Use unrolled loops if both strides are equal to `1`...\n\tif ( strideX === 1 && strideY === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\ty[ i ] = x[ i ];\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn y;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\ty[ i ] = x[ i ];\n\t\t\ty[ i+1 ] = x[ i+1 ];\n\t\t\ty[ i+2 ] = x[ i+2 ];\n\t\t\ty[ i+3 ] = x[ i+3 ];\n\t\t\ty[ i+4 ] = x[ i+4 ];\n\t\t\ty[ i+5 ] = x[ i+5 ];\n\t\t\ty[ i+6 ] = x[ i+6 ];\n\t\t\ty[ i+7 ] = x[ i+7 ];\n\t\t}\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = x[ ix ];\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default gcopy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 8;\n\n\n// MAIN //\n\n/**\n* Copies values from `x` into `y`.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - output array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction gcopy( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\tvar ix;\n\tvar iy;\n\tvar ox;\n\tvar oy;\n\tvar m;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tox = arraylike2object( x );\n\toy = arraylike2object( y );\n\tif ( ox.accessorProtocol || oy.accessorProtocol ) {\n\t\taccessors( N, ox, strideX, offsetX, oy, strideY, offsetY );\n\t\treturn oy.data;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\n\t// Use unrolled loops if both strides are equal to `1`...\n\tif ( strideX === 1 && strideY === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\ty[ iy ] = x[ ix ];\n\t\t\t\tix += strideX;\n\t\t\t\tiy += strideY;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn y;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\ty[ iy ] = x[ ix ];\n\t\t\ty[ iy+1 ] = x[ ix+1 ];\n\t\t\ty[ iy+2 ] = x[ ix+2 ];\n\t\t\ty[ iy+3 ] = x[ ix+3 ];\n\t\t\ty[ iy+4 ] = x[ ix+4 ];\n\t\t\ty[ iy+5 ] = x[ ix+5 ];\n\t\t\ty[ iy+6 ] = x[ ix+6 ];\n\t\t\ty[ iy+7 ] = x[ ix+7 ];\n\t\t\tix += M;\n\t\t\tiy += M;\n\t\t}\n\t\treturn y;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = x[ ix ];\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default gcopy;\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\nimport isDataView from '@stdlib/assert-is-dataview';\nimport isObject from '@stdlib/assert-is-object';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `struct` instance.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `struct` instance\n*/\nfunction isStructInstance( value ) {\n\t// NOTE: the following is a relatively weak test, but we cannot use `instanceof` checks, etc, due to the factory nature of the implementation. Regardless, here, we are just trying to sniff out a `struct` type. If calling as a constructor later fails, we punt the responsibility off to the user to handle what should be an edge case. If, in the future, this check proves insufficient, we can add further \"brand\" checks...\n\treturn (\n\t\tisObject( value ) &&\n\t\tisDataView( value[ PRIVATE_BUFFER ] )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isStructInstance;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* BLAS level 1 routine to copy values from `x` into `y`.\n*\n* @module @stdlib/blas-base-gcopy\n*\n* @example\n* import gcopy from '@stdlib/blas-base-gcopy';\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*\n* @example\n* import gcopy from '@stdlib/blas-base-gcopy';\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array boolean data type.\n*\n* @name isBooleanDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'complex64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'complex128' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nvar isBooleanDataType = contains( dtypes( 'boolean' ) );\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 8;\n\n\n// MAIN //\n\n/**\n* Fills a strided array with a specified scalar constant.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {*} alpha - scalar constant\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ];\n*\n* gfill( 3, 5.0, x, 1, x.length-3 );\n* // x => [ 1.0, -2.0, 3.0, 5.0, 5.0, 5.0 ]\n*/\nfunction gfill( N, alpha, x, strideX, offsetX ) {\n\tvar ix;\n\tvar m;\n\tvar o;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn x;\n\t}\n\to = arraylike2object( x );\n\tif ( o.accessorProtocol ) {\n\t\taccessors( N, alpha, o, strideX, offsetX );\n\t\treturn o.data;\n\t}\n\tix = offsetX;\n\n\t// Use loop unrolling if the stride is equal to `1`...\n\tif ( strideX === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\tx[ ix ] = alpha;\n\t\t\t\tix += strideX;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn x;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\tx[ ix ] = alpha;\n\t\t\tx[ ix+1 ] = alpha;\n\t\t\tx[ ix+2 ] = alpha;\n\t\t\tx[ ix+3 ] = alpha;\n\t\t\tx[ ix+4 ] = alpha;\n\t\t\tx[ ix+5 ] = alpha;\n\t\t\tx[ ix+6 ] = alpha;\n\t\t\tx[ ix+7 ] = alpha;\n\t\t\tix += M;\n\t\t}\n\t\treturn x;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tx[ ix ] = alpha;\n\t\tix += strideX;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Fills a strided array with a specified scalar constant.\n*\n* @private\n* @param {PositiveInteger} N - number of indexed elements\n* @param {*} alpha - scalar constant\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {Object} input array object\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\n*\n* function setter( data, idx, value ) {\n* data.set( value, idx );\n* }\n*\n* var data = new Complex64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );\n*\n* var x = {\n* 'data': data,\n* 'accessors': [ null, setter ]\n* };\n*\n* var alpha = new Complex64( 5.0, 5.0 );\n*\n* gfill( data.length, alpha, x, 1, 0 );\n*\n* var view = reinterpret64( x.data, 0 );\n* // returns [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*/\nfunction gfill( N, alpha, x, strideX, offsetX ) {\n\tvar xbuf;\n\tvar set;\n\tvar ix;\n\tvar i;\n\n\t// Cache reference to array data:\n\txbuf = x.data;\n\n\t// Cache a reference to the element accessor:\n\tset = x.accessors[ 1 ];\n\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tset( xbuf, ix, alpha );\n\t\tix += strideX;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Fills a strided array with a specified scalar constant.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {*} alpha - scalar constant\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @returns {Collection} input array\n*\n* @example\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gfill( x.length, 5.0, x, 1 );\n* // x => [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*/\nfunction gfill( N, alpha, x, strideX ) {\n\treturn ndarray( N, alpha, x, strideX, stride2offset( N, strideX ) );\n}\n\n\n// EXPORTS //\n\nexport default gfill;\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\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// FUNCTIONS //\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in an output array.\n*\n* @private\n* @param {Collection} x - input array\n* @param {Collection} y - output array\n* @param {integer} stride - stride length for output array\n* @param {NonNegativeInteger} offset - starting index for output array\n* @param {Function} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n* var out = internal( x, y, 1, 0, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction internal( x, y, stride, offset, fcn, thisArg ) {\n\tvar io;\n\tvar i;\n\n\tio = offset;\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\ty[ io ] = fcn.call( thisArg, x[ i ], i, x );\n\t\tio += stride;\n\t}\n\treturn y;\n}\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in an output array.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Object} y - output array object\n* @param {integer} stride - stride length for output array\n* @param {NonNegativeInteger} offset - starting index for output array\n* @param {Function} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {Object} output array object\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n*\n* var out = accessors( arraylike2object( toAccessorArray( x ) ), arraylike2object( toAccessorArray( y ) ), 1, 0, scale );\n* // y => [ 10.0, 10.0, 10.0, 10.0 ]\n*/\nfunction accessors( x, y, stride, offset, fcn, thisArg ) {\n\tvar xdata;\n\tvar ydata;\n\tvar xget;\n\tvar yset;\n\tvar io;\n\tvar i;\n\n\txdata = x.data;\n\tydata = y.data;\n\txget = x.accessors[ 0 ];\n\tyset = y.accessors[ 1 ];\n\n\tio = offset;\n\tfor ( i = 0; i < xdata.length; i++ ) {\n\t\tyset( ydata, io, fcn.call( thisArg, xget( xdata, i ), i, xdata ) );\n\t\tio += stride;\n\t}\n\treturn y;\n}\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in an output array.\n*\n* @param {Collection} x - input array\n* @param {Collection} y - output array\n* @param {integer} stride - stride length for output array\n* @param {NonNegativeInteger} offset - starting index for output array\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n*\n* var out = assign( x, y, 1, 0, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction assign( x, y, stride, offset, fcn, thisArg ) {\n\tvar xobj;\n\tvar yobj;\n\n\txobj = arraylike2object( x );\n\tyobj = arraylike2object( y );\n\tif ( xobj.accessorProtocol || yobj.accessorProtocol ) {\n\t\taccessors( xobj, yobj, stride, offset, fcn, thisArg );\n\t\treturn y;\n\t}\n\treturn internal( x, y, stride, offset, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default assign;\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\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'map' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in a new output array.\n*\n* @param {Collection} x - input array\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = map( x, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*/\nfunction map( x, fcn, thisArg ) {\n\tif ( hasMethod( x, 'map' ) ) {\n\t\treturn x.map( fcn, thisArg );\n\t}\n\treturn assign( x, zeros( x.length ), 1, 0, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default map;\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* Converts a complex number to a number.\n*\n* @private\n* @param {ComplexLike} value - input value\n* @returns {number} result\n*/\nfunction complex2number( value ) {\n\treturn value.re;\n}\n\n\n// EXPORTS //\n\nexport default complex2number;\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\nimport format from '@stdlib/string-format';\nimport DATA_VIEW_METHODS from './data_view_methods.js';\nimport setNumber from './set_number.js';\nimport setComplex from './set_complex.js';\nimport setBoolean from './set_boolean.js';\nimport setBigInt from './set_bigint.js';\nimport setStruct from './set_struct.js';\nimport setTypedArray from './set_typedarray.js';\nimport setStructArray from './set_struct_array.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for setting field data.\n*\n* @private\n* @param {Object} obj - field object\n* @throws {Error} unexpected error\n* @returns {Function} function for setting field data\n*/\nfunction setter( obj ) {\n\tif ( obj.length ) {\n\t\tif ( obj.isStructType ) {\n\t\t\treturn setStructArray( obj );\n\t\t}\n\t\treturn setTypedArray( obj );\n\t}\n\tswitch ( obj.type ) {\n\tcase 'float64':\n\tcase 'float32':\n\tcase 'float16':\n\tcase 'int8':\n\tcase 'int16':\n\tcase 'int32':\n\tcase 'uint8':\n\tcase 'uint16':\n\tcase 'uint32':\n\t\treturn setNumber( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tcase 'int64':\n\tcase 'uint64':\n\t\treturn setBigInt( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tcase 'bool':\n\t\treturn setBoolean( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tcase 'complex128':\n\tcase 'complex64':\n\tcase 'complex32':\n\t\treturn setComplex( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tdefault:\n\t\tif ( obj.isStructType ) {\n\t\t\treturn setStruct( obj );\n\t\t}\n\t\t// Ensure that we fail loudly if we have failed to add support for newly added data types:\n\t\tthrow new Error( format( 'unexpected error. Unrecognized data type. Value: `%s`.', obj.type ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setter;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport Uint8Array from '@stdlib/array-uint8';\nimport gcopy from '@stdlib/blas-base-gcopy';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for writing field data\n*/\nfunction setStructArray( obj ) {\n\treturn setter;\n\n\t/**\n\t* Writes a list of `struct` instances to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {Collection} values - list of `struct` instances\n\t* @throws {TypeError} must provide an array-like object\n\t* @throws {RangeError} must provide an array-like object having an expected length\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( values ) {\n\t\tvar offset;\n\t\tvar views;\n\t\tvar view;\n\t\tvar dest;\n\t\tvar src;\n\t\tvar buf;\n\t\tvar nb;\n\t\tvar i;\n\n\t\tif ( !isCollection( values ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. `%s` must be an array-like object. Value: `%s`.', obj.name, values ) );\n\t\t}\n\t\tif ( values.length !== obj.length ) {\n\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be an array-like object having length %u.', obj.name, obj.length ) );\n\t\t}\n\t\tif ( obj.casting === 'none' ) {\n\t\t\tfor ( i = 0; i < values.length; i++ ) {\n\t\t\t\tif ( !( values[ i ] instanceof obj.type ) ) { // note: this check will fail for cross-realm `struct` instances\n\t\t\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Value: `%s`.', obj.name, values[ i ] ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Compute the expected number of bytes per struct view:\n\t\tnb = obj.byteLength / obj.length; // note: as a field is expected to have a homogeneous data type, the byte length should be evenly divisible by the number of elements\n\n\t\t// Check that all struct instances have the same byte length...\n\t\tviews = [];\n\t\tfor ( i = 0; i < values.length; i++ ) {\n\t\t\tbuf = this.constructor.viewOf( values[ i ] );\n\t\t\tif ( buf.byteLength !== nb ) {\n\t\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be an array-like object containing `struct` instances having the same byte length.', obj.name ) );\n\t\t\t}\n\t\t\tsrc = new Uint8Array( buf.buffer, buf.byteOffset, nb );\n\t\t\tviews.push( src );\n\t\t}\n\t\t// Write the data for each `struct` to the underlying byte buffer...\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\toffset = view.byteOffset + obj.byteOffset;\n\t\tfor ( i = 0; i < values.length; i++ ) {\n\t\t\tdest = new Uint8Array( view.buffer, offset, nb );\n\t\t\tgcopy( obj.length, views[ i ], 1, dest, 1 );\n\t\t\toffset += nb;\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setStructArray;\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 no-invalid-this, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport isRealDataType from '@stdlib/array-base-assert-is-real-data-type';\nimport typedarray from '@stdlib/array-typed';\nimport dtype from '@stdlib/array-dtype';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gcopy from '@stdlib/blas-base-gcopy';\nimport gfill from '@stdlib/blas-ext-base-gfill';\nimport map from '@stdlib/array-base-map';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport isStructInstance from './is_struct_instance.js';\nimport number2boolean from './number2boolean.js';\nimport complex2boolean from './complex2boolean.js';\nimport complex2number from './complex2number.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for writing field data\n*/\nfunction setTypedArray( obj ) {\n\treturn setter;\n\n\t/**\n\t* Writes a list of values to a typed array view of an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {Collection} value - value to set\n\t* @throws {TypeError} must provide an array-like object\n\t* @throws {RangeError} must provide an array-like object having an expected length\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar buf;\n\t\tvar dt;\n\t\tif ( !isCollection( value ) || isStructInstance( value ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. `%s` must be an array-like object. Value: `%s`.', obj.name, value ) );\n\t\t}\n\t\tif ( value.length !== obj.length ) {\n\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be an array-like object having length %u.', obj.name, obj.length ) );\n\t\t}\n\t\tdt = dtype( value );\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tbuf = this[ PRIVATE_BUFFER ];\n\t\tview = typedarray( buf.buffer, buf.byteOffset+obj.byteOffset, obj.length, obj.type );\n\t\tif ( dt === obj.type ) {\n\t\t\t// Case: complex => complex\n\t\t\tif ( isComplexDataType( dt ) ) {\n\t\t\t\tgcopy( obj.length*2, reinterpretComplex( value, 0 ), 1, reinterpretComplex( view, 0 ), 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: boolean => boolean\n\t\t\tif ( isBooleanDataType( dt ) ) {\n\t\t\t\tgcopy( obj.length, reinterpretBoolean( value, 0 ), 1, reinterpretBoolean( view, 0 ), 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: real => real\n\t\t\tgcopy( obj.length, value, 1, view, 1 );\n\t\t\treturn;\n\t\t}\n\t\t// Case: real => ???\n\t\tif ( isRealDataType( dt ) ) {\n\t\t\t// Case: real => real\n\t\t\tif ( isRealDataType( obj.type ) ) {\n\t\t\t\tgcopy( obj.length, value, 1, view, 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: real => complex\n\t\t\tif ( isComplexDataType( obj.type ) ) {\n\t\t\t\tview = reinterpretComplex( view, 0 );\n\n\t\t\t\t// TODO: consider refactoring to avoid two-passes; may require creating a separate strided utility explicitly aimed at casting real-valued arrays to complex arrays\n\t\t\t\tgcopy( obj.length, view, 2, value, 1 ); // assign to only real-components\n\t\t\t\tgfill.ndarray( obj.length, 0.0, view, 2, 1 ); // fill imaginary components with zeros\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: real => boolean\n\t\t\tmap.assign( value, view, 1, 0, number2boolean );\n\t\t\treturn;\n\t\t}\n\t\t// Case: complex => ???\n\t\tif ( isComplexDataType( dt ) ) {\n\t\t\t// Case: complex => real\n\t\t\tif ( isRealDataType( obj.type ) ) {\n\t\t\t\tmap.assign( value, view, 1, 0, complex2number ); // discard imaginary components\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: complex => complex\n\t\t\tif ( isComplexDataType( obj.type ) ) {\n\t\t\t\tgcopy( obj.length*2, reinterpretComplex( value, 0 ), 1, reinterpretComplex( view, 0 ), 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: complex => boolean\n\t\t\tmap.assign( value, view, 1, 0, complex2boolean );\n\t\t\treturn;\n\t\t}\n\t\t// Case: boolean => ???\n\n\t\t// Case: boolean => real\n\t\tif ( isRealDataType( obj.type ) ) {\n\t\t\tgcopy( obj.length, reinterpretBoolean( value, 0 ), 1, view, 1 );\n\t\t\treturn;\n\t\t}\n\t\t// Case: boolean => complex\n\t\tview = reinterpretComplex( view, 0 );\n\n\t\t// TODO: consider refactoring to avoid two-passes; may require creating a separate strided utility explicitly aimed at casting real-valued arrays to complex arrays\n\t\tgcopy( obj.length, view, 2, reinterpretBoolean( value, 0 ), 1 ); // assign to only real-components\n\t\tgfill.ndarray( obj.length, 0.0, view, 2, 1 ); // fill imaginary components with zeros\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setTypedArray;\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 no-invalid-this, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport complexDType from '@stdlib/complex-dtype';\nimport format from '@stdlib/string-format';\nimport boolean2number from './boolean2number.js';\nimport bigint2number from './bigint2number.js';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setComplex( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a complex number to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar re;\n\t\tvar im;\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || obj.type;\n\t\t\tre = value.re;\n\t\t\tim = value.im;\n\t\t} else if ( isNumber( value ) ) {\n\t\t\tdt = ( obj.type === 'complex64' ) ? 'float32' : 'float64';\n\t\t\tre = value;\n\t\t\tim = 0.0;\n\t\t} else if ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // note: the specific integer data type (int64 vs uint64) should not matter here\n\t\t\tre = bigint2number( value );\n\t\t\tim = 0.0;\n\t\t} else if ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tre = boolean2number( value );\n\t\t\tim = 0.0;\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tre = value;\n\t\t\tim = 0.0;\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, re, IS_LITTLE_ENDIAN );\n\t\tview[ method ]( obj.byteOffset+(obj.byteLength/2), im, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setComplex;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\nimport gcopy from '@stdlib/blas-base-gcopy';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport isStructInstance from './is_struct_instance.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for writing field data\n*/\nfunction setStruct( obj ) {\n\treturn setter;\n\n\t/**\n\t* Writes `struct` data to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {Object} value - value to set\n\t* @throws {TypeError} must be a `struct` instance\n\t* @throws {RangeError} must be a `struct` instance having the same byte length\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dest;\n\t\tvar src;\n\t\tvar buf;\n\t\tvar nb;\n\t\tif ( !isStructInstance( value ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. `%s` must be a `struct` instance. Value: `%s`.', obj.name, value ) );\n\t\t}\n\t\tif ( obj.casting === 'none' && !( value instanceof obj.type ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Value: `%s`.', obj.name, value ) );\n\t\t}\n\t\tnb = obj.byteLength;\n\n\t\tbuf = this.constructor.viewOf( value );\n\t\tif ( buf.byteLength !== nb ) {\n\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be a `struct` instance having the same byte length.', obj.name ) );\n\t\t}\n\t\tsrc = new Uint8Array( buf.buffer, buf.byteOffset, nb );\n\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tdest = new Uint8Array( view.buffer, view.byteOffset+obj.byteOffset, nb ); // eslint-disable-line max-len\n\n\t\tgcopy( obj.length, src, 1, dest, 1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setStruct;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Fill a strided array with a specified scalar constant.\n*\n* @module @stdlib/blas-ext-base-gfill\n*\n* @example\n* import gfill from '@stdlib/blas-ext-base-gfill';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gfill( x.length, 5.0, x, 1 );\n* // x => [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*\n* @example\n* import gfill from '@stdlib/blas-ext-base-gfill';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gfill.ndarray( x.length, 5.0, x, 1, 0 );\n* // x => [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\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 callback function to elements in an input array and assign results to elements in a new output array.\n*\n* @module @stdlib/array-base-map\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import map from '@stdlib/array-base-map';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = map( x, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n* import map from '@stdlib/array-base-map';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n*\n* var out = map.assign( x, y, 1, 0, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\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\nvar FIELD_PROPERTIES = [\n\t'name',\n\t'type',\n\t'description',\n\t'length',\n\t'enumerable',\n\t'writable',\n\t'default',\n\t'castingMode'\n];\n\n\n// EXPORTS //\n\nexport default FIELD_PROPERTIES;\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\nimport isCollection from '@stdlib/assert-is-collection';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a field object represents a union type.\n*\n* @private\n* @param {Object} obj - input field object\n* @returns {boolean} result\n*/\nfunction isUnionType( obj ) {\n\treturn obj.type === 'union' && isCollection( obj.fields );\n}\n\n\n// EXPORTS //\n\nexport default isUnionType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is `undefined` or `null`.\n*\n* ## Notes\n*\n* - In older browsers, `undefined` is a global which can be overridden. `void`, however, is an operator which **cannot** be overridden. Consequently, better to use `void` to check for `undefined`. See [Stack Overflow][1].\n*\n* [1]: http://stackoverflow.com/a/19369078/2225624\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is undefined\n*\n* @example\n* var bool = isUndefinedOrNull( undefined );\n* // returns true\n*\n* bool = isUndefinedOrNull( null );\n* // returns true\n*\n* bool = isUndefinedOrNull( false );\n* // returns false\n*/\nfunction isUndefinedOrNull( value ) {\n\treturn ( value === void 0 || value === null );\n}\n\n\n// EXPORTS //\n\nexport default isUndefinedOrNull;\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\nimport isUndefinedOrNull from '@stdlib/assert-is-undefined-or-null';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'join' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining strided array elements using a specified separator and alternative indexing semantics.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {string} separator - separator\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {string} joined string\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = gjoin( x.length, ',', x, 1, 0 );\n* // returns '1,2,3,4'\n*/\nfunction gjoin( N, separator, x, strideX, offsetX ) {\n\tvar out;\n\tvar ix;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn '';\n\t}\n\t// Check for a contiguous strided array with left-to-right iteration...\n\tif ( strideX === 1 && offsetX === 0 && N === x.length && hasMethod( x, 'join' ) ) {\n\t\treturn x.join( separator );\n\t}\n\to = arraylike2object( x );\n\tif ( o.accessorProtocol ) {\n\t\treturn accessors( N, separator, o, strideX, offsetX );\n\t}\n\tix = offsetX;\n\tout = '';\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( i > 0 ) {\n\t\t\tout += separator;\n\t\t}\n\t\tv = x[ ix ];\n\t\tif ( !isUndefinedOrNull( v ) ) {\n\t\t\tout += String( v );\n\t\t}\n\t\tix += strideX;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default gjoin;\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\nimport isUndefinedOrNull from '@stdlib/assert-is-undefined-or-null';\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining strided array elements using a specified separator.\n*\n* @private\n* @param {PositiveInteger} N - number of indexed elements\n* @param {string} separator - separator\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {string} joined string\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = gjoin( x.length, ',', arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns '1,2,3,4'\n*/\nfunction gjoin( N, separator, x, strideX, offsetX ) {\n\tvar xbuf;\n\tvar get;\n\tvar out;\n\tvar ix;\n\tvar v;\n\tvar i;\n\n\t// Cache reference to array data:\n\txbuf = x.data;\n\n\t// Cache a reference to the element accessor:\n\tget = x.accessors[ 0 ];\n\n\tix = offsetX;\n\tout = '';\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( i > 0 ) {\n\t\t\tout += separator;\n\t\t}\n\t\tv = get( xbuf, ix );\n\t\tif ( !isUndefinedOrNull( v ) ) {\n\t\t\tout += String( v );\n\t\t}\n\t\tix += strideX;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default gjoin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as strided } from '@stdlib/blas-ext-base-gjoin';\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining array elements using a specified separator.\n*\n* @param {Collection} x - input array\n* @param {string} separator - separator\n* @returns {string} output string\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = join( x, ',' );\n* // returns '1,2,3,4'\n*\n* @example\n* var x = [ 1, 2, 3, null, undefined, 4 ];\n*\n* var out = join( x, '-' );\n* // returns '1-2-3---4'\n*/\nfunction join( x, separator ) {\n\treturn strided( x.length, separator, x, 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default join;\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\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid boolean field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidBoolean( value, name ) {\n\tif ( isBoolean( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a boolean. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidBoolean;\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* Return a string created by joining strided array elements using a specified separator.\n*\n* @module @stdlib/blas-ext-base-gjoin\n*\n* @example\n* import gjoin from '@stdlib/blas-ext-base-gjoin';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var str = gjoin( x.length, ',', x, 1 );\n* // returns '1,2,3,4'\n*\n* @example\n* import gjoin from '@stdlib/blas-ext-base-gjoin';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var str = gjoin.ndarray( x.length, ',', x, 1, 0 );\n* // returns '1,2,3,4'\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining strided array elements using a specified separator.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {string} separator - separator\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @returns {string} joined string\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = gjoin( x.length, ',', x, 1 );\n* // returns '1,2,3,4'\n*/\nfunction gjoin( N, separator, x, strideX ) {\n\treturn ndarray( N, separator, x, strideX, stride2offset( N, strideX ) );\n}\n\n\n// EXPORTS //\n\nexport default gjoin;\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\nvar DTYPES = [\n\t'int8',\n\t'int16',\n\t'int32',\n\t'int64',\n\n\t'uint8',\n\t'uint16',\n\t'uint32',\n\t'uint64',\n\n\t// 'float16', // TODO: uncomment once supported\n\n\t'float32',\n\t'float64',\n\n\t// 'complex32', // TODO: uncomment once supported\n\n\t'complex64',\n\t'complex128',\n\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\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\nvar CASTING_MODES = [\n\t'none',\n\t'safe',\n\t'mostly-safe',\n\t'same-kind',\n\t'unsafe'\n];\n\n\n// EXPORTS //\n\nexport default CASTING_MODES;\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\nimport contains from '@stdlib/array-base-assert-contains';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function for testing whether a provided value is a valid enumerated field.\n*\n* @private\n* @param {Collection} values - list of possible values\n* @returns {Function} output function\n*/\nfunction isValidOneOf( values ) {\n\treturn isValid;\n\n\t/**\n\t* Tests whether a provided value is a valid enumerated field.\n\t*\n\t* @private\n\t* @param {*} value - input value\n\t* @param {string} name - field name\n\t* @returns {(null|TypeError)} error object or null\n\t*/\n\tfunction isValid( value, name ) {\n\t\tif ( contains( values, value ) ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn new TypeError( format( 'invalid argument. `%s` field must be one of the following: \"%s\". Value: `%s`.', name, join( values, ', ' ), value ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default isValidOneOf;\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\nvar ALIGNMENTS = {\n\t'int8': 1,\n\t'int16': 2,\n\t'int32': 4,\n\t'int64': 8,\n\n\t'uint8': 1,\n\t'uint16': 2,\n\t'uint32': 4,\n\t'uint64': 8,\n\n\t'float16': 2,\n\t'float32': 4,\n\t'float64': 8,\n\n\t'complex32': 2, // same as float16\n\t'complex64': 4, // same as float32\n\t'complex128': 8, // same as float64\n\n\t'bool': 1\n};\n\n\n// EXPORTS //\n\nexport default ALIGNMENTS;\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\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport hasProp from '@stdlib/assert-has-property';\nimport join from '@stdlib/array-base-join';\nimport constantFunction from '@stdlib/utils-constant-function';\nimport format from '@stdlib/string-format';\nimport hasProperties from './has_properties.js';\nimport isValidNonEmptyString from './is_valid_nonempty_string.js';\nimport isValidString from './is_valid_string.js';\nimport isValidPositiveInteger from './is_valid_positive_integer.js';\nimport isValidBoolean from './is_valid_boolean.js';\nimport isValidType from './is_valid_type.js';\nimport isValidOneOf from './is_valid_one_of.js';\nimport initFieldObject from './init_field_object.js';\nimport byteLength from './byte_length.js';\nimport CASTING_MODES from './casting_modes.js';\nimport ALIGNMENTS from './alignments.js';\n\n\n// VARIABLES //\n\nvar MANDATORY_FIELD_NAMES = [\n\t'name',\n\t'type'\n];\n\nvar VALIDATORS = {\n\t'name': isValidNonEmptyString,\n\t'type': isValidType,\n\t'description': isValidString,\n\t'length': isValidPositiveInteger,\n\t'enumerable': isValidBoolean,\n\t'writable': isValidBoolean,\n\t'default': constantFunction( null ),\n\t'castingMode': isValidOneOf( CASTING_MODES )\n};\n\n\n// MAIN //\n\n/**\n* Normalizes a provided field object.\n*\n* @private\n* @param {Object} obj - input field object\n* @param {Array} keys - list of keys to standardize\n* @returns {(Object|Error)} output object or an error\n*/\nfunction normalize( obj, keys ) {\n\tvar out;\n\tvar err;\n\tvar v;\n\tvar k;\n\tvar i;\n\n\tout = initFieldObject();\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tif ( hasProp( obj, k ) ) {\n\t\t\tv = obj[ k ];\n\t\t\terr = VALIDATORS[ k ]( v, k );\n\t\t\tif ( err ) {\n\t\t\t\treturn err;\n\t\t\t}\n\t\t\tout[ k ] = v;\n\t\t}\n\t}\n\tif ( !hasProperties( out, MANDATORY_FIELD_NAMES ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Field objects must have the following properties: \"%s\". Value: `%s`.', join( MANDATORY_FIELD_NAMES, ', ' ), JSON.stringify( obj ) ) );\n\t}\n\tout.isStructType = isStructConstructorLike( out.type );\n\tout.byteLength = byteLength( out );\n\tif ( out.isStructType ) {\n\t\tout.alignment = out.type.alignment;\n\t} else {\n\t\tout.alignment = ALIGNMENTS[ out.type ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default normalize;\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\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid string field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidNonEmptyString( value, name ) {\n\tif ( isString( value ) || value.length > 0 ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a non-empty string. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidNonEmptyString;\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\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport contains from '@stdlib/array-base-assert-contains';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport DTYPES from './dtypes.js';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid `type` field.\n*\n* @private\n* @param {*} value - input value\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidType( value ) {\n\tif ( contains( DTYPES, value ) || isStructConstructorLike( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be either a struct type or one of the following: \"%s\". Value: `%s`.', 'type', join( DTYPES, ', ' ), value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidType;\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\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid string field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidString( value, name ) {\n\tif ( isString( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a string. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidString;\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\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid positive integer field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidPositiveInteger( value, name ) {\n\tif ( isPositiveInteger( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a positive integer. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidPositiveInteger;\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 an initialized field object.\n*\n* @private\n* @returns {Object} initialized field object\n*/\nfunction initFieldObject() {\n\treturn {\n\t\t'isStructType': false,\n\t\t'description': '',\n\t\t'byteLength': 0,\n\t\t'byteOffset': 0,\n\t\t'alignment': 0,\n\t\t'padding': 0,\n\t\t'enumerable': true,\n\t\t'writable': true,\n\t\t'default': void 0, // explicitly set to `undefined`\n\t\t'castingMode': 'none'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default initFieldObject;\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\nimport hasProp from '@stdlib/assert-has-property';\n\n\n// MAIN //\n\n/**\n* Tests whether an object has a list of properties.\n*\n* @private\n* @param {Object} obj - input object\n* @param {Array} keys - list of property names\n* @returns {boolean} result\n*/\nfunction hasProperties( obj, keys ) {\n\tvar i;\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tif ( !hasProp( obj, keys[ i ] ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default hasProperties;\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\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes required to store a field value.\n*\n* @private\n* @param {Object} obj - input field object\n* @returns {PositiveInteger} number of bytes\n*/\nfunction byteLength( obj ) {\n\tvar nb;\n\tif ( obj.isStructType ) {\n\t\tnb = obj.type.byteLength;\n\t} else {\n\t\tnb = bytesPerElement( obj.type );\n\t}\n\tif ( obj.length ) {\n\t\tnb *= obj.length;\n\t}\n\treturn nb;\n}\n\n\n// EXPORTS //\n\nexport default byteLength;\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 the struct's byte alignment.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @returns {PositiveInteger} alignment\n*/\nfunction alignment( fields ) {\n\tvar max;\n\tvar v;\n\tvar i;\n\n\tmax = 0;\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\tv = fields[ i ].alignment;\n\t\tif ( v > max ) {\n\t\t\tmax = v;\n\t\t}\n\t}\n\treturn max;\n}\n\n\n// EXPORTS //\n\nexport default alignment;\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\nimport isObject from '@stdlib/assert-is-object';\nimport hasProp from '@stdlib/assert-has-property';\nimport format from '@stdlib/string-format';\nimport isUnionType from './is_union_type.js';\nimport FIELD_PROPERTIES from './field_properties.js';\nimport normalizeField from './normalize_field.js';\nimport resolveAlignment from './resolve_alignment.js';\n\n\n// MAIN //\n\n/**\n* Normalizes a field object representing a union type.\n*\n* @private\n* @param {Object} obj - input field object\n* @returns {(Object|null|Error)} normalized field object or error object\n*/\nfunction normalizeUnion( obj ) {\n\tvar fields;\n\tvar dflg;\n\tvar out;\n\tvar tmp;\n\tvar len;\n\tvar o;\n\tvar i;\n\n\tfields = obj.fields;\n\tif ( fields.length === 0 ) {\n\t\treturn null;\n\t}\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tif ( !isObject( o ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( isUnionType( o ) ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Union types cannot contain nested union types. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t}\n\t\tif ( dflg === void 0 && hasProp( o, 'default' ) ) {\n\t\t\tdflg = true;\n\t\t} else if ( dflg === true && hasProp( o, 'default' ) ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Union types can only contain one field with a default value. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t}\n\t\ttmp = normalizeField( o, FIELD_PROPERTIES );\n\t\tif ( tmp instanceof Error ) {\n\t\t\treturn tmp;\n\t\t}\n\t\tif ( i === 0 ) {\n\t\t\tlen = tmp.byteLength;\n\t\t} else if ( tmp.byteLength !== len ) {\n\t\t\treturn new RangeError( format( 'invalid argument. Union types must contain fields having the same byte length. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn {\n\t\t'type': 'union',\n\t\t'fields': out,\n\t\t'byteLength': len,\n\t\t'byteOffset': 0,\n\t\t'alignment': resolveAlignment( out ),\n\t\t'padding': 0\n\t};\n}\n\n\n// EXPORTS //\n\nexport default normalizeUnion;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport getter from '@stdlib/array-base-getter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object.\n*\n* @param {Collection} x - input array\n* @returns {Function} accessor\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = resolveGetter( arr );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction resolveGetter( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn accessorGetter( dt );\n\t}\n\treturn getter( dt );\n}\n\n\n// EXPORTS //\n\nexport default resolveGetter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/assert-is-accessor-array';\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'indexOf' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Returns the index of the first element which equals a provided search element.\n*\n* @private\n* @param {Collection} x - input array\n* @param {*} searchElement - search element\n* @param {NonNegativeInteger} fromIndex - starting index (inclusive)\n* @returns {integer} index\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var idx = internal( x, 2, 0 );\n* // returns 1\n*/\nfunction internal( x, searchElement, fromIndex ) {\n\tvar i;\n\tfor ( i = fromIndex; i < x.length; i++ ) {\n\t\tif ( searchElement === x[ i ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\n* Returns the index of the first element which equals a provided search element.\n*\n* @private\n* @param {Object} x - input array object\n* @param {*} searchElement - search element\n* @param {NonNegativeInteger} fromIndex - starting index (inclusive)\n* @returns {integer} index\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var idx = accessors( x, 2, 0 );\n* // returns 1\n*/\nfunction accessors( x, searchElement, fromIndex ) {\n\tvar get;\n\tvar i;\n\n\tget = resolveGetter( x );\n\tfor ( i = fromIndex; i < x.length; i++ ) {\n\t\tif ( searchElement === get( x, i ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n// MAIN //\n\n/**\n* Returns the index of the first element which equals a provided search element.\n*\n* ## Notes\n*\n* - If unable to find an element which equals a provided search element, the function returns `-1`.\n*\n* @param {Collection} x - input array\n* @param {*} searchElement - search element\n* @param {integer} fromIndex - starting index (inclusive)\n* @returns {integer} index\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var idx = indexOf( x, 2, 0 );\n* // returns 1\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var idx = indexOf( x, 2, 0 );\n* // returns 1\n*/\nfunction indexOf( x, searchElement, fromIndex ) {\n\tif ( hasMethod( x, 'indexOf' ) ) {\n\t\treturn x.indexOf( searchElement, fromIndex );\n\t}\n\tif ( fromIndex < 0 ) {\n\t\tfromIndex += x.length;\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex = 0;\n\t\t}\n\t}\n\tif ( isAccessorArray( x ) ) {\n\t\treturn accessors( x, searchElement, fromIndex );\n\t}\n\treturn internal( x, searchElement, fromIndex );\n}\n\n\n// EXPORTS //\n\nexport default indexOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an array-like object supporting the accessor (get/set) protocol.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*\n* @example\n* var bool = isAccessorArray( {} );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn (\n\t\tisCollection( value ) &&\n\t\tisFunction( value.get ) &&\n\t\tisFunction( value.set )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isAccessorArray;\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\nimport indexOf from '@stdlib/array-base-index-of';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the index of a specified field name in a provided list of field names.\n*\n* @private\n* @param {Array} names - list of field names\n* @param {string} name - field name\n* @throws {Error} struct must have at least one field\n* @throws {TypeError} must provide a recognized field name\n* @returns {(integer|Error)} index or an error object\n*/\nfunction fieldIndex( names, name ) {\n\tvar idx;\n\tif ( names.length === 0 ) {\n\t\treturn new Error( 'invalid operation. struct does not have any fields.' );\n\t}\n\tidx = indexOf( names, name, 0 );\n\tif ( idx < 0 ) {\n\t\treturn new TypeError( format( 'invalid argument. Field name must be one of the following: \"%s\". Value: `%s`.', join( names, ', ' ), name ) );\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default fieldIndex;\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\nimport min from '@stdlib/math-base-special-fast-min';\nimport isUnionType from './is_union_type.js';\n\n\n// FUNCTIONS //\n\n/**\n* Sets alignment padding for one or more field objects.\n*\n* ## Notes\n*\n* - This function mutates each field object.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @param {NonNegativeInteger} padding - alignment padding\n* @returns {Array} input array\n*/\nfunction setPadding( fields, padding ) {\n\tvar i;\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\tfields[ i ].padding = padding;\n\t}\n\treturn fields;\n}\n\n\n// MAIN //\n\n/**\n* Computes the byte offset for each field.\n*\n* ## Notes\n*\n* - This function mutates each field object.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @param {PositiveInteger} max - maximum alignment\n* @returns {Array} input array\n*/\nfunction byteOffsets( fields, max ) {\n\tvar alignment;\n\tvar padding;\n\tvar offset;\n\tvar tmp;\n\tvar o;\n\tvar i;\n\tvar j;\n\n\toffset = 0;\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// Resolve the alignment requirement for this field:\n\t\talignment = min( o.alignment, max );\n\n\t\t// Align the current offset to the required boundary:\n\t\tpadding = ( alignment-(offset%alignment) ) % alignment;\n\t\toffset += padding;\n\n\t\t// Set the padding for the previous member:\n\t\tif ( i > 0 ) {\n\t\t\ttmp = fields[ i-1 ];\n\t\t\ttmp.padding = padding;\n\t\t\tif ( isUnionType( o ) ) {\n\t\t\t\tsetPadding( tmp.fields, padding );\n\t\t\t}\n\t\t}\n\t\t// Set the offset for the current member:\n\t\to.byteOffset = offset;\n\n\t\t// If the current member is a union type, propagate the offset to its child field objects...\n\t\tif ( isUnionType( o ) ) {\n\t\t\tfor ( j = 0; j < o.fields.length; j++ ) {\n\t\t\t\to.fields[ j ].byteOffset = offset;\n\t\t\t}\n\t\t}\n\t\t// Advance the offset by the size, in bytes, of the member:\n\t\toffset += o.byteLength;\n\t}\n\t// Compute the padding for the last member:\n\tpadding = ( alignment - (offset%alignment) ) % alignment;\n\n\t// Set the padding for the last member:\n\to.padding = padding;\n\n\t// If the last member is a union type, propagate the offset to its child field objects...\n\tif ( isUnionType( o ) ) {\n\t\tsetPadding( o.fields, padding );\n\t}\n\n\treturn fields;\n}\n\n\n// EXPORTS //\n\nexport default byteOffsets;\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\nimport replace from '@stdlib/string-base-replace';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a new regular expression for matching byte parameters.\n*\n* @private\n* @returns {RegExp} regular expression\n*/\nfunction reByteOffset() {\n\treturn /\\[(\\d{1,}),/g;\n}\n\n/**\n* Returns a function for replacing byte values in a serialized struct.\n*\n* @private\n* @param {NonNegativeInteger} offset - byte offset\n* @returns {Function} replacer function\n*/\nfunction replacer( offset ) {\n\treturn wrapped;\n\n\t/**\n\t* Callback invoked for each match.\n\t*\n\t* @private\n\t* @param {string} match - matched substring\n\t* @param {string} p1 - first matched capture group substring\n\t* @returns {string} replacement string\n\t*/\n\tfunction wrapped( match, p1 ) {\n\t\treturn format( '[%u,', offset+parseInt( p1, 10 ) );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Serializes a struct to a layout format.\n*\n* ## Notes\n*\n* - The output format is a multi-column format having the following layout:\n*\n* ```text\n* | ...[byte_offset,byte_length] |\n* ```\n*\n* For example,\n*\n* ```text\n* |[0,8]|[8,1]|[16,16]|[32,8]|\n* ```\n*\n* @private\n* @param {Array} fields - list of normalized fields\n* @returns {string} string representation\n*/\nfunction layoutFormat( fields ) {\n\tvar out;\n\tvar tmp;\n\tvar re;\n\tvar N;\n\tvar o;\n\tvar i;\n\n\tN = fields.length;\n\n\t// Create a new regular expression for matching byte offsets:\n\tre = reByteOffset();\n\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// If we are currently processing fields in a union, move along to the next non-union field...\n\t\tif ( i > 0 && ( o.byteOffset === fields[ i-1 ].byteOffset ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// If the current type is a struct, we need to serialize and then post-process...\n\t\tif ( o.isStructType ) {\n\t\t\tout.push( replace( o.type.layout, re, replacer( o.byteOffset ) ) );\n\t\t\tcontinue;\n\t\t}\n\t\t// Format the field data:\n\t\tout.push( format( '|<%s>[%u,%u]', o.type, o.byteOffset, o.byteLength ) );\n\t}\n\ttmp = format( '%s|', out.join( '' ) );\n\n\t// If we having a trailing `||` due to a nested struct, remove the final `|`:\n\tif ( tmp[ tmp.length-2 ] === '|' ) {\n\t\ttmp = tmp.substring( 0, tmp.length-1 );\n\t}\n\treturn tmp;\n}\n\n\n// EXPORTS //\n\nexport default layoutFormat;\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\nimport isPlainObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport linearFormat from './format_linear.js';\nimport layoutFormat from './format_layout.js';\n\n\n// VARIABLES //\n\nvar FORMATS = [\n\t'none',\n\t'linear',\n\t'layout'\n];\nvar isFormat = contains( FORMATS );\n\n\n// MAIN //\n\n/**\n* Serializes a struct to a string.\n*\n* @private\n* @param {Function} Struct - struct constructor\n* @param {Array} fields - list of normalized fields\n* @param {Options} options - function options\n* @param {string} [options.format] - serialization format\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {string} string representation\n*/\nfunction toString( Struct, fields, options ) { // eslint-disable-line stdlib/no-redeclare\n\tvar opts;\n\tif ( !isPlainObject( options ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\topts = {\n\t\t'format': 'none'\n\t};\n\tif ( hasOwnProp( options, 'format' ) ) {\n\t\topts.format = options.format;\n\t\tif ( !isFormat( opts.format ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'format', join( FORMATS, ', ' ), options.format ) );\n\t\t}\n\t}\n\tif ( opts.format === 'linear' ) {\n\t\treturn linearFormat( Struct, fields );\n\t}\n\tif ( opts.format === 'layout' ) {\n\t\treturn layoutFormat( fields );\n\t}\n\t// Case: opts.format === 'none'\n\treturn '';\n}\n\n\n// EXPORTS //\n\nexport default toString;\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\nimport floor from '@stdlib/math-base-special-floor';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Serializes a struct to a linear string format.\n*\n* ## Notes\n*\n* - The output format is a three-column format having the following layout:\n*\n* ```text\n* | byte_number | [field|padding] | notes |\n* ```\n*\n* - Nested `struct` instances are intentionally treated as opaque types, as we have limited access to struct internals (e.g., packed versus unpacked, field padding, etc), and we would effectively have to recompute all alignments and associated field data for the purposes of rendering. A user can always separately render a nested `struct` instance to a string in order to better understand its layout independently of its surrounding context in a parent `struct` instance.\n*\n* @private\n* @param {Function} Struct - struct constructor\n* @param {Array} fields - list of normalized fields\n* @returns {string} string representation\n*/\nfunction linearFormat( Struct, fields ) {\n\tvar nbytes;\n\tvar fmt0;\n\tvar fmt1;\n\tvar fmt2;\n\tvar bfmt;\n\tvar ufmt;\n\tvar fmt;\n\tvar tmp;\n\tvar out;\n\tvar flg;\n\tvar ib;\n\tvar c0;\n\tvar c1;\n\tvar c2;\n\tvar w0;\n\tvar w1;\n\tvar w;\n\tvar N;\n\tvar o;\n\tvar f;\n\tvar t;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tN = fields.length;\n\n\t// Resolve the size of the struct:\n\tnbytes = Struct.byteLength;\n\n\t// Compute the width of the first column:\n\tw0 = ( nbytes-1 ).toString().length;\n\n\t// Define a format string for the first column:\n\tfmt0 = '%'+w0+'s';\n\n\t// Determine the longest field name...\n\tw1 = 0;\n\tfor ( i = 0; i < N; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// Format: []\n\t\tw = o.name.length + 1 + ( o.byteLength-1 ).toString().length + 1;\n\t\tif ( w > w1 ) {\n\t\t\tw1 = w;\n\t\t}\n\t}\n\t// Define a format string for the second column:\n\tfmt1 = '%'+w1+'s';\n\n\t// Define a format string for the third column:\n\tfmt2 = '// %s';\n\n\t// Define a format string which combines the columns:\n\tfmt = '%s: %s %s';\n\n\t// Initialize a byte counter:\n\tib = 0;\n\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// If we are currently processing fields in a union, move along to the next non-union field...\n\t\tif ( i > 0 && ( o.byteOffset === fields[ i-1 ].byteOffset ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Check whether this field is the first field of a union...\n\t\tif ( i < N-1 ) {\n\t\t\tflg = ( o.byteOffset === fields[ i+1 ].byteOffset );\n\t\t} else {\n\t\t\tflg = false;\n\t\t}\n\t\tfor ( j = 0; j < o.byteLength; j++ ) {\n\t\t\t// In the first column, render the byte number:\n\t\t\tc0 = format( fmt0, ib.toString() );\n\n\t\t\t// In the second column, render the field name and the byte number relative to the field:\n\t\t\tc1 = format( fmt1, format( '%s[%u]', o.name, j ) );\n\n\t\t\t// If a field type spans multiple bytes, render the byte number:\n\t\t\tif ( o.alignment > 1 ) {\n\t\t\t\tbfmt = ' (byte %u)';\n\t\t\t} else {\n\t\t\t\tbfmt = '';\n\t\t\t}\n\t\t\t// If a field is part of a union, make that explicit:\n\t\t\tif ( flg ) {\n\t\t\t\tufmt = ' => union: %s';\n\t\t\t\ttmp = [];\n\t\t\t\tk = i + 1;\n\t\t\t\twhile ( k < N && o.byteOffset === fields[ k ].byteOffset ) {\n\t\t\t\t\tf = fields[ k ];\n\t\t\t\t\tif ( f.isStructType ) {\n\t\t\t\t\t\tt = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt = f.type;\n\t\t\t\t\t}\n\t\t\t\t\ttmp.push( format( '%s<%s>[%u]', f.name, t, j%f.alignment ) );\n\t\t\t\t\tk += 1;\n\t\t\t\t}\n\t\t\t\tufmt = format( ufmt, tmp.join( ', ' ) );\n\t\t\t} else {\n\t\t\t\tufmt = '';\n\t\t\t}\n\t\t\ttmp = format( bfmt+ufmt, j%o.alignment );\n\n\t\t\t// If a field contains multiple elements (i.e., is an array), render the field type along with the element number:\n\t\t\tif ( o.length ) {\n\t\t\t\tc2 = format( fmt2, format( '%s[%u]%s', o.type, floor( j/o.alignment ), tmp ) );\n\t\t\t}\n\t\t\t// Otherwise, just render the field type:\n\t\t\telse {\n\t\t\t\tc2 = format( fmt2, format( '%s%s', o.type, tmp ) );\n\t\t\t}\n\t\t\t// Render the row string:\n\t\t\tout.push( format( fmt, c0, c1, c2 ) );\n\t\t\tib += 1;\n\t\t}\n\t\tfor ( j = 0; j < o.padding; j++ ) {\n\t\t\tc0 = format( fmt0, ib.toString() );\n\t\t\tc1 = format( fmt1, '--' );\n\t\t\tc2 = format( fmt2, 'padding' );\n\t\t\tout.push( format( fmt, c0, c1, c2 ) );\n\t\t\tib += 1;\n\t\t}\n\t}\n\treturn out.join( '\\n' );\n}\n\n\n// EXPORTS //\n\nexport default linearFormat;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Dummy function.\n*\n* @private\n*/\nfunction foo() {\n\t// No-op...\n}\n\n\n// EXPORTS //\n\nexport default foo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport hasFunctionNameSupport from '@stdlib/assert-has-function-name-support';\nimport format from '@stdlib/string-format';\nimport { REGEXP as RE } from '@stdlib/regexp-function-name';\n\n\n// VARIABLES //\n\nvar isFunctionNameSupported = hasFunctionNameSupport();\n\n\n// MAIN //\n\n/**\n* Returns the name of a function.\n*\n* @param {Function} fcn - input function\n* @throws {TypeError} must provide a function\n* @returns {string} function name\n*\n* @example\n* var v = functionName( Math.sqrt );\n* // returns 'sqrt'\n*\n* @example\n* var v = functionName( function foo(){} );\n* // returns 'foo'\n*\n* @example\n* var v = functionName( function(){} );\n* // returns '' || 'anonymous'\n*\n* @example\n* var v = functionName( String );\n* // returns 'String'\n*/\nfunction functionName( fcn ) {\n\t// TODO: add support for generator functions?\n\tif ( isFunction( fcn ) === false ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', fcn ) );\n\t}\n\tif ( isFunctionNameSupported ) {\n\t\treturn fcn.name;\n\t}\n\treturn RE.exec( fcn.toString() )[ 1 ];\n}\n\n\n// EXPORTS //\n\nexport default functionName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport foo from './foo.js';\n\n\n// MAIN //\n\n/**\n* Tests for native function `name` support.\n*\n* @returns {boolean} boolean indicating if an environment has function `name` support\n*\n* @example\n* var bool = hasFunctionNameSupport();\n* // returns \n*/\nfunction hasFunctionNameSupport() {\n\treturn ( foo.name === 'foo' );\n}\n\n\n// EXPORTS //\n\nexport default hasFunctionNameSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Int8Array from '@stdlib/array-int8';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Float32Array from '@stdlib/array-float32';\nimport Float64Array from '@stdlib/array-float64';\n\n\n// MAIN //\n\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\nimport fcnName from '@stdlib/utils-function-name';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport hasFloat64ArraySupport from '@stdlib/assert-has-float64array-support';\nimport Float64Array from '@stdlib/array-float64';\nimport CTORS from './ctors.js';\nimport NAMES from './names.json';\n\n\n// VARIABLES //\n\n// Abstract `TypedArray` class:\nvar TypedArray = ( hasFloat64ArraySupport() ) ? getPrototypeOf( Float64Array ) : Dummy; // eslint-disable-line max-len\n\n// Ensure abstract typed array class has expected name:\nTypedArray = ( fcnName( TypedArray ) === 'TypedArray' ) ? TypedArray : Dummy;\n\n\n// FUNCTIONS //\n\n/**\n* Dummy constructor.\n*\n* @private\n*/\nfunction Dummy() {} // eslint-disable-line no-empty-function\n\n\n// MAIN //\n\n/**\n* Tests if a value is a typed array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a typed array\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var bool = isTypedArray( new Int8Array( 10 ) );\n* // returns true\n*/\nfunction isTypedArray( value ) {\n\tvar v;\n\tvar i;\n\n\tif ( typeof value !== 'object' || value === null ) {\n\t\treturn false;\n\t}\n\t// Check for the abstract class...\n\tif ( value instanceof TypedArray ) {\n\t\treturn true;\n\t}\n\t// Check for typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired class...\n\twhile ( value ) {\n\t\tv = ctorName( value );\n\t\tfor ( i = 0; i < NAMES.length; i++ ) {\n\t\t\tif ( NAMES[ i ] === v ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tvalue = getPrototypeOf( value );\n\t}\n\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isTypedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\n\n\n// MAIN //\n\nvar CTORS = [\n\tComplex128Array,\n\tComplex64Array\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\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\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport Symbol from '@stdlib/symbol-ctor';\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.hasInstance` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.hasInstance` support\n*\n* @example\n* var bool = hasHasInstanceSymbolSupport();\n* // returns \n*/\nfunction hasHasInstanceSymbolSupport() { // eslint-disable-line id-length\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol' &&\n\t\thasOwnProp( Symbol, 'hasInstance' ) &&\n\t\ttypeof Symbol.hasInstance === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasHasInstanceSymbolSupport;\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\nimport hasHasInstanceSymbolSupport from '@stdlib/assert-has-has-instance-symbol-support'; // eslint-disable-line id-length\n\n\n// MAIN //\n\n/**\n* Has instance symbol.\n*\n* @name HasInstanceSymbol\n* @constant\n* @type {(symbol|null)}\n*\n* @example\n* import isArray from '@stdlib/assert-is-array';\n*\n* function ArrayLike() {\n* return {\n* 'length': 3,\n* '0': 1,\n* '1': 2,\n* '2': 3\n* };\n* };\n*\n* ArrayLike[ HasInstanceSymbol ] = isArray;\n*/\nvar HasInstanceSymbol = ( hasHasInstanceSymbolSupport() ) ? Symbol.hasInstance : null; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default HasInstanceSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasHasInstanceSymbolSupport from '@stdlib/assert-has-has-instance-symbol-support'; // eslint-disable-line id-length\nimport HasInstanceSymbol from '@stdlib/symbol-has-instance';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar hasSupport = hasHasInstanceSymbolSupport();\n\n\n// MAIN //\n\n/**\n* Tests whether a value has in its prototype chain a specified constructor as a prototype property.\n*\n* @param {*} value - value to test\n* @param {Function} constructor - constructor to test against\n* @throws {TypeError} constructor must be callable\n* @returns {boolean} boolean indicating whether a value is an instance of a provided constructor\n*\n* @example\n* var bool = instanceOf( [], Array );\n* // returns true\n*\n* @example\n* var bool = instanceOf( {}, Object ); // exception\n* // returns true\n*\n* @example\n* var bool = instanceOf( 'beep', String );\n* // returns false\n*\n* @example\n* var bool = instanceOf( null, Object );\n* // returns false\n*\n* @example\n* var bool = instanceOf( 5, Object );\n* // returns false\n*/\nfunction instanceOf( value, constructor ) {\n\t// TODO: replace with `isCallable` check\n\tif (\n\t\ttypeof constructor !== 'function' &&\n\t\t!(\n\t\t\thasSupport &&\n\t\t\ttypeof constructor === 'object' &&\n\t\t\ttypeof constructor[ HasInstanceSymbol ] === 'function'\n\t\t)\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be callable. Value: `%s`.', constructor ) );\n\t}\n\treturn ( value instanceof constructor );\n}\n\n\n// EXPORTS //\n\nexport default instanceOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Int8Array from '@stdlib/array-int8';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Float32Array from '@stdlib/array-float32';\nimport Float64Array from '@stdlib/array-float64';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\nvar CTORS = [\n\t[ Float64Array, 'Float64Array' ],\n\t[ Float32Array, 'Float32Array' ],\n\t[ Int32Array, 'Int32Array' ],\n\t[ Uint32Array, 'Uint32Array' ],\n\t[ Int16Array, 'Int16Array' ],\n\t[ Uint16Array, 'Uint16Array' ],\n\t[ Int8Array, 'Int8Array' ],\n\t[ Uint8Array, 'Uint8Array' ],\n\t[ Uint8ClampedArray, 'Uint8ClampedArray' ],\n\t[ Complex64Array, 'Complex64Array' ],\n\t[ Complex128Array, 'Complex128Array' ],\n\t[ BooleanArray, 'BooleanArray' ]\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport instanceOf from '@stdlib/assert-instance-of';\nimport ctorName from '@stdlib/utils-constructor-name';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport CTORS from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns the typed array type.\n*\n* @private\n* @param {TypedArray} arr - typed array\n* @returns {(string|void)} typed array type\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( 5 );\n* var str = typeName( arr );\n* // returns 'Float64Array'\n*/\nfunction typeName( arr ) {\n\tvar v;\n\tvar i;\n\n\t// Check for typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( instanceOf( arr, CTORS[ i ][ 0 ] ) ) {\n\t\t\treturn CTORS[ i ][ 1 ];\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired native class...\n\twhile ( arr ) {\n\t\tv = ctorName( arr );\n\t\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\t\tif ( v === CTORS[ i ][ 1 ] ) {\n\t\t\t\treturn CTORS[ i ][ 1 ];\n\t\t\t}\n\t\t}\n\t\tarr = getPrototypeOf( arr );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default typeName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isTypedArray from '@stdlib/assert-is-typed-array';\nimport isComplexTypedArray from '@stdlib/assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/assert-is-booleanarray';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport format from '@stdlib/string-format';\nimport typeName from './type.js';\n\n\n// MAIN //\n\n/**\n* Returns a JSON representation of a typed array.\n*\n* ## Notes\n*\n* - We build a JSON object representing a typed array similar to how Node.js `Buffer` objects are represented. See [Buffer][1].\n*\n* [1]: https://nodejs.org/api/buffer.html#buffer_buf_tojson\n*\n* @param {TypedArray} arr - typed array to serialize\n* @throws {TypeError} first argument must be a typed array\n* @returns {Object} JSON representation\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 5.0, 3.0 ] );\n* var json = typedarray2json( arr );\n* // returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }\n*/\nfunction typedarray2json( arr ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tif ( isTypedArray( arr ) ) {\n\t\tdata = arr;\n\t} else if ( isComplexTypedArray( arr ) ) {\n\t\tif ( arr.BYTES_PER_ELEMENT === 8 ) {\n\t\t\tdata = reinterpret64( arr, 0 );\n\t\t} else { // arr.BYTES_PER_ELEMENT === 16\n\t\t\tdata = reinterpret128( arr, 0 );\n\t\t}\n\t} else if ( isBooleanArray( arr ) ) {\n\t\tdata = reinterpretBoolean( arr, 0 );\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a typed array. Value: `%s`.', arr ) );\n\t}\n\tout = {\n\t\t'type': typeName( arr ),\n\t\t'data': []\n\t};\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.data.push( data[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default typedarray2json;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport BooleanArray from '@stdlib/array-bool';\nimport constructorName from '@stdlib/utils-constructor-name';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a BooleanArray.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a BooleanArray\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var bool = isBooleanArray( new BooleanArray( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isBooleanArray( [] );\n* // returns false\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\tvalue instanceof BooleanArray ||\n\t\tconstructorName( value ) === 'BooleanArray'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBooleanArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport CTORS from './ctors.js';\nimport NAMES from './names.json';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a complex typed array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isComplexTypedArray( new Complex128Array( 10 ) );\n* // returns true\n*/\nfunction isComplexTypedArray( value ) {\n\tvar v;\n\tvar i;\n\n\tif ( typeof value !== 'object' || value === null ) {\n\t\treturn false;\n\t}\n\t// Check for complex typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired class...\n\twhile ( value ) {\n\t\tv = ctorName( value );\n\t\tfor ( i = 0; i < NAMES.length; i++ ) {\n\t\t\tif ( NAMES[ i ] === v ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tvalue = getPrototypeOf( value );\n\t}\n\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isComplexTypedArray;\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 no-restricted-syntax, id-length, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setNonEnumerableReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport hasProp from '@stdlib/assert-has-property';\nimport min from '@stdlib/math-base-special-fast-min';\nimport filled from '@stdlib/array-base-filled';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport CTOR_NAME from './ctor_name.js';\nimport createPrototypeAccessors from './create_prototype_accessors.js';\nimport isStructInstance from './is_struct_instance.js';\nimport normalize from './normalize_field_list.js';\nimport fieldNames from './field_names.js';\nimport fieldIndex from './field_index.js';\nimport resolveAlignment from './resolve_alignment.js';\nimport byteOffsets from './byte_offsets.js';\nimport partitions from './partitions.js';\nimport flatten from './flatten_fields.js';\nimport struct2string from './to_string.js';\nimport struct2json from './to_json.js';\nimport layoutFormat from './format_layout.js';\n\n\n// MAIN //\n\n/**\n* Returns a constructor for creating a fixed-width composite data type (a.k.a., a `struct`).\n*\n* @param {ObjectArray} fields - structure fields\n* @throws {TypeError} first argument must be an array-like object containing objects\n* @throws {TypeError} field objects must have required properties\n* @throws {TypeError} field objects must have valid fields\n* @throws {TypeError} union types must be array-like objects containing objects\n* @throws {RangeError} union types must contain fields having the same byte length\n* @throws {TypeError} union types cannot contain nested union types\n* @throws {TypeError} union types can only contain one field with a default value\n* @throws {Error} unexpected error\n* @returns {Function} constructor\n*\n* @example\n* var fields = [\n* {\n* 'type': 'union',\n* 'fields': [\n* {\n* 'name': 'double',\n* 'description': 'double-precision floating-point number',\n* 'type': 'float64',\n* 'enumerable': true,\n* 'writable': true,\n* 'castingMode': 'none'\n* },\n* {\n* 'name': 'words',\n* 'description': 'high and low words',\n* 'type': 'uint32',\n* 'length': 2,\n* 'enumerable': true,\n* 'writable': true,\n* 'castingMode': 'none'\n* }\n* ]\n* }\n* ];\n* var Struct = factory( fields );\n*\n* var data = {\n* 'double': 3.14\n* };\n* var s = new Struct( data );\n* // returns \n*\n* var v = s.double;\n* // returns 3.14\n*\n* var w = s.words;\n* // e.g., [ 1374389535, 1074339512 ]\n*/\nfunction factory( fields ) {\n\tvar FIELD_NAMES;\n\tvar BYTE_LENGTH;\n\tvar PARTITIONS;\n\tvar ALIGNMENT;\n\tvar ACCESSORS;\n\tvar FIELDS;\n\tvar tmp;\n\tvar o;\n\tif ( !isCollection( fields ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', fields ) );\n\t}\n\t// Normalize the list of field objects:\n\ttmp = normalize( fields );\n\tif ( tmp instanceof Error ) {\n\t\tthrow tmp;\n\t}\n\tFIELDS = tmp;\n\n\t// Resolve the list of unique field names:\n\ttmp = fieldNames( FIELDS );\n\tif ( tmp instanceof Error ) {\n\t\tthrow tmp;\n\t}\n\tFIELD_NAMES = tmp;\n\n\t// Resolve the struct's alignment requirements:\n\tALIGNMENT = resolveAlignment( FIELDS );\n\n\t// Compute the byte offset for each field:\n\tFIELDS = byteOffsets( FIELDS, ALIGNMENT );\n\n\t// Now that we've finished processing provided field objects, flatten the list, such that union types are implied by field objects having the same byte offset:\n\tFIELDS = flatten( FIELDS );\n\n\t// Compute field \"partitions\" (i.e., non-overlapping views):\n\tPARTITIONS = partitions( FIELDS );\n\n\t// Compute the struct's byte length:\n\to = FIELDS[ FIELDS.length-1 ];\n\tBYTE_LENGTH = o.byteOffset + o.byteLength + o.padding;\n\n\t/**\n\t* Constructor for a composite data type (a.k.a., a `struct`).\n\t*\n\t* @private\n\t* @param {(Object|ArrayBuffer)} [arg] - array buffer or data object\n\t* @param {NonNegativeInteger} [byteOffset=0] - offset, in bytes, to the first byte in a provided buffer for the returned `struct` to reference\n\t* @param {NonNegativeInteger} [byteLength] - maximum number of elements in the byte array\n\t* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n\t* @throws {TypeError} second argument must be a nonnegative integer\n\t* @throws {TypeError} third argument must be a nonnegative integer\n\t* @throws {Error} union types may only be initialized by a single member\n\t* @returns {Struct} struct instance\n\t*/\n\tfunction Struct( arg, byteOffset, byteLength ) {\n\t\tvar values;\n\t\tvar nargs;\n\t\tvar cache;\n\t\tvar view;\n\t\tvar obj;\n\t\tvar o;\n\t\tvar v;\n\t\tvar i;\n\t\tvar j;\n\t\tvar k;\n\n\t\tnargs = arguments.length;\n\t\tif ( !( this instanceof Struct ) ) {\n\t\t\tif ( nargs === 0 ) {\n\t\t\t\treturn new Struct();\n\t\t\t}\n\t\t\tif ( nargs === 1 ) {\n\t\t\t\treturn new Struct( arg );\n\t\t\t}\n\t\t\tif ( nargs === 2 ) {\n\t\t\t\treturn new Struct( arg, byteOffset );\n\t\t\t}\n\t\t\treturn new Struct( arg, byteOffset, byteLength );\n\t\t}\n\t\tif ( isArrayBuffer( arg ) ) {\n\t\t\tif ( nargs === 1 ) {\n\t\t\t\tview = new DataView( arg, 0, BYTE_LENGTH );\n\t\t\t} else {\n\t\t\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t\t\t}\n\t\t\t\tif ( nargs === 2 ) {\n\t\t\t\t\tview = new DataView( arg, byteOffset, BYTE_LENGTH );\n\t\t\t\t} else {\n\t\t\t\t\tif ( !isNonNegativeInteger( byteLength ) ) {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Byte length must be a nonnegative integer. Value: `%s`.', byteLength ) );\n\t\t\t\t\t}\n\t\t\t\t\tview = new DataView( arg, byteOffset, min( byteLength, BYTE_LENGTH ) ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( view.byteLength < BYTE_LENGTH ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer has insufficient capacity. Minimum capacity: `%u`.', BYTE_LENGTH ) );\n\t\t\t}\n\t\t} else {\n\t\t\tview = new DataView( new ArrayBuffer( BYTE_LENGTH ) );\n\t\t\tif ( nargs > 0 ) {\n\t\t\t\tif ( !isObject( arg ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tobj = arg;\n\t\t\t}\n\t\t}\n\t\t// Bind the byte buffer to the current instance:\n\t\tsetReadOnly( this, PRIVATE_BUFFER, view );\n\n\t\t// If we were provided a data object, set provided fields...\n\t\tif ( obj !== void 0 ) {\n\t\t\t// Initialize an array containing values to set:\n\t\t\tvalues = filled( void 0, FIELDS.length );\n\n\t\t\t// For each field, determine whether a value has been specified...\n\t\t\tcache = {};\n\t\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\t\tk = FIELD_NAMES[ i ];\n\t\t\t\tj = PARTITIONS[ i ];\n\t\t\t\tif ( hasProp( obj, k ) ) {\n\t\t\t\t\t// Check whether a value has already been specified for this view (i.e., via another union member)...\n\t\t\t\t\tif ( cache[ j ] ) {\n\t\t\t\t\t\tthrow new Error( 'invalid argument. Union types may only be initialized by a single member.' );\n\t\t\t\t\t}\n\t\t\t\t\tvalues[ i ] = obj[ k ];\n\t\t\t\t\tcache[ j ] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Perform a second pass over the fields to fill in default initial values...\n\t\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\t\tj = PARTITIONS[ i ];\n\t\t\t\tif ( cache[ j ] ) {\n\t\t\t\t\t// Skip fields already having initial values...\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\to = FIELDS[ i ];\n\t\t\t\tif ( o.default !== void 0 ) {\n\t\t\t\t\tvalues[ i ] = o.default;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Set all fields with initialization values...\n\t\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\t\tv = values[ i ];\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tACCESSORS[ FIELD_NAMES[ i ] ][ 1 ].call( this, v );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t* Constructor name.\n\t*\n\t* @private\n\t* @name name\n\t* @memberof Struct\n\t* @readonly\n\t* @type {string}\n\t* @default 'Struct'\n\t*/\n\tsetReadOnly( Struct, 'name', CTOR_NAME );\n\n\t/**\n\t* Alignment.\n\t*\n\t* @private\n\t* @name alignment\n\t* @memberof Struct\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( Struct, 'alignment', ALIGNMENT );\n\n\t/**\n\t* Size (in bytes) of the `struct`.\n\t*\n\t* @private\n\t* @name byteLength\n\t* @memberof Struct\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( Struct, 'byteLength', BYTE_LENGTH );\n\n\t/**\n\t* Returns a list of `struct` fields.\n\t*\n\t* @private\n\t* @name fields\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Array}\n\t*/\n\tsetNonEnumerableReadOnlyAccessor( Struct, 'fields', function get() {\n\t\treturn FIELD_NAMES.slice();\n\t});\n\n\t/**\n\t* Returns a string corresponding to the `struct` layout.\n\t*\n\t* @private\n\t* @name layout\n\t* @memberof Struct\n\t* @readonly\n\t* @type {string}\n\t*/\n\tsetNonEnumerableReadOnlyAccessor( Struct, 'layout', function get() {\n\t\t// As this is not likely to be a commonly used API, intentionally recompute the layout format in order to avoid consuming memory for what could be a long string...\n\t\treturn layoutFormat( FIELDS );\n\t});\n\n\t/**\n\t* Returns the underlying byte buffer of a `struct`.\n\t*\n\t* @private\n\t* @name bufferOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {Object} obj - struct instance\n\t* @throws {TypeError} must provide a `struct` instance\n\t* @returns {ArrayBuffer} underlying byte buffer\n\t*/\n\tsetReadOnly( Struct, 'bufferOf', function bufferOf( obj ) {\n\t\tif ( !isStructInstance( obj ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a `struct` instance. Value: `%s`.', obj ) );\n\t\t}\n\t\treturn obj[ PRIVATE_BUFFER ].buffer;\n\t});\n\n\t/**\n\t* Returns the length, in bytes, of the value specified by the provided field name.\n\t*\n\t* @private\n\t* @name byteLengthOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {NonNegativeInteger} byte length\n\t*/\n\tsetReadOnly( Struct, 'byteLengthOf', function byteLengthOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].byteLength;\n\t});\n\n\t/**\n\t* Returns the offset, in bytes, from the beginning of a `struct` to the value specified by the provided field name.\n\t*\n\t* @private\n\t* @name byteOffsetOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {NonNegativeInteger} byte offset\n\t*/\n\tsetReadOnly( Struct, 'byteOffsetOf', function byteOffsetOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].byteOffset;\n\t});\n\n\t/**\n\t* Returns the description associated with a provided field name.\n\t*\n\t* @private\n\t* @name descriptionOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {string} description\n\t*/\n\tsetReadOnly( Struct, 'descriptionOf', function descriptionOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].description;\n\t});\n\n\t/**\n\t* Returns a boolean indicating whether a provided value is a `struct` instance.\n\t*\n\t* @private\n\t* @name isStruct\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {*} value - input value\n\t* @returns {boolean} boolean indicating whether a value is a `struct` instance\n\t*/\n\tsetReadOnly( Struct, 'isStruct', function isStruct( value ) {\n\t\treturn (\n\t\t\tvalue instanceof Struct ||\n\t\t\t(\n\t\t\t\tisStructInstance( value ) &&\n\t\t\t\tisStructConstructorLike( value.constructor )\n\t\t\t)\n\t\t);\n\t});\n\n\t/**\n\t* Returns the type associated with a provided field name.\n\t*\n\t* @private\n\t* @name typeOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {(string|Object)} type\n\t*/\n\tsetReadOnly( Struct, 'typeOf', function typeOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].type;\n\t});\n\n\t/**\n\t* Returns the underlying byte buffer of a `struct` as a `DataView`.\n\t*\n\t* @private\n\t* @name viewOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {Object} obj - struct instance\n\t* @throws {TypeError} must provide a `struct` instance\n\t* @returns {DataView} view of underlying byte buffer\n\t*/\n\tsetReadOnly( Struct, 'viewOf', function viewOf( obj ) {\n\t\tvar buf;\n\t\tif ( !isStructInstance( obj ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a `struct` instance. Value: `%s`.', obj ) );\n\t\t}\n\t\tbuf = obj[ PRIVATE_BUFFER ];\n\t\treturn new DataView( buf.buffer, buf.byteOffset, buf.byteLength );\n\t});\n\n\t// Create prototype accessors for getting and setting field values:\n\tACCESSORS = createPrototypeAccessors( Struct.prototype, FIELDS );\n\n\t/**\n\t* Serializes a `struct` to a string.\n\t*\n\t* @private\n\t* @name toString\n\t* @memberof Struct.prototype\n\t* @readonly\n\t* @type {Function}\n\t* @param {Options} [options] - function options\n\t* @param {string} [options.format='none'] - serialization format\n\t* @throws {Error} `this` must be a struct instance\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} must provide valid options\n\t* @returns {string} serialized `struct` instance\n\t*/\n\tsetReadOnly( Struct.prototype, 'toString', function toString() {\n\t\tvar opts;\n\t\tif ( !( this instanceof Struct ) ) {\n\t\t\tthrow new Error( 'invalid invocation. `this` is not a struct instance.' );\n\t\t}\n\t\tif ( arguments.length > 0 ) {\n\t\t\topts = arguments[ 0 ];\n\t\t} else {\n\t\t\topts = {};\n\t\t}\n\t\treturn struct2string( Struct, FIELDS, opts );\n\t});\n\n\t/**\n\t* Serializes a `struct` to JSON.\n\t*\n\t* @private\n\t* @name toJSON\n\t* @memberof Struct.prototype\n\t* @readonly\n\t* @type {Function}\n\t* @throws {Error} `this` must be a struct instance\n\t* @returns {JSON} serialized `struct` instance\n\t*/\n\tsetReadOnly( Struct.prototype, 'toJSON', function toJSON() {\n\t\tif ( !( this instanceof Struct ) ) {\n\t\t\tthrow new Error( 'invalid invocation. `this` is not a struct instance.' );\n\t\t}\n\t\treturn struct2json( this, FIELDS );\n\t});\n\n\treturn Struct;\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-object';\nimport format from '@stdlib/string-format';\nimport FIELD_PROPERTIES from './field_properties.js';\nimport isUnionType from './is_union_type.js';\nimport normalizeField from './normalize_field.js';\nimport normalizeUnion from './normalize_union.js';\n\n\n// MAIN //\n\n/**\n* Normalizes a list of field objects.\n*\n* @private\n* @param {Array} fields - input fields\n* @returns {(Array|Error)} normalized field objects or an error\n*/\nfunction normalize( fields ) {\n\tvar out;\n\tvar tmp;\n\tvar o;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tif ( !isObject( o ) ) {\n\t\t\treturn new TypeError( format( 'invalid argument. First argument must be an array of objects. Value: `%s`. Index: `%d`.', o, i ) );\n\t\t}\n\t\t// Check for a union type which is a collection of nested field objects which all have the same byte length...\n\t\tif ( isUnionType( o ) ) {\n\t\t\ttmp = normalizeUnion( o );\n\t\t\tif ( tmp === null ) {\n\t\t\t\treturn new TypeError( format( 'invalid argument. Union types must be an array of objects. Value: `%s`. Index: `%d`.', JSON.stringify( o ), i ) );\n\t\t\t}\n\t\t\tif ( tmp instanceof Error ) {\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t} else {\n\t\t\ttmp = normalizeField( o, FIELD_PROPERTIES );\n\t\t\tif ( tmp instanceof Error ) {\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default normalize;\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\nimport format from '@stdlib/string-format';\nimport isUnionType from './is_union_type.js';\n\n\n// MAIN //\n\n/**\n* Resolves a list of field names.\n*\n* @private\n* @param {Array} fields - list of field objects\n* @returns {(Array|Error)} list of field names or an error\n*/\nfunction fieldNames( fields ) {\n\tvar hash;\n\tvar out;\n\tvar o1;\n\tvar o2;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\thash = {};\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to1 = fields[ i ];\n\t\tk = o1.name;\n\t\tif ( isUnionType( o1 ) ) {\n\t\t\tfor ( j = 0; j < o1.fields.length; j++ ) {\n\t\t\t\to2 = o1.fields[ j ];\n\t\t\t\tk = o2.name;\n\t\t\t\tif ( hash[ k ] === true ) {\n\t\t\t\t\treturn new TypeError( format( 'invalid argument. First argument must be an array of objects having unique field names. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t\t\t}\n\t\t\t\thash[ k ] = true;\n\t\t\t\tout.push( k );\n\t\t\t}\n\t\t} else if ( hash[ k ] === true ) {\n\t\t\treturn new TypeError( format( 'invalid argument. First argument must be an array of objects having unique field names. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t} else {\n\t\t\thash[ k ] = true;\n\t\t\tout.push( k );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fieldNames;\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\nimport isUnionType from './is_union_type.js';\n\n\n// MAIN //\n\n/**\n* Flattens a list of field objects.\n*\n* @private\n* @param {Array} fields - list of field objects\n* @returns {Array} new list\n*/\nfunction flatten( fields ) {\n\tvar out;\n\tvar o;\n\tvar i;\n\tvar j;\n\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tif ( isUnionType( o ) ) {\n\t\t\tfor ( j = 0; j < o.fields.length; j++ ) {\n\t\t\t\tout.push( o.fields[ j ] );\n\t\t\t}\n\t\t} else {\n\t\t\tout.push( o );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flatten;\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 a list of partition indices.\n*\n* ## Notes\n*\n* - This function partitions field objects according to whether a field object represents a unique \"view\" over an underlying byte buffer. Field objects within a union belong to the same partition.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @returns {NonNegativeIntegerArray} list of indices\n*/\nfunction partitions( fields ) {\n\tvar out;\n\tvar N;\n\tvar o;\n\tvar i;\n\tvar j;\n\n\tN = fields.length;\n\n\tout = [];\n\tj = 0;\n\tfor ( i = 0; i < N-1; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// Check for the start of a union...\n\t\tif ( o.byteOffset === fields[ i+1 ].byteOffset ) {\n\t\t\tout.push( j );\n\t\t\tcontinue;\n\t\t}\n\t\tout.push( j );\n\t\tj += 1;\n\t}\n\t// Set the partition for the last field object:\n\tout.push( j );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default partitions;\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 id-length */\n\n'use strict';\n\n// MODULES //\n\nimport setNonEnumerableReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport setNonEnumerableReadWriteAccessor from '@stdlib/utils-define-nonenumerable-read-write-accessor';\nimport setReadOnlyAccessor from '@stdlib/utils-define-read-only-accessor';\nimport setReadWriteAccessor from '@stdlib/utils-define-read-write-accessor';\nimport getter from './getter.js';\nimport setter from './setter.js';\n\n\n// MAIN //\n\n/**\n* Assigns methods for accessing field values to a provided prototype.\n*\n* @private\n* @param {Object} p - prototype\n* @param {Array} fields - field objects\n* @returns {Object} object containing accessors for each field\n*/\nfunction createPrototypeAccessors( p, fields ) {\n\tvar get;\n\tvar set;\n\tvar out;\n\tvar o;\n\tvar i;\n\n\tout = {};\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tget = getter( o );\n\t\tset = setter( o );\n\t\tif ( o.enumerable ) {\n\t\t\tif ( o.writable ) {\n\t\t\t\tsetReadWriteAccessor( p, o.name, get, set );\n\t\t\t} else {\n\t\t\t\tsetReadOnlyAccessor( p, o.name, get );\n\t\t\t}\n\t\t} else if ( o.writable ) {\n\t\t\tsetNonEnumerableReadWriteAccessor( p, o.name, get, set );\n\t\t} else {\n\t\t\tsetNonEnumerableReadOnlyAccessor( p, o.name, get );\n\t\t}\n\t\tout[ o.name ] = [ get, set ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default createPrototypeAccessors;\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\nimport isCollection from '@stdlib/assert-is-collection';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isFunction from '@stdlib/assert-is-function';\nimport typedarray2json from '@stdlib/array-to-json';\nimport isStructInstance from './is_struct_instance.js';\n\n\n// MAIN //\n\n/**\n* Serializes a `struct` instance to JSON.\n*\n* @private\n* @param {Struct} struct - struct instance\n* @param {Array} fields - list of normalized fields\n* @returns {Object} JSON representation\n*/\nfunction toJSON( struct, fields ) {\n\tvar out;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\tout = {};\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tv = struct[ o.name ];\n\t\tif ( isCollection( v ) ) {\n\t\t\tv = typedarray2json( v );\n\t\t} else if ( isStructInstance( v ) ) {\n\t\t\tv = v.toJSON();\n\t\t} else if ( isComplexLike( v ) && isFunction( v.toJSON ) ) {\n\t\t\tv = v.toJSON();\n\t\t}\n\t\tout[ o.name ] = v;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\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\nimport structFactory from '@stdlib/dstructs-struct';\n\n\n// VARIABLES //\n\n// Create a struct constructor which has an `isStruct` static method which we'll delegate to below:\nvar Struct = structFactory([\n\t{\n\t\t'name': 'v',\n\t\t'type': 'bool'\n\t}\n]);\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `struct` instance.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `struct` instance\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'foo',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var bool = isStruct( new Struct() );\n* // returns true\n*\n* bool = isStruct( [] );\n* // returns false\n*/\nfunction isStruct( value ) {\n\treturn Struct.isStruct( value );\n}\n\n\n// EXPORTS //\n\nexport default isStruct;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'unsigned_integer' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray unsigned integer data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray unsigned integer data type\n*\n* @example\n* var bool = isUnsignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int16' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int8' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'foo' );\n* // returns false\n*/\nfunction isUnsignedIntegerDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isUnsignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'signed_integer' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray signed integer data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray signed integer data type\n*\n* @example\n* var bool = isSignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\n* // returns false\n*/\nfunction isSignedIntegerDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isSignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isNegativeZero from '@stdlib/math-base-assert-is-negative-zero';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport PINF from '@stdlib/constants-float64-pinf';\nimport NINF from '@stdlib/constants-float64-ninf';\nimport FLOAT32_SMALLEST_SUBNORMAL from '@stdlib/constants-float32-smallest-subnormal'; // eslint-disable-line id-length\nimport FLOAT32_MAX_SAFE_INTEGER from '@stdlib/constants-float32-max-safe-integer';\nimport FLOAT32_MIN_SAFE_INTEGER from '@stdlib/constants-float32-min-safe-integer';\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the minimum floating-point ndarray data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} ndarray data type\n*/\nfunction minFloatDataType( value ) {\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value >= FLOAT32_MIN_SAFE_INTEGER && value <= FLOAT32_MAX_SAFE_INTEGER ) { // eslint-disable-line max-len\n\t\t\treturn 'float32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// MAIN //\n\n/**\n* Returns the minimum ndarray data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} ndarray data type\n*\n* @example\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* @example\n* var dt = minDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minDataType( value ) {\n\tif ( !isNumber( value ) ) {\n\t\tif ( isBoolean( value ) ) {\n\t\t\treturn 'bool';\n\t\t}\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tif ( minFloatDataType( value.re ) === 'float64' || minFloatDataType( value.im ) === 'float64' ) {\n\t\t\t\treturn 'complex128';\n\t\t\t}\n\t\t\treturn 'complex64';\n\t\t}\n\t\treturn 'generic';\n\t}\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value === 0 && isNegativeZero( value ) ) {\n\t\t\treturn 'float32';\n\t\t}\n\t\tif ( value < 0 ) {\n\t\t\tif ( value >= INT8_MIN ) {\n\t\t\t\treturn 'int8';\n\t\t\t}\n\t\t\tif ( value >= INT16_MIN ) {\n\t\t\t\treturn 'int16';\n\t\t\t}\n\t\t\tif ( value >= INT32_MIN ) {\n\t\t\t\treturn 'int32';\n\t\t\t}\n\t\t\treturn 'float64';\n\t\t}\n\t\tif ( value <= UINT8_MAX ) {\n\t\t\treturn 'uint8';\n\t\t}\n\t\tif ( value <= UINT16_MAX ) {\n\t\t\treturn 'uint16';\n\t\t}\n\t\tif ( value <= UINT32_MAX ) {\n\t\t\treturn 'uint32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, given that floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// EXPORTS //\n\nexport default minDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport INT8_MAX from '@stdlib/constants-int8-max';\nimport INT16_MAX from '@stdlib/constants-int16-max';\nimport INT32_MAX from '@stdlib/constants-int32-max';\n\n\n// MAIN //\n\n/**\n* Returns the minimum ndarray data type for storing a provided signed integer value.\n*\n* @param {integer} value - scalar value\n* @returns {string} ndarray data type\n*\n* @example\n* var dt = minSignedIntegerDataType( 9999 );\n* // returns 'int16'\n*\n* @example\n* var dt = minSignedIntegerDataType( 3 );\n* // returns 'int8'\n*/\nfunction minSignedIntegerDataType( value ) {\n\tif ( value < 0 ) {\n\t\tif ( value >= INT8_MIN ) {\n\t\t\treturn 'int8';\n\t\t}\n\t\tif ( value >= INT16_MIN ) {\n\t\t\treturn 'int16';\n\t\t}\n\t\tif ( value >= INT32_MIN ) {\n\t\t\treturn 'int32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\tif ( value <= INT8_MAX ) {\n\t\treturn 'int8';\n\t}\n\tif ( value <= INT16_MAX ) {\n\t\treturn 'int16';\n\t}\n\tif ( value <= INT32_MAX ) {\n\t\treturn 'int32';\n\t}\n\treturn 'float64';\n}\n\n\n// EXPORTS //\n\nexport default minSignedIntegerDataType;\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\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isStruct from '@stdlib/assert-is-struct';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/ndarray-base-assert-is-boolean-data-type';\nimport isRealFloatingDataType from '@stdlib/ndarray-base-assert-is-real-floating-point-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\nimport isSafeCast from '@stdlib/ndarray-base-assert-is-safe-data-type-cast';\nimport minDataType from '@stdlib/ndarray-min-dtype';\nimport minSignedIntegerDataType from '@stdlib/ndarray-base-min-signed-integer-dtype';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// FUNCTIONS //\n\n/**\n* Verifies whether a provided value can be safely cast to a \"generic\" or unknown data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateGeneric( 3, 'generic' );\n* // returns true\n*/\nfunction validateGeneric() {\n\treturn true;\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a boolean data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateBoolean( true, 'bool' );\n* // returns true\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var out = validateBoolean( new Complex128( 5.0, 6.0 ), 'bool' );\n* // returns false\n*/\nfunction validateBoolean( value ) {\n\treturn isBoolean( value );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a real-valued floating-point data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateRealFloating( 3.14, 'float64' );\n* // returns true\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var out = validateRealFloating( new Complex128( 5.0, 6.0 ), 'float64' );\n* // returns false\n*/\nfunction validateRealFloating( value ) {\n\treturn isNumber( value );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a complex-valued floating-point data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var out = validateComplexFloating( new Complex128( 5.0, 6.0 ), 'complex128' );\n* // returns true\n*\n* @example\n* var out = validateComplexFloating( {}, 'complex128' );\n* // returns false\n*/\nfunction validateComplexFloating( value ) {\n\treturn ( isNumber( value ) || isComplexLike( value ) );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a signed integer data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateSignedInteger( 3, 'int32' );\n* // returns true\n*\n* @example\n* var out = validateSignedInteger( 3.14, 'int32' );\n* // returns false\n*/\nfunction validateSignedInteger( value, dtype ) {\n\treturn ( isInteger( value ) && isSafeCast( minSignedIntegerDataType( value ), dtype ) ); // eslint-disable-line max-len\n}\n\n/**\n* Verifies whether a provided value can be safely cast to an unsigned integer data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - array data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateUnsignedInteger( 3, 'uint32' );\n* // returns true\n*\n* @example\n* var out = validateUnsignedInteger( -3, 'uint32' );\n* // returns false\n*/\nfunction validateUnsignedInteger( value, dtype ) {\n\treturn ( isInteger( value ) && isSafeCast( minDataType( value ), dtype ) );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a binary data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - array data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateBinary( 3, 'binary' );\n* // returns true\n*\n* @example\n* var out = validateBinary( -3, 'binary' );\n* // returns false\n*/\nfunction validateBinary( value ) {\n\treturn ( isInteger( value ) && minDataType( value ) === 'uint8' );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a struct data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - array data type\n* @returns {boolean} boolean result\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'value',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var data = {\n* 'value': 3.0\n* };\n* var s = new Struct( data );\n*\n* var out = validateStruct( s, '|[0,8]|' );\n* // returns true\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'value',\n* 'type': 'float32'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var data = {\n* 'value': 3.0\n* };\n* var s = new Struct( data );\n*\n* var out = validateStruct( s, '|[0,8]|' );\n* // returns false\n*/\nfunction validateStruct( value, dtype ) {\n\tvar o = {\n\t\t'format': 'layout'\n\t};\n\treturn ( isStruct( value ) && value.toString( o ) === dtype );\n}\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a scalar value can be safely cast or, for floating-point data types, downcast to specified ndarray data type.\n*\n* @param {*} value - scalar value\n* @param {*} dtype - ndarray data type\n* @returns {boolean} boolean indicating whether a scalar value can be safely cast\n*\n* @example\n* var bool = isScalarMostlySafeCompatible( 3.0, 'float64' );\n* // returns true\n*\n* @example\n* var bool = isScalarMostlySafeCompatible( 3.14, 'int32' );\n* // returns false\n*\n* @example\n* var bool = isScalarMostlySafeCompatible( -1, 'uint32' );\n* // returns false\n*/\nfunction isScalarMostlySafeCompatible( value, dtype ) { // eslint-disable-line id-length\n\tvar dt = resolveStr( dtype ) || ''; // note: empty string when unable to resolve a second argument to a data type string\n\tif ( dt === 'generic' ) {\n\t\treturn validateGeneric( value, dt );\n\t}\n\tif ( dt === 'binary' ) {\n\t\treturn validateBinary( value, dt );\n\t}\n\tif ( isRealFloatingDataType( dt ) ) {\n\t\treturn validateRealFloating( value, dt );\n\t}\n\tif ( isUnsignedIntegerDataType( dt ) ) {\n\t\treturn validateUnsignedInteger( value, dt );\n\t}\n\tif ( isSignedIntegerDataType( dt ) ) {\n\t\treturn validateSignedInteger( value, dt );\n\t}\n\tif ( isBooleanDataType( dt ) ) {\n\t\treturn validateBoolean( value, dt );\n\t}\n\tif ( isComplexDataType( dt ) ) {\n\t\treturn validateComplexFloating( value, dt );\n\t}\n\tif ( isStructDataType( dtype ) ) {\n\t\treturn validateStruct( value, dt );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isScalarMostlySafeCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name hasEqualShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/has-equal-shape}\n*/\nimport hasEqualShape from '@stdlib/ndarray-base-assert-has-equal-shape';\nsetReadOnly( ns, 'hasEqualShape', hasEqualShape );\n\n/**\n* @name isAllowedDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-allowed-data-type-cast}\n*/\nimport isAllowedDataTypeCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nsetReadOnly( ns, 'isAllowedDataTypeCast', isAllowedDataTypeCast );\n\n/**\n* @name isBooleanDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-boolean-data-type}\n*/\nimport isBooleanDataType from '@stdlib/ndarray-base-assert-is-boolean-data-type';\nsetReadOnly( ns, 'isBooleanDataType', isBooleanDataType );\n\n/**\n* @name isBooleanIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-boolean-index-data-type}\n*/\nimport isBooleanIndexDataType from '@stdlib/ndarray-base-assert-is-boolean-index-data-type';\nsetReadOnly( ns, 'isBooleanIndexDataType', isBooleanIndexDataType );\n\n/**\n* @name isBufferLengthCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible}\n*/\nimport isBufferLengthCompatible from '@stdlib/ndarray-base-assert-is-buffer-length-compatible';\nsetReadOnly( ns, 'isBufferLengthCompatible', isBufferLengthCompatible );\n\n/**\n* @name isBufferLengthCompatibleShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape}\n*/\nimport isBufferLengthCompatibleShape from '@stdlib/ndarray-base-assert-is-buffer-length-compatible-shape';\nsetReadOnly( ns, 'isBufferLengthCompatibleShape', isBufferLengthCompatibleShape );\n\n/**\n* @name isCastingMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-casting-mode}\n*/\nimport isCastingMode from '@stdlib/ndarray-base-assert-is-casting-mode';\nsetReadOnly( ns, 'isCastingMode', isCastingMode );\n\n/**\n* @name isColumnMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major}\n*/\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major';\nsetReadOnly( ns, 'isColumnMajor', isColumnMajor );\n\n/**\n* @name isColumnMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major-contiguous}\n*/\nimport isColumnMajorContiguous from '@stdlib/ndarray-base-assert-is-column-major-contiguous';\nsetReadOnly( ns, 'isColumnMajorContiguous', isColumnMajorContiguous );\n\n/**\n* @name isColumnMajorString\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major-string}\n*/\nimport isColumnMajorString from '@stdlib/ndarray-base-assert-is-column-major-string';\nsetReadOnly( ns, 'isColumnMajorString', isColumnMajorString );\n\n/**\n* @name isComplexFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-complex-floating-point-data-type}\n*/\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nsetReadOnly( ns, 'isComplexFloatingPointDataType', isComplexFloatingPointDataType );\n\n/**\n* @name isComplexFloatingPointDataTypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-complex-floating-point-data-type-char}\n*/\nimport isComplexFloatingPointDataTypeChar from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type-char';\nsetReadOnly( ns, 'isComplexFloatingPointDataTypeChar', isComplexFloatingPointDataTypeChar );\n\n/**\n* @name isContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-contiguous}\n*/\nimport isContiguous from '@stdlib/ndarray-base-assert-is-contiguous';\nsetReadOnly( ns, 'isContiguous', isContiguous );\n\n/**\n* @name isDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type}\n*/\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nsetReadOnly( ns, 'isDataType', isDataType );\n\n/**\n* @name isDataTypeObject\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type-object}\n*/\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nsetReadOnly( ns, 'isDataTypeObject', isDataTypeObject );\n\n/**\n* @name isDataTypeString\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type-string}\n*/\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nsetReadOnly( ns, 'isDataTypeString', isDataTypeString );\n\n/**\n* @name isEqualDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-equal-data-type}\n*/\nimport isEqualDataType from '@stdlib/ndarray-base-assert-is-equal-data-type';\nsetReadOnly( ns, 'isEqualDataType', isEqualDataType );\n\n/**\n* @name isFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-floating-point-data-type}\n*/\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nsetReadOnly( ns, 'isFloatingPointDataType', isFloatingPointDataType );\n\n/**\n* @name isIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-index-data-type}\n*/\nimport isIndexDataType from '@stdlib/ndarray-base-assert-is-index-data-type';\nsetReadOnly( ns, 'isIndexDataType', isIndexDataType );\n\n/**\n* @name isIndexMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-index-mode}\n*/\nimport isIndexMode from '@stdlib/ndarray-base-assert-is-index-mode';\nsetReadOnly( ns, 'isIndexMode', isIndexMode );\n\n/**\n* @name isInputCastingPolicy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-input-casting-policy}\n*/\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nsetReadOnly( ns, 'isInputCastingPolicy', isInputCastingPolicy );\n\n/**\n* @name isIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-integer-data-type}\n*/\nimport isIntegerDataType from '@stdlib/ndarray-base-assert-is-integer-data-type';\nsetReadOnly( ns, 'isIntegerDataType', isIntegerDataType );\n\n/**\n* @name isIntegerIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-integer-index-data-type}\n*/\nimport isIntegerIndexDataType from '@stdlib/ndarray-base-assert-is-integer-index-data-type';\nsetReadOnly( ns, 'isIntegerIndexDataType', isIntegerIndexDataType );\n\n/**\n* @name isMaskIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-mask-index-data-type}\n*/\nimport isMaskIndexDataType from '@stdlib/ndarray-base-assert-is-mask-index-data-type';\nsetReadOnly( ns, 'isMaskIndexDataType', isMaskIndexDataType );\n\n/**\n* @name isMostlySafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast}\n*/\nimport isMostlySafeDataTypeCast from '@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast';\nsetReadOnly( ns, 'isMostlySafeDataTypeCast', isMostlySafeDataTypeCast );\n\n/**\n* @name isNumericDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-numeric-data-type}\n*/\nimport isNumericDataType from '@stdlib/ndarray-base-assert-is-numeric-data-type';\nsetReadOnly( ns, 'isNumericDataType', isNumericDataType );\n\n/**\n* @name isOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-order}\n*/\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nsetReadOnly( ns, 'isOrder', isOrder );\n\n/**\n* @name isOutputDataTypePolicy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-output-data-type-policy}\n*/\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nsetReadOnly( ns, 'isOutputDataTypePolicy', isOutputDataTypePolicy );\n\n/**\n* @name isReadOnly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-read-only}\n*/\nimport isReadOnly from '@stdlib/ndarray-base-assert-is-read-only';\nsetReadOnly( ns, 'isReadOnly', isReadOnly );\n\n/**\n* @name isRealDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-data-type}\n*/\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nsetReadOnly( ns, 'isRealDataType', isRealDataType );\n\n/**\n* @name isRealFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-floating-point-data-type}\n*/\nimport isRealFloatingPointDataType from '@stdlib/ndarray-base-assert-is-real-floating-point-data-type';\nsetReadOnly( ns, 'isRealFloatingPointDataType', isRealFloatingPointDataType );\n\n/**\n* @name isRowMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major}\n*/\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\nsetReadOnly( ns, 'isRowMajor', isRowMajor );\n\n/**\n* @name isRowMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major-contiguous}\n*/\nimport isRowMajorContiguous from '@stdlib/ndarray-base-assert-is-row-major-contiguous';\nsetReadOnly( ns, 'isRowMajorContiguous', isRowMajorContiguous );\n\n/**\n* @name isRowMajorString\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major-string}\n*/\nimport isRowMajorString from '@stdlib/ndarray-base-assert-is-row-major-string';\nsetReadOnly( ns, 'isRowMajorString', isRowMajorString );\n\n/**\n* @name isSafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-safe-data-type-cast}\n*/\nimport isSafeDataTypeCast from '@stdlib/ndarray-base-assert-is-safe-data-type-cast';\nsetReadOnly( ns, 'isSafeDataTypeCast', isSafeDataTypeCast );\n\n/**\n* @name isSameKindDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-same-kind-data-type-cast}\n*/\nimport isSameKindDataTypeCast from '@stdlib/ndarray-base-assert-is-same-kind-data-type-cast';\nsetReadOnly( ns, 'isSameKindDataTypeCast', isSameKindDataTypeCast );\n\n/**\n* @name isScalarMostlySafeCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-scalar-mostly-safe-compatible}\n*/\nimport isScalarMostlySafeCompatible from '@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible';\nsetReadOnly( ns, 'isScalarMostlySafeCompatible', isScalarMostlySafeCompatible );\n\n/**\n* @name isSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-signed-integer-data-type}\n*/\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nsetReadOnly( ns, 'isSignedIntegerDataType', isSignedIntegerDataType );\n\n/**\n* @name isSingleSegmentCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-single-segment-compatible}\n*/\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nsetReadOnly( ns, 'isSingleSegmentCompatible', isSingleSegmentCompatible );\n\n/**\n* @name isStructDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-struct-data-type}\n*/\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\nsetReadOnly( ns, 'isStructDataType', isStructDataType );\n\n/**\n* @name isUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-unsigned-integer-data-type}\n*/\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nsetReadOnly( ns, 'isUnsignedIntegerDataType', isUnsignedIntegerDataType );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape from '@stdlib/ndarray-base-shape';\nimport hasEqualValuesIndexed from '@stdlib/array-base-assert-has-equal-values-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether two ndarrays have the same shape.\n*\n* @param {ndarray} x - first input ndarray\n* @param {ndarray} y - second input ndarray\n* @returns {boolean} boolean indicating whether two ndarrays have the same shape\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1, 2, 3, 4 ] );\n* var y = array( [ 5, 6, 7, 8 ] );\n*\n* var bool = hasEqualShape( x, y );\n* // returns true\n*/\nfunction hasEqualShape( x, y ) {\n\treturn hasEqualValuesIndexed( shape( x, false ), shape( y, false ) );\n}\n\n\n// EXPORTS //\n\nexport default hasEqualShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if two indexed arrays have equal values.\n*\n* @param {Collection} x - first input array\n* @param {Collection} y - second input array\n* @returns {boolean} boolean indicating if both arrays have equal values\n*\n* @example\n* var x = [ 0, 0, 1, 0 ];\n* var y = [ 0, 0, 1, 0 ];\n*\n* var out = hasEqualValuesIndexed( x, y );\n* // returns true\n*\n* @example\n* var x = [ 0, 0, 0, 0 ];\n* var y = [ 0, 0, 1, 0 ];\n*\n* var out = hasEqualValuesIndexed( x, y );\n* // returns false\n*/\nfunction hasEqualValuesIndexed( x, y ) {\n\tvar i;\n\tif ( x.length !== y.length ) {\n\t\treturn false;\n\t}\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\tif ( x[ i ] !== y[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default hasEqualValuesIndexed;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with a provided shape array.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {boolean} boolean indicating if a buffer length is compatible with a provided shape array\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 4, shape );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 3, shape );\n* // returns false\n*/\nfunction isBufferLengthCompatibleShape( len, shape ) { // eslint-disable-line id-length\n\treturn ( len >= numel( shape ) );\n}\n\n\n// EXPORTS //\n\nexport default isBufferLengthCompatibleShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, -2 ];\n* var offset = 2;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isColumnMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisColumnMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isRowMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisRowMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable valid-typeof */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar T = 'number';\n\n\n// FUNCTIONS //\n\n/**\n* Wraps a function and casts a function's return value to a complex number.\n*\n* ## Notes\n*\n* - The returned function **assumes** that the wrapped function returns either a real or complex number.\n* - The returned function **assumes** that, if a return value is non-numeric (i.e., not of type `number`), then the return value is a complex number. The returned function does **not** verify that non-numeric return values are, in fact, complex number objects. The returned function returns non-numeric return values from the wrapped function without modification.\n*\n* @param {Function} fcn - function to wrap\n* @param {NonNegativeInteger} nargs - number of arguments\n* @param {Function} ctor - complex number constructor\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a constructor function\n* @returns {Function} wrapped function\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import addf from '@stdlib/number-float32-base-add';\n*\n* var f = wrap( addf, 2, Complex64 );\n*\n* // ...\n*\n* var z = f( 3.0, 4.0 );\n* // returns [ 7.0, 0.0 ]\n*/\nfunction wrap( fcn, nargs, ctor ) {\n\tvar fcns;\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tif ( !isNonNegativeInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isFunction( ctor ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a constructor function. Value: `%s`.', ctor ) );\n\t}\n\tfcns = [ fcn0, fcn1, fcn2, fcn3, fcn4, fcn5 ];\n\treturn ( nargs <= 5 ) ? fcns[ nargs ] : fcnN;\n\n\t/**\n\t* Invokes a nullary function and returns a complex number.\n\t*\n\t* @private\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn0() {\n\t\tvar r = fcn();\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a unary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn1( x ) {\n\t\tvar r = fcn( x );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a binary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn2( x, y ) {\n\t\tvar r = fcn( x, y );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a ternary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @param {*} z - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn3( x, y, z ) {\n\t\tvar r = fcn( x, y, z );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a quaternary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @param {*} z - input value\n\t* @param {*} w - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn4( x, y, z, w ) {\n\t\tvar r = fcn( x, y, z, w );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a quinary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @param {*} z - input value\n\t* @param {*} w - input value\n\t* @param {*} v - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn5( x, y, z, w, v ) {\n\t\tvar r = fcn( x, y, z, w, v );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a function and returns a complex number.\n\t*\n\t* @private\n\t* @param {...*} args - input values\n\t* @returns {Complex} result\n\t*/\n\tfunction fcnN() {\n\t\tvar args;\n\t\tvar r;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\tr = fcn.apply( null, args );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n* - **idx**: dimension indices sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*\n* var idx = o.idx;\n* // returns [ 2, 1, 0 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy,\n\t\t'idx': idx\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20`) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - input array data type\n* @param {*} dtypeY - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = unaryBlockSize( 'float64', 'float64' );\n* // returns \n*/\nfunction unaryBlockSize( dtypeX, dtypeY ) {\n\treturn blockSize( [ dtypeX, dtypeY ] );\n}\n\n\n// EXPORTS //\n\nexport default unaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport castReturn from '@stdlib/complex-base-cast-return';\nimport complexCtors from '@stdlib/complex-ctors';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n// TODO: consider adding a package utility for mapping a complex dtype to its complementary real-valued counterpart\nvar COMPLEX_TO_REAL = { // WARNING: this table needs to be manually updated if we add support for additional complex number dtypes\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n\n// FUNCTIONS //\n\n/**\n* Converts a boolean ndarray to an 8-bit unsigned integer ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction boolean2uint8( x ) {\n\tx.data = reinterpretBoolean( x.data, 0 );\n\tx.accessorProtocol = false;\n\treturn x;\n}\n\n/**\n* Converts a complex-valued floating-point ndarray to a real-valued floating-point ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction complex2real( x ) {\n\tvar ndims = x.shape.length;\n\n\tx.data = reinterpretComplex( x.data, 0 );\n\tx.accessorProtocol = false;\n\tx.dtype = COMPLEX_TO_REAL[ String( x.dtype ) ];\n\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\tx.offset *= 2;\n\n\t// Append a trailing dimension where each element is the real and imaginary component for a corresponding element in the original input ndarray (note: this means that a two-dimensional complex-valued ndarray becomes a three-dimensional real-valued ndarray; while this does entail additional loop overhead, it is still significantly faster than sending complex-valued ndarrays down the accessor path):\n\tx.shape.push( 2 ); // real and imaginary components\n\n\t// Augment the strides, where we assume that real and imaginary components are adjacent in memory...\n\tif ( ndims === 0 ) {\n\t\tx.strides[ 0 ] = 1;\n\t} else {\n\t\tx.strides.push( 1 );\n\t}\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) && isBooleanArray( y.data ) ) {\n\t\tx = boolean2uint8( x );\n\t\ty = boolean2uint8( y );\n\t} else if ( isComplexArray( x.data ) && isComplexArray( y.data ) ) {\n\t\tx = complex2real( x );\n\t\ty = complex2real( y );\n\t}\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast; note: we cannot create a specialized view for assigning only real components, as the imaginary component for each element in `y` also needs to be set to zero and while we could perform two passes, it's not clear it's worth the effort)...\n\telse if ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( String( y.dtype ) ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// VARIABLES //\n\nvar arraySlice = Array.prototype.slice;\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'slice' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Returns a shallow copy of a portion of an array using the `Array#slice` built-in.\n*\n* @private\n* @param {Collection} x - input array\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = builtin( x, 1, 3 );\n* // returns [ 2, 3 ]\n*/\nfunction builtin( x, start, end ) {\n\treturn arraySlice.call( x, start, end );\n}\n\n/**\n* Returns a shallow copy of a portion of an accessor array.\n*\n* @private\n* @param {Object} x - input array object\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Array} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = arraylike2object( toAccessorArray( [ 1, 2, 3, 4 ] ) );\n*\n* var out = accessors( x, 1, 3 );\n* // returns [ 2, 3 ]\n*/\nfunction accessors( x, start, end ) {\n\tvar data;\n\tvar get;\n\tvar out;\n\tvar i;\n\n\tdata = x.data;\n\tget = x.accessors[ 0 ];\n\tout = [];\n\tfor ( i = start; i < end; i++ ) {\n\t\tout.push( get( data, i ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a shallow copy of a portion of an array.\n*\n* @param {Collection} x - input array\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = slice( x, 1, 3 );\n* // returns [ 2, 3 ]\n*\n* var bool = ( out === x );\n* // returns false\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var out = slice( x, 1, 3 );\n* // returns [ 2, 3 ]\n*\n* var bool = ( out === x );\n* // returns false\n*/\nfunction slice( x, start, end ) {\n\tvar obj;\n\tif ( hasMethod( x, 'slice' ) ) {\n\t\treturn x.slice( start, end );\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj, start, end );\n\t}\n\t// Assume we can use the built-in `Array#slice` method to copy elements to a generic array:\n\treturn builtin( x, start, end );\n}\n\n\n// EXPORTS //\n\nexport default slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Determines if an array is column-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*/\nfunction isColumnMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 2 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Determines if an array is row-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*/\nfunction isRowMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 1 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar RE_CHARS = /[-\\/\\\\^$*+?.()|[\\]{}]/g; // eslint-disable-line no-useless-escape\n\n\n// MAIN //\n\n/**\n* Escapes a regular expression string.\n*\n* @param {string} str - regular expression string\n* @throws {TypeError} first argument must be a string\n* @returns {string} escaped string\n*\n* @example\n* var str = rescape( '[A-Z]*' );\n* // returns '\\[A\\-Z\\]\\*'\n*/\nfunction rescape( str ) {\n\tvar len;\n\tvar s;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a regular expression string. Value: `%s`.', str ) );\n\t}\n\t// Check if the string starts with a forward slash...\n\tif ( str[ 0 ] === '/' ) {\n\t\t// Find the last forward slash...\n\t\tlen = str.length;\n\t\tfor ( i = len-1; i >= 0; i-- ) {\n\t\t\tif ( str[ i ] === '/' ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// If we searched the string to no avail or if the first letter is not `/`, assume that the string is not of the form `/[...]/[guimy]`:\n\tif ( i === void 0 || i <= 0 ) {\n\t\treturn str.replace( RE_CHARS, '\\\\$&' );\n\t}\n\t// We need to de-construct the string...\n\ts = str.substring( 1, i );\n\n\t// Only escape the characters between the `/`:\n\ts = s.replace( RE_CHARS, '\\\\$&' );\n\n\t// Reassemble:\n\tstr = str[ 0 ] + s + str.substring( i );\n\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default rescape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar exec = RegExp.prototype.exec; // non-generic\n\n\n// EXPORTS //\n\nexport default exec;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport test from './try2exec.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a regular expression.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a regular expression\n*\n* @example\n* var bool = isRegExp( /\\.+/ );\n* // returns true\n*\n* @example\n* var bool = isRegExp( {} );\n* // returns false\n*/\nfunction isRegExp( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof RegExp ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object RegExp]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isRegExp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exec from './exec.js';\n\n\n// MAIN //\n\n/**\n* Attempts to call a `RegExp` method.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if able to call a `RegExp` method\n*/\nfunction test( value ) {\n\ttry {\n\t\texec.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rescape from '@stdlib/utils-escape-regexp-string';\nimport isFunction from '@stdlib/assert-is-function';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport isRegExp from '@stdlib/assert-is-regexp';\nimport format from '@stdlib/string-format';\nimport base from '@stdlib/string-base-replace';\n\n\n// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {(string|RegExp)} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @throws {TypeError} first argument must be a string\n* @throws {TypeError} second argument must be a string or regular expression\n* @throws {TypeError} third argument must be a string or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'beep';\n* var out = replace( str, 'e', 'o' );\n* // returns 'boop'\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string-capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\tif ( isString( search ) ) {\n\t\tsearch = new RegExp( rescape( search ), 'g' );\n\t} else if ( !isRegExp( search ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a string or regular expression. Value: `%s`.', search ) );\n\t}\n\tif ( !isString( newval ) && !isFunction( newval ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a string or replacement function. Value: `%s`.', newval ) );\n\t}\n\treturn base( str, search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-replace';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// VARIABLES //\n\nvar CTORS = {\n\t'int8': 'new Int8Array( [ {{data}} ] )',\n\t'uint8': 'new Uint8Array( [ {{data}} ] )',\n\t'uint8c': 'new Uint8ClampedArray( [ {{data}} ] )',\n\t'int16': 'new Int16Array( [ {{data}} ] )',\n\t'uint16': 'new Uint16Array( [ {{data}} ] )',\n\t'int32': 'new Int32Array( [ {{data}} ] )',\n\t'uint32': 'new Uint32Array( [ {{data}} ] )',\n\t'float32': 'new Float32Array( [ {{data}} ] )',\n\t'float64': 'new Float64Array( [ {{data}} ] )',\n\t'generic': '[ {{data}} ]',\n\t'binary': 'new Buffer( [ {{data}} ] )',\n\t'complex64': 'new Complex64Array( [ {{data}} ] )',\n\t'complex128': 'new Complex128Array( [ {{data}} ] )',\n\t'bool': 'new BooleanArray( [ {{data}} ] )'\n};\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {string} string representation\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar buffer;\n\tvar ndims;\n\tvar ctor;\n\tvar str;\n\tvar dt;\n\tvar v;\n\tvar i;\n\n\tndims = this._shape.length;\n\tdt = this._dtype;\n\n\t// Function to invoke to create an ndarray:\n\tstr = 'ndarray( \\''+dt+'\\', ';\n\n\t// Data buffer parameter...\n\tbuffer = '';\n\tif ( this._length <= 100 ) {\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// First three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbuffer += ', ..., ';\n\n\t\t// Last three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tv = this.iget( this._length-1-i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tbuffer += this.iget( this._length-1-i );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tctor = CTORS[ this.dtype ];\n\tstr += replace( ctor, '{{data}}', buffer );\n\tstr += ', ';\n\n\t// Array shape...\n\tif ( ndims === 0 ) {\n\t\tstr += '[]';\n\t} else {\n\t\tstr += '[ ' + this._shape.join( ', ' ) + ' ]';\n\t}\n\tstr += ', ';\n\n\t// Stride array...\n\tstr += '[ ';\n\tif ( ndims === 0 ) {\n\t\tstr += '0';\n\t} else {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( this._strides[ i ] < 0 ) {\n\t\t\t\tstr += -this._strides[ i ];\n\t\t\t} else {\n\t\t\t\tstr += this._strides[ i ];\n\t\t\t}\n\t\t\tif ( i < ndims-1 ) {\n\t\t\t\tstr += ', ';\n\t\t\t}\n\t\t}\n\t}\n\tstr += ' ]';\n\tstr += ', ';\n\n\t// Buffer offset:\n\tstr += '0';\n\tstr += ', ';\n\n\t// Order:\n\tstr += '\\'' + this._order + '\\'';\n\n\t// Close the function call:\n\tstr += ' )';\n\treturn str;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport BigInt from '@stdlib/bigint-ctor';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( this._offset*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport Uint8Array from '@stdlib/array-uint8';\nimport DataView from '@stdlib/array-dataview';\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n// Byte array workspace:\nvar BYTES = new Uint8Array( 8 );\nvar VIEW = new DataView( BYTES.buffer );\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x, out, stride, offset ) {\n\tvar hi;\n\tvar lo;\n\tvar i;\n\n\tif ( x === 0 ) {\n\t\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\t\tout[ offset ] = 0;\n\t\t\toffset += stride;\n\t\t}\n\t\treturn out;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tVIEW.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tVIEW.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\tout[ offset ] = BYTES[ i ];\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* @module @stdlib/number-float64-base-to-int64-bytes\n*\n* @example\n* import float64ToInt64Bytes from '@stdlib/number-float64-base-to-int64-bytes';\n*\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n* import float64ToInt64Bytes from '@stdlib/number-float64-base-to-int64-bytes';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport Uint8Array from '@stdlib/array-uint8';\nimport DataView from '@stdlib/array-dataview';\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\n* @param {number} x - input value\n* @returns {Uint8Array} byte array\n*\n* @example\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x ) {\n\tvar bytes;\n\tvar view;\n\tvar hi;\n\tvar lo;\n\n\tbytes = new Uint8Array( 8 );\n\tif ( x === 0 ) {\n\t\treturn bytes;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tview = new DataView( bytes.buffer );\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tview.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tview.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\treturn bytes;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport Uint8Array from '@stdlib/array-uint8';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\nimport { assign as float64ToInt64Bytes } from '@stdlib/number-float64-base-to-int64-bytes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create views for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( this._offset*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport hasBigIntSupport from '@stdlib/assert-has-bigint-support';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport slice from '@stdlib/array-base-slice';\nimport Boolean from '@stdlib/boolean-ctor';\nimport isColumnMajorContiguous from './is_column_major_contiguous.js';\nimport isRowMajorContiguous from './is_row_major_contiguous.js';\nimport isContiguous from './is_contiguous.js';\nimport copyFlags from './copy_flags.js';\nimport igetValue from './iget.js';\nimport isetValue from './iset.js';\nimport setValue from './set.js';\nimport getValue from './get.js';\nimport valueOf from './valueof.js'; // eslint-disable-line stdlib/no-redeclare\nimport toJSON from './tojson.js';\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\nimport meta2dataview from './meta2dataview.js';\nimport meta2dataviewPolyfill from './meta2dataview.polyfill.js';\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* ## Notes\n*\n* - To create a zero-dimensional array,\n*\n* ```javascript\n* var buffer = [ 1 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* ```\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order ) {\n\tvar contiguous;\n\tvar nbytes;\n\tvar ord;\n\tvar len;\n\tvar i;\n\tif ( !(this instanceof ndarray) ) {\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t}\n\t// Compute the number of elements...\n\tlen = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tlen *= shape[ i ]; // TODO: consider supporting accessor arrays here\n\t}\n\t// Compute the number of bytes...\n\tif ( buffer.BYTES_PER_ELEMENT ) {\n\t\tnbytes = buffer.BYTES_PER_ELEMENT * len;\n\t} else {\n\t\tnbytes = null;\n\t}\n\t// Set private properties...\n\tthis._byteLength = nbytes;\n\tthis._bytesPerElement = bytesPerElement( dtype );\n\tthis._buffer = buffer;\n\tthis._dtype = dtype;\n\tthis._length = len;\n\tthis._ndims = shape.length;\n\tthis._offset = offset;\n\tthis._order = order;\n\tthis._shape = shape;\n\tthis._strides = strides;\n\tthis._accessors = Boolean( buffer.get && buffer.set );\n\n\tthis._iterationOrder = iterationOrder( strides );\n\n\t// Determine if the array can be stored contiguously:\n\tcontiguous = isContiguous( len, shape, strides, offset, this._iterationOrder ); // eslint-disable-line max-len\n\n\t// Infer the array \"order\" from the stride array (this is supplementary to the `order` parameter):\n\tord = strides2order( strides );\n\n\tthis._flags = {\n\t\t'ROW_MAJOR_CONTIGUOUS': isRowMajorContiguous( ord, contiguous ),\n\t\t'COLUMN_MAJOR_CONTIGUOUS': isColumnMajorContiguous( ord, contiguous ),\n\t\t'READONLY': false\n\t};\n\n\t// Initialize a property for caching serialized meta data:\n\tthis.__meta_dataview__ = null;\n\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Size (in bytes) of the array (if known).\n*\n* @name byteLength\n* @memberof ndarray.prototype\n* @type {(NonNegativeInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var byteLength = x.byteLength;\n* // returns 48\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Size (in bytes) of each array element (if known).\n*\n* @name BYTES_PER_ELEMENT\n* @memberof ndarray.prototype\n* @type {(PositiveInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var nbytes = x.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'BYTES_PER_ELEMENT', function get() {\n\treturn this._bytesPerElement;\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name data\n* @memberof ndarray.prototype\n* @type {(Array|TypedArray|Buffer)}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var data = x.data;\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'data', function get() {\n\treturn this._buffer;\n});\n\n/**\n* Underlying data type.\n*\n* @name dtype\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dtype = x.dtype;\n* // returns 'generic'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'dtype', function get() {\n\treturn this._dtype;\n});\n\n/**\n* Meta information, such as information concerning the memory layout of the array.\n*\n* @name flags\n* @memberof ndarray.prototype\n* @type {Object}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var flgs = x.flags;\n* // returns \n*/\nsetReadOnlyAccessor( ndarray.prototype, 'flags', function get() {\n\treturn copyFlags( this._flags );\n});\n\n/**\n* Length of the array.\n*\n* @name length\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var len = x.length;\n* // returns 6\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Number of dimensions.\n*\n* @name ndims\n* @memberof ndarray.prototype\n* @type {PositiveInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var ndims = x.ndims;\n* // returns 2\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'ndims', function get() {\n\treturn this._ndims;\n});\n\n/**\n* Index offset which specifies the buffer index at which to start iterating over array elements.\n*\n* @name offset\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.offset;\n* // returns 0\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'offset', function get() {\n\treturn this._offset;\n});\n\n/**\n* Array order.\n*\n* ## Notes\n*\n* - The array order is either row-major (C-style) or column-major (Fortran-style).\n*\n* @name order\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var order = x.order;\n* // returns 'row-major'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'order', function get() {\n\treturn this._order;\n});\n\n/**\n* Shape of the array.\n*\n* @name shape\n* @memberof ndarray.prototype\n* @type {NonNegativeIntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.shape;\n* // returns [ 3, 2 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'shape', function get() {\n\treturn slice( this._shape, 0, this._shape.length );\n});\n\n/**\n* Index strides which specify how to access data along corresponding array dimensions.\n*\n* @name strides\n* @memberof ndarray.prototype\n* @type {IntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.strides;\n* // returns [ 2, 1 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'strides', function get() {\n\treturn slice( this._strides, 0, this._strides.length );\n});\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', getValue );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', igetValue );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', setValue );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', isetValue );\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toString\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {string} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var str = x.toString();\n* // returns \"ndarray( 'generic', [ 3, 4, 5, 6, 7, 8 ], [ 3, 2 ], [ 2, 1 ], 0, 'row-major' )\"\n*/\nsetReadOnly( ndarray.prototype, 'toString', toString );\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying an `ndarray` instance.\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toJSON\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {Object} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.toJSON();\n* // e.g., returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 3, 4, 5, 6, 7, 8 ] }\n*/\nsetReadOnly( ndarray.prototype, 'toJSON', toJSON );\n\n/**\n* Converts an ndarray instance to a primitive value.\n*\n* ## Notes\n*\n* - Only zero-dimensional ndarrays are converted to a primitive value. For ndarray instances having one or more dimensions, the method returns the `this` value, as is the default behavior for objects.\n*\n* @name valueOf\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {(*|ndarray)} result\n*\n* @example\n* var buffer = [ 3.14 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.valueOf();\n* // returns 3.14\n*\n* @example\n* var buffer = [ 3.14 ];\n* var shape = [ 1 ];\n* var strides = [ 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.valueOf();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, 'valueOf', valueOf );\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - Meta data format:\n*\n* ```text\n* | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Consumers of this method should treat the returned `DataView` as **immutable**. Otherwise, mutation can invalidate meta data and potentially affect other consumers.\n*\n* @private\n* @name __array_meta_dataview__\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {DataView} serialized meta data\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dv = x.__array_meta_dataview__();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, '__array_meta_dataview__', ( hasBigIntSupport() ) ? meta2dataview : meta2dataviewPolyfill );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Determines if an array is contiguous.\n*\n* @private\n* @param {NonNegativeInteger} len - array length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {integer} iterationOrder - iteration order\n* @returns {boolean} boolean indicating if an array is contiguous\n*/\nfunction isContiguous( len, shape, strides, offset, iterationOrder ) {\n\tvar buf;\n\n\t// If an array does not contain any elements, then no data to store, and, if the array is unordered, adjacent array elements are not guaranteed to be stored next to each other.\n\tif ( len === 0 || iterationOrder === 0 ) {\n\t\treturn false;\n\t}\n\t// Ensure that the array is compatible with a single memory segment:\n\tbuf = minmaxViewBufferIndex( shape, strides, offset );\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nexport default isContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport copy from '@stdlib/array-base-copy-indexed';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( arr, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\tM = sh.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Initialize a strides array:\n\tstrides = zeros( N );\n\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\tj = M - N + i;\n\t\tif ( j < 0 ) {\n\t\t\t// Prepended singleton dimension; stride is zero...\n\t\t\tcontinue;\n\t\t}\n\t\td = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), copy( shape ), strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default broadcastArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Normalizes an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 5\n*/\nfunction normalizeIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max + 1;\n\t\tif ( idx < 0 ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn -1;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default normalizeIndex;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\n\n\n// MAIN //\n\n/**\n* Returns a list of unique indices after normalizing to the interval `[0,max]`.\n*\n* @param {IntegerArray} indices - indices\n* @param {NonNegativeInteger} max - maximum index\n* @returns {(IntegerArray|null)} normalized indices\n*\n* @example\n* var idx = toUniqueNormalizedIndices( [ -2, 5 ], 10 );\n* // returns [ 9, 5 ]\n*\n* idx = toUniqueNormalizedIndices( [ 15 ], 10 );\n* // returns null\n*/\nfunction toUniqueNormalizedIndices( indices, max ) {\n\tvar hash;\n\tvar out;\n\tvar idx;\n\tvar i;\n\n\thash = {};\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tidx = normalizeIndex( indices[ i ], max );\n\t\tif ( idx < 0 ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( hash[ idx ] === void 0 ) {\n\t\t\thash[ idx ] = true;\n\t\t\tout.push( idx );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toUniqueNormalizedIndices;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport join from '@stdlib/array-base-join';\nimport min from '@stdlib/math-base-special-min';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of the diagonal of a matrix (or stack of matrices).\n*\n* ## Notes\n*\n* - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n* - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function returns the main diagonal; when `k > 0`, the function returns the diagonal above the main diagonal; and when `k < 0`, the function returns the diagonal below the main diagonal.\n* - The returned ndarray is a **view** of the input ndarray. Accordingly, writing to the original ndarray will **mutate** the returned ndarray and vice versa.\n* - The `writable` parameter **only** applies to ndarray constructors supporting **read-only** instances.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane from which to extract the diagonal\n* @param {integer} k - diagonal offset\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} must provide an ndarray having two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], [ 7.0, 8.0, 9.0 ] ] );\n* // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], [ 7.0, 8.0, 9.0 ] ]\n*\n* var y = diagonal( x, [ 0, 1 ], 0, false );\n* // returns [ 1.0, 5.0, 9.0 ]\n*/\nfunction diagonal( x, dims, k, writable ) {\n\tvar strides;\n\tvar offset;\n\tvar ndims;\n\tvar shape;\n\tvar rows;\n\tvar cols;\n\tvar sh;\n\tvar st;\n\tvar sr;\n\tvar sc;\n\tvar ro;\n\tvar co;\n\tvar d;\n\tvar L;\n\tvar i;\n\n\tif ( dims.length !== 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Must provide exactly two dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\tsh = getShape( x );\n\tndims = sh.length;\n\tif ( ndims < 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. First argument must be an ndarray having two or more dimensions. Number of dimensions: %d.', ndims ) );\n\t}\n\tst = getStrides( x );\n\n\t// Resolve dimension indices...\n\td = toUniqueNormalizedIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', ndims, ndims-1, join( dims, ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\tsr = st[ d[0] ];\n\tsc = st[ d[1] ];\n\n\t// Resolve the row and column offsets corresponding to the diagonal offset `k = column - row`:\n\tco = ( k > 0 ) ? k : 0;\n\tro = co - k;\n\n\t// Compute the length of the diagonal:\n\trows = sh[ d[0] ] - ro;\n\tcols = sh[ d[1] ] - co;\n\tL = min( rows, cols );\n\tif ( L < 0 ) {\n\t\tL = 0;\n\t}\n\n\t// Adjust the offset so that we point to the first element along the specified diagonal:\n\toffset = getOffset( x );\n\tif ( L > 0 ) {\n\t\toffset += ( co*sc ) + ( ro*sr );\n\t}\n\n\t// Drop the specified dimensions and append the diagonal dimension:\n\tshape = [];\n\tstrides = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( i === d[0] || i === d[1] ) {\n\t\t\tcontinue;\n\t\t}\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\tshape.push( L );\n\tstrides.push( sr + sc );\n\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, offset, getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default diagonal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeZero from '@stdlib/math-base-assert-is-negative-zero';\nimport isnan from '@stdlib/math-base-assert-is-nan';\nimport NINF from '@stdlib/constants-float64-ninf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var v = min( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = min( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = min( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction min( x, y ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === NINF || y === NINF ) {\n\t\treturn NINF;\n\t}\n\tif ( x === y && x === 0.0 ) {\n\t\tif ( isNegativeZero( x ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn y;\n\t}\n\tif ( x < y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies ndarray flags.\n*\n* @private\n* @param {Object} flags - flags\n* @returns {Object} copy of input object\n*/\nfunction copyFlags( flags ) {\n\treturn {\n\t\t'ROW_MAJOR_CONTIGUOUS': flags.ROW_MAJOR_CONTIGUOUS,\n\t\t'COLUMN_MAJOR_CONTIGUOUS': flags.COLUMN_MAJOR_CONTIGUOUS,\n\t\t'READONLY': flags.READONLY\n\t};\n}\n\n\n// EXPORTS //\n\nexport default copyFlags;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} idx - indices\n* @returns {*} array element\n*/\nfunction get() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// MAIN //\n\n/**\n* Returns an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( this._offset );\n\t\t}\n\t\treturn this._buffer[ this._offset ];\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this._offset+idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset+idx ];\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this.offset-idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset-idx ];\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( isColumnMajor( this._order ) ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( ind );\n\t\t}\n\t\treturn this._buffer[ ind ];\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( ind );\n\t}\n\treturn this._buffer[ ind ];\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// MAIN //\n\n/**\n* Sets an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( idx, this._offset );\n\t\t} else {\n\t\t\tthis._buffer[ this._offset ] = idx;\n\t\t}\n\t\treturn this;\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset+idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset+idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset-idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset-idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( isColumnMajor( this._order ) ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( v, ind );\n\t\t} else {\n\t\t\tthis._buffer[ ind ] = v;\n\t\t}\n\t\treturn this;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( v, ind );\n\t} else {\n\t\tthis._buffer[ ind ] = v;\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tlen = this._length;\n\n\t// Build an object containing all ndarray properties needed to revive a serialized ndarray...\n\tout = {};\n\tout.type = 'ndarray';\n\tout.dtype = this.dtype;\n\tout.flags = {\n\t\t'READONLY': this._flags.READONLY\n\t};\n\tout.order = this._order;\n\tout.shape = this._shape.slice();\n\tout.strides = this._strides.slice();\n\n\t// Flip the signs of negative strides:\n\tfor ( i = 0; i < out.strides.length; i++ ) {\n\t\tif ( out.strides[ i ] < 0 ) {\n\t\t\tout.strides[ i ] *= -1;\n\t\t}\n\t}\n\t// Cast data to generic array...\n\tout.data = [];\n\tif ( out.dtype === 'complex64' || out.dtype === 'complex128' ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tv = this.iget( i );\n\t\t\tout.data.push( real( v ), imag( v ) );\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.data.push( this.iget( i ) );\n\t\t}\n\t}\n\treturn out;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\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* Converts an ndarray instance to a primitive value.\n*\n* ## Notes\n*\n* - Only zero-dimensional ndarrays are converted to a primitive value. For ndarray instances having one or more dimensions, the method returns the `this` value, as is the default behavior for objects.\n*\n* @private\n* @returns {(*|ndarray)} result\n*/\nfunction valueOf() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tif ( this._ndims === 0 ) {\n\t\treturn this.iget();\n\t}\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default valueOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an n-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar ybuf;\n\tvar ordy;\n\tvar len;\n\tvar set;\n\tvar shy;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tshy = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( shy );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache a reference to the stride array:\n\tsy = y.strides;\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache the output array order:\n\tordy = y.order;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tiy = vind2bind( shy, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, v );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assignnd( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assignnd( re, im, y ) {\n\tvar ybuf;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i;\n\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache a reference to the stride array:\n\tsy = y.strides;\n\n\t// Cache the index of the first indexed element:\n\toy = y.offset;\n\n\t// Cache the array order:\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = re;\n\t\tybuf[ iy+1 ] = im;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an n-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar ybuf;\n\tvar ordy;\n\tvar len;\n\tvar shy;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tshy = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( shy );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache a reference to the stride array:\n\tsy = y.strides;\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache the output array order:\n\tordy = y.order;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tiy = vind2bind( shy, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = v;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedcomplexassign2d from './2d_blocked_complex.js';\nimport blockedcomplexassign3d from './3d_blocked_complex.js';\nimport blockedcomplexassign4d from './4d_blocked_complex.js';\nimport blockedcomplexassign5d from './5d_blocked_complex.js';\nimport blockedcomplexassign6d from './6d_blocked_complex.js';\nimport blockedcomplexassign7d from './7d_blocked_complex.js';\nimport blockedcomplexassign8d from './8d_blocked_complex.js';\nimport blockedcomplexassign9d from './9d_blocked_complex.js';\nimport blockedcomplexassign10d from './10d_blocked_complex.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport complexassign0d from './0d_complex.js';\nimport complexassign1d from './1d_complex.js';\nimport complexassign2d from './2d_complex.js';\nimport complexassign3d from './3d_complex.js';\nimport complexassign4d from './4d_complex.js';\nimport complexassign5d from './5d_complex.js';\nimport complexassign6d from './6d_complex.js';\nimport complexassign7d from './7d_complex.js';\nimport complexassign8d from './8d_complex.js';\nimport complexassign9d from './9d_complex.js';\nimport complexassign10d from './10d_complex.js';\nimport complexassignnd from './nd_complex.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar COMPLEX_ASSIGN = [\n\tcomplexassign0d,\n\tcomplexassign1d,\n\tcomplexassign2d,\n\tcomplexassign3d,\n\tcomplexassign4d,\n\tcomplexassign5d,\n\tcomplexassign6d,\n\tcomplexassign7d,\n\tcomplexassign8d,\n\tcomplexassign9d,\n\tcomplexassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar BLOCKED_COMPLEX_ASSIGN = [\n\tblockedcomplexassign2d, // 0\n\tblockedcomplexassign3d,\n\tblockedcomplexassign4d,\n\tblockedcomplexassign5d,\n\tblockedcomplexassign6d,\n\tblockedcomplexassign7d,\n\tblockedcomplexassign8d,\n\tblockedcomplexassign9d,\n\tblockedcomplexassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n// TODO: consider adding a package utility for mapping a complex dtype to its complementary real-valued counterpart\nvar COMPLEX_TO_REAL = { // WARNING: this table needs to be manually updated if we add support for additional complex number dtypes\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n\n// FUNCTIONS //\n\n/**\n* Converts a boolean ndarray to an 8-bit unsigned integer ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction boolean2uint8( x ) {\n\tx.data = reinterpretBoolean( x.data, 0 );\n\tx.accessorProtocol = false;\n\treturn x;\n}\n\n/**\n* Converts a complex-valued floating-point ndarray to a real-valued floating-point ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction complex2real( x ) {\n\tvar ndims = x.shape.length;\n\tx.data = reinterpretComplex( x.data, 0 );\n\tx.accessorProtocol = false;\n\tx.dtype = COMPLEX_TO_REAL[ String( x.dtype ) ];\n\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\tx.offset *= 2;\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column-major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a zero-dimensional ndarray containing the scalar value and one output ndarray\n* @returns {void}\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a zero-dimensional ndarray containing the scalar value:\n* var x = scalar2ndarray( 5.0, {\n* 'dtype': 'float64'\n* });\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var oy = 1;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign the scalar value:\n* assignScalar( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 0.0, 5.0, 5.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 5.0, 5.0, 0.0 ]\n*/\nfunction assignScalar( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar ymmv;\n\tvar shy;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sy;\n\tvar oy;\n\tvar ns;\n\tvar re;\n\tvar im;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) && isBooleanArray( y.data ) ) {\n\t\tx = boolean2uint8( x );\n\t\ty = boolean2uint8( y );\n\t} else if ( isComplexArray( x.data ) && isComplexArray( y.data ) ) {\n\t\tx = complex2real( x );\n\t\ty = complex2real( y );\n\t\tre = x.data[ x.offset ];\n\t\tim = x.data[ x.offset+1 ];\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast; note: we cannot create a specialized view for assigning only real components, as the imaginary component for each element in `y` also needs to be set to zero and while we could perform two passes, it's not clear it's worth the effort)...\n\telse if ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\ty = complex2real( y );\n\t\tre = x.data[ x.offset ];\n\t\tim = 0.0;\n\t\tisCmplx = true;\n\t}\n\tshy = y.shape;\n\tndims = shy.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ASSIGN[ ndims ]( re, im, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shy[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ASSIGN[ ndims ]( re, im, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shy[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shy[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ASSIGN[ 1 ]( re, im, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ioy !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\ty.shape = [ len ];\n\t\t\ty.strides = [ ioy ];\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ASSIGN[ 1 ]( re, im, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\tord = strides2order( sy );\n\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ASSIGN[ ndims ]( re, im, y, ord === 1 );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_ASSIGN[ ndims-2 ]( re, im, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexassignnd( re, im, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assignScalar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a zero-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a one-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 6 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar S0;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = y.shape[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = v;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign2d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdy0 = sy[ 1 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = v;\n\t\t\tiy += dy0;\n\t\t}\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign3d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdy0 = sy[ 2 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = v;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tiy += dy1;\n\t\t}\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign4d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdy0 = sy[ 3 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tiy += dy2;\n\t\t}\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign5d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdy0 = sy[ 4 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tiy += dy3;\n\t\t}\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign6d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdy0 = sy[ 5 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tiy += dy4;\n\t\t}\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign7d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign7d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdy0 = sy[ 6 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tiy += dy5;\n\t\t}\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an eight-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign8d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign8d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdy0 = sy[ 7 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tiy += dy6;\n\t\t}\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign9d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign9d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdy0 = sy[ 8 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tiy += dy7;\n\t\t}\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign10d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign10d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdy0 = sy[ 9 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tiy += dy8;\n\t\t}\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a zero-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 1 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a one-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 1.0, 2.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar S0;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = y.shape[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output ndarray accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, v );\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign2d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdy0 = sy[ 1 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, v );\n\t\t\tiy += dy0;\n\t\t}\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign3d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdy0 = sy[ 2 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, v );\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tiy += dy1;\n\t\t}\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign4d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdy0 = sy[ 3 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tiy += dy2;\n\t\t}\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign5d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdy0 = sy[ 4 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tiy += dy3;\n\t\t}\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign6d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdy0 = sy[ 5 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tiy += dy4;\n\t\t}\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign7d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign7d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdy0 = sy[ 6 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tiy += dy5;\n\t\t}\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an eight-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign8d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign8d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdy0 = sy[ 7 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tiy += dy6;\n\t\t}\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign9d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign9d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdy0 = sy[ 8 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tiy += dy7;\n\t\t}\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign10d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign10d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdy0 = sy[ 9 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output ndarray accessor:\n\tset = y.accessors[1];\n\n\t// Cache the scalar value:\n\tv = x.accessors[0]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tiy += dy8;\n\t\t}\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number zero-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 2 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sy = [ 0 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign0d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0 ]\n*/\nfunction assign0d( re, im, y ) {\n\ty.data[ y.offset ] = re;\n\ty.data[ y.offset+1 ] = im;\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number one-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 6 ];\n*\n* // Define the array strides:\n* var sy = [ 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign1d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign1d( re, im, y ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar S0;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = y.shape[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = re;\n\t\tybuf[ iy+1 ] = im;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number two-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign2d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign2d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdy0 = sy[ 1 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = re;\n\t\t\tybuf[ iy+1 ] = im;\n\t\t\tiy += dy0;\n\t\t}\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number three-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign3d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign3d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdy0 = sy[ 2 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = re;\n\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tiy += dy1;\n\t\t}\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number four-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign4d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign4d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdy0 = sy[ 3 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tiy += dy2;\n\t\t}\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number five-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign5d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign5d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdy0 = sy[ 4 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tiy += dy3;\n\t\t}\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number six-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign6d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign6d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdy0 = sy[ 5 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tiy += dy4;\n\t\t}\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number seven-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign7d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign7d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdy0 = sy[ 6 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tiy += dy5;\n\t\t}\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number eight-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign8d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign8d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdy0 = sy[ 7 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tiy += dy6;\n\t\t}\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number nine-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign9d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign9d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdy0 = sy[ 8 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tiy += dy7;\n\t\t}\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number ten-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign10d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign10d( re, im, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdy0 = sy[ 9 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tiy += dy8;\n\t\t}\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute the loop offset increment...\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute the loop offset increment...\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign5d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\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\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute the loop offset increment...\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute the loop offset increment...\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign5d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output ndarray accessor:\n\tset = y.accessors[1];\n\n\t// Cache the scalar value:\n\tv = x.accessors[0]( x.data, x.offset );\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\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number two-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign2d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign2d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute the loop offset increment...\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number three-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign3d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign3d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute the loop offset increment...\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number four-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign4d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign4d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number five-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign5d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign5d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number six-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign6d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign6d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number seven-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign7d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign7d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number eight-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign8d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign8d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number nine-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign9d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign9d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number ten-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign10d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign10d( re, im, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ndarray from '@stdlib/ndarray-base-ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is ndarray-like.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating if a value is ndarray-like\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n*\n* var arr = ndarray( 'generic', [ 0, 0, 0, 0 ], [ 2, 2 ], [ 2, 1 ], 0, 'row-major' );\n*\n* var bool = isndarrayLike( arr );\n* // returns true\n*\n* bool = isndarrayLike( [] );\n* // returns false\n*/\nfunction isndarrayLike( v ) {\n\treturn (\n\t\tv instanceof ndarray ||\n\t\t(\n\t\t\tv !== null &&\n\t\t\ttypeof v === 'object' &&\n\t\t\ttypeof v.data === 'object' &&\n\t\t\ttypeof v.shape === 'object' &&\n\t\t\ttypeof v.strides === 'object' &&\n\t\t\ttypeof v.offset === 'number' &&\n\t\t\ttypeof v.order === 'string' &&\n\t\t\ttypeof v.ndims === 'number' &&\n\t\t\tv.dtype &&\n\t\t\ttypeof v.length === 'number' &&\n\t\t\ttypeof v.flags === 'object' &&\n\t\t\ttypeof v.get === 'function' &&\n\t\t\ttypeof v.set === 'function'\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isndarrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar isProtoOf = Object.prototype.isPrototypeOf;\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests if an object's prototype chain contains a provided prototype.\n*\n* @param {*} value - value to test\n* @param {(Object|Function)} proto - prototype\n* @throws {TypeError} second argument must be an object and not null\n* @returns {boolean} boolean indicating if a provided prototype exists in a prototype chain\n*\n* @example\n* import inherit from '@stdlib/utils-inherit';\n*\n* function Foo() {\n* return this;\n* }\n*\n* function Bar() {\n* return this;\n* }\n* inherit( Bar, Foo );\n*\n* var bar = new Bar();\n*\n* var bool = isPrototypeOf( bar, Foo.prototype );\n* // returns true\n*/\nfunction isPrototypeOf( value, proto ) { // eslint-disable-line stdlib/no-redeclare\n\tvar type = typeof proto;\n\tif (\n\t\tproto === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either an object (except null) or a function. Value: `%s`.', proto ) );\n\t}\n\ttype = typeof value;\n\tif (\n\t\tvalue === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\treturn false;\n\t}\n\treturn isProtoOf.call( proto, value );\n}\n\n\n// EXPORTS //\n\nexport default isPrototypeOf;\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\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport Uint8Array from '@stdlib/array-uint8';\nimport { ndarray as gcopy } from '@stdlib/blas-base-gcopy';\n\n\n// MAIN //\n\n/**\n* Fills an output ArrayBuffer with array values.\n*\n* @private\n* @param {Function} Struct - struct constructor\n* @param {ArrayBuffer} buf - output data buffer\n* @param {Collection} arr - input array\n* @throws {TypeError} an input array must contain struct instances\n* @throws {TypeError} each element of an input array must be a struct instance having the expected layout\n* @returns {ArrayBuffer} output data buffer\n*/\nfunction fromArray( Struct, buf, arr ) {\n\tvar sbytes;\n\tvar bbytes;\n\tvar offset;\n\tvar layout;\n\tvar sview;\n\tvar opts;\n\tvar len;\n\tvar get;\n\tvar flg;\n\tvar nb;\n\tvar v;\n\tvar i;\n\n\topts = {\n\t\t'format': 'layout'\n\t};\n\n\tlen = arr.length;\n\tif ( arr.get && arr.set ) {\n\t\tget = accessorGetter( 'default' );\n\t} else {\n\t\tget = getter( 'default' );\n\t}\n\tlayout = Struct.layout;\n\tnb = Struct.byteLength;\n\n\t// FIXME: add optimization for when `buf` is a StructArray having the same layout, as can just copy bytes\n\n\tbbytes = new Uint8Array( buf );\n\toffset = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = get( arr, i );\n\t\ttry {\n\t\t\tsview = Struct.viewOf( v ); // note: this should throw if `v` is not a struct\n\t\t\tflg = true;\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\ttry {\n\t\t\t\t// Attempt to convert the input value to a struct instance:\n\t\t\t\tv = new Struct( v ); // note: this should throw if `v` is not an object with valid fields\n\t\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tsview = Struct.viewOf( v );\n\t\t\tflg = false;\n\t\t}\n\t\tif ( flg && v.toString( opts ) !== layout ) {\n\t\t\treturn null;\n\t\t}\n\t\tsbytes = new Uint8Array( sview.buffer, sview.byteOffset, sview.byteLength ); // eslint-disable-line max-len\n\t\tgcopy( nb, sbytes, 1, 0, bbytes, 1, offset );\n\t\toffset += nb;\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\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 no-restricted-syntax, no-invalid-this, max-len, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isFunction from '@stdlib/assert-is-function';\nimport isObject from '@stdlib/assert-is-object';\nimport isPrototypeOf from '@stdlib/assert-is-prototype-of'; // eslint-disable-line stdlib/no-redeclare\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport hasProp from '@stdlib/assert-has-property';\nimport contains from '@stdlib/array-base-assert-contains';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport Uint8Array from '@stdlib/array-uint8';\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport { ndarray as gcopy } from '@stdlib/blas-base-gcopy';\nimport structFactory from '@stdlib/dstructs-struct';\nimport format from '@stdlib/string-format';\nimport fromArray from './from_array.js';\nimport fromIterator from './from_iterator.js';\n\n\n// VARIABLES //\n\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\nvar CTOR_NAME = 'StructArray';\n\n\n// MAIN //\n\n/**\n* Returns a constructor for creating arrays having a fixed-width composite data type.\n*\n* @param {(Function|Array)} arg - struct constructor or struct schema\n* @throws {TypeError} first argument must be either a struct constructor or struct schema\n* @returns {Function} constructor\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema1 = [\n* {\n* 'name': 're',\n* 'type': 'float64'\n* },\n* {\n* 'name': 'im',\n* 'type': 'float64'\n* }\n* ];\n*\n* // Create a struct constructor for storing real and imaginary components:\n* var Components = structFactory( schema1 );\n*\n* var schema2 = [\n* {\n* 'type': 'union',\n* 'fields': [\n* {\n* 'name': 'value',\n* 'type': 'complex128'\n* },\n* {\n* 'name': 'components',\n* 'type': Components\n* }\n* ]\n* }\n* ];\n*\n* // Create a struct constructor for storing a double-precision complex number:\n* var Complex128Struct = structFactory( schema2 );\n*\n* // Create an array constructor for storing complex numbers:\n* var Complex128Array = factory( Complex128Struct );\n*\n* // Create a new array:\n* var x = new Complex128Array( 10 );\n* // returns \n*\n* // Retrieve the first element:\n* var v1 = x.get( 0 );\n*\n* // Resolve the complex number stored within the first element:\n* var z1 = v1.value;\n* // returns [ 0.0, 0.0 ]\n*\n* // Resolve the individual real and imaginary components:\n* var z2 = v1.components;\n*\n* var re = z2.re;\n* // returns 0.0\n*\n* var im = z2.im;\n* // returns 0.0\n*\n* // Create a new complex number struct:\n* var z3 = new Complex128Struct({\n* 'value': new Complex128( 3.0, 5.0 )\n* });\n*\n* // Update the first element of the array:\n* x.set( z3, 0 );\n*\n* // As `v1` is a view on same memory as the first element, resolve the complex number stored within the element:\n* var z4 = v1.value;\n* // returns [ 3.0, 5.0 ]\n*/\nfunction factory( arg ) { // eslint-disable-line stdlib/jsdoc-require-throws-tags\n\tvar BYTES_PER_ELEMENT;\n\tvar LAYOUT;\n\tvar FIELDS;\n\tvar Struct;\n\n\t// FIXME: add option support for strict input object validation (e.g., throw whenever non-struct properties are included on an object passed to `set`)\n\n\tif ( isCollection( arg ) ) {\n\t\tStruct = structFactory( arg ); // NOTE: delegate to `structFactory` to perform input validation\n\t} else if ( isStructConstructorLike( arg ) ) {\n\t\tStruct = arg;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a struct constructor or struct schema. Value: `%s`.', arg ) );\n\t}\n\tBYTES_PER_ELEMENT = Struct.byteLength;\n\tLAYOUT = Struct.layout; // TODO: consider whether to lazily materialize the struct layout, as this could potentially be a long string (hence increased memory consumption) depending on the complexity of the struct\n\tFIELDS = Struct.fields;\n\n\t/**\n\t* Constructor which returns an array having a fixed-width composite data type.\n\t*\n\t* @private\n\t* @constructor\n\t* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n\t* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n\t* @param {NonNegativeInteger} [length] - view length\n\t* @throws {TypeError} must provide a valid first argument\n\t* @throws {TypeError} second argument must be a nonnegative integer\n\t* @throws {TypeError} third argument must be a nonnegative integer\n\t* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n\t* @throws {RangeError} second argument must be a multiple of struct byte length\n\t* @throws {RangeError} second argument must not exceeds the ArrayBuffer bounds\n\t* @throws {TypeError} view length must be a positive multiple of struct byte length\n\t* @throws {TypeError} an input array must contain valid elements\n\t* @returns {StructArray} struct array instance\n\t*/\n\tfunction StructArray( arg, byteOffset, length ) {\n\t\tvar nargs;\n\t\tvar buf;\n\t\tvar len;\n\t\tvar tmp;\n\n\t\tnargs = arguments.length;\n\t\tif ( !( this instanceof StructArray) ) {\n\t\t\tif ( nargs === 0 ) {\n\t\t\t\treturn new StructArray();\n\t\t\t}\n\t\t\tif ( nargs === 1 ) {\n\t\t\t\treturn new StructArray( arg );\n\t\t\t}\n\t\t\tif ( nargs === 2 ) {\n\t\t\t\treturn new StructArray( arg, byteOffset );\n\t\t\t}\n\t\t\treturn new StructArray( arg, byteOffset, length );\n\t\t}\n\n\t\t// Case: new StructArray()\n\t\tif ( nargs === 0 ) {\n\t\t\tbuf = new ArrayBuffer( 0 );\n\t\t\tlen = 0;\n\t\t}\n\t\t// Case: new StructArray( arg )\n\t\telse if ( nargs === 1 ) {\n\t\t\t// Case: new StructArray( length )\n\t\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\t\tbuf = new ArrayBuffer( arg*BYTES_PER_ELEMENT );\n\t\t\t\tlen = arg;\n\t\t\t}\n\t\t\t// Case: new StructArray( collection )\n\t\t\telse if ( isCollection( arg ) ) {\n\t\t\t\tlen = arg.length;\n\t\t\t\tbuf = fromArray( Struct, new ArrayBuffer( len*BYTES_PER_ELEMENT ), arg );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Each element of a provided input array must be a valid object or a struct instance having the same layout as elements in the desired output array.' ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( ArrayBuffer )\n\t\t\telse if ( isArrayBuffer( arg ) ) {\n\t\t\t\tbuf = arg;\n\t\t\t\tlen = buf.byteLength / BYTES_PER_ELEMENT;\n\t\t\t\tif ( !isInteger( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( iterable )\n\t\t\telse if ( isObject( arg ) ) {\n\t\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. First argument must be a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\ttmp = fromIterator( buf );\n\t\t\t\tlen = tmp.length;\n\t\t\t\tbuf = fromArray( Struct, new ArrayBuffer( len*BYTES_PER_ELEMENT ), tmp );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Each element of a provided input iterable must be either a valid object or a struct instance having the same layout as elements in the desired output array.' ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( ???? )\n\t\t\telse {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t}\n\t\t// Case: new StructArray( ArrayBuffer, byteOffset[, length] )\n\t\telse {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t\t}\n\t\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Second argument must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t\t}\n\t\t\tif ( byteOffset >= buf.byteLength ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Second argument exceeds the bounds of the ArrayBuffer. Value: `%s`.', byteOffset ) );\n\t\t\t}\n\t\t\t// Case: new StructArray( ArrayBuffer, byteOffset )\n\t\t\tif ( nargs === 2 ) {\n\t\t\t\tlen = ( buf.byteLength - byteOffset ) / BYTES_PER_ELEMENT;\n\t\t\t\tif ( !isInteger( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength-byteOffset ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( ArrayBuffer, byteOffset, length )\n\t\t\telse {\n\t\t\t\tlen = length;\n\t\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t\t}\n\t\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsetReadOnly( this, '_buffer', buf );\n\t\tsetReadOnly( this, '_byteOffset', byteOffset || 0 );\n\t\tsetReadOnly( this, '_byteLength', len*BYTES_PER_ELEMENT );\n\t\tsetReadOnly( this, '_length', len );\n\t\treturn this;\n\t}\n\n\t/**\n\t* Size (in bytes) of each array element.\n\t*\n\t* @private\n\t* @name BYTES_PER_ELEMENT\n\t* @memberof StructArray\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( StructArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n\t/**\n\t* Constructor name.\n\t*\n\t* @private\n\t* @name name\n\t* @memberof StructArray\n\t* @readonly\n\t* @type {string}\n\t*/\n\tsetReadOnly( StructArray, 'name', CTOR_NAME );\n\n\t/**\n\t* Element constructor.\n\t*\n\t* @private\n\t* @name struct\n\t* @memberof StructArray\n\t* @readonly\n\t* @type {Function}\n\t*/\n\tsetReadOnly( StructArray, 'struct', Struct );\n\n\t/**\n\t* Pointer to the underlying data buffer.\n\t*\n\t* @private\n\t* @name buffer\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {ArrayBuffer}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'buffer', function get() {\n\t\treturn this._buffer;\n\t});\n\n\t/**\n\t* Size (in bytes) of the array.\n\t*\n\t* @private\n\t* @name byteLength\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {NonNegativeInteger}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'byteLength', function get() {\n\t\treturn this._byteLength;\n\t});\n\n\t/**\n\t* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n\t*\n\t* @private\n\t* @name byteOffset\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {NonNegativeInteger}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'byteOffset', function get() {\n\t\treturn this._byteOffset;\n\t});\n\n\t/**\n\t* Size (in bytes) of each array element.\n\t*\n\t* @private\n\t* @name BYTES_PER_ELEMENT\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( StructArray.prototype, 'BYTES_PER_ELEMENT', StructArray.BYTES_PER_ELEMENT );\n\n\t/**\n\t* Returns an array element.\n\t*\n\t* @private\n\t* @name get\n\t* @memberof StructArray.prototype\n\t* @type {Function}\n\t* @param {NonNegativeInteger} idx - element index\n\t* @throws {TypeError} `this` must be a struct array instance\n\t* @throws {TypeError} must provide a nonnegative integer\n\t* @returns {(*|void)} array element\n\t*/\n\tsetReadOnly( StructArray.prototype, 'get', function get( idx ) {\n\t\tif ( !isStructArray( this ) ) {\n\t\t\tthrow new TypeError( format( 'invalid invocation. `this` is not a %s.', CTOR_NAME ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tif ( idx >= this._length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn new Struct( this._buffer, this._byteOffset+( idx*BYTES_PER_ELEMENT ), BYTES_PER_ELEMENT );\n\t});\n\n\t/**\n\t* Number of array elements.\n\t*\n\t* @private\n\t* @name length\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {NonNegativeInteger}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'length', function get() {\n\t\treturn this._length;\n\t});\n\n\t/**\n\t* Sets an array element.\n\t*\n\t* ## Notes\n\t*\n\t* - When provided a struct array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n\t*\n\t* ```text\n\t* buf: ---------------------\n\t* src: ---------------------\n\t* ```\n\t*\n\t* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n\t*\n\t* In the other overlapping scenario,\n\t*\n\t* ```text\n\t* buf: ---------------------\n\t* src: ---------------------\n\t* ```\n\t*\n\t* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n\t*\n\t* @private\n\t* @name set\n\t* @memberof StructArray.prototype\n\t* @type {Function}\n\t* @param {(Collection|StructArray|Struct|Object)} value - value(s)\n\t* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n\t* @throws {TypeError} `this` must be a struct array instance\n\t* @throws {TypeError} index argument must be a nonnegative integer\n\t* @throws {RangeError} index argument is out-of-bounds\n\t* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n\t* @throws {TypeError} must provide a valid object or a struct instance having the same layout as elements in the target array\n\t* @returns {void}\n\t*/\n\tsetReadOnly( StructArray.prototype, 'set', function set( value ) {\n\t\tvar bbytes;\n\t\tvar sbytes;\n\t\tvar sbuf;\n\t\tvar opts;\n\t\tvar idx;\n\t\tvar buf;\n\t\tvar tmp;\n\t\tvar get;\n\t\tvar nb;\n\t\tvar N;\n\t\tvar s;\n\t\tvar f;\n\t\tvar i;\n\t\tvar j;\n\t\tif ( !isStructArray( this ) ) {\n\t\t\tthrow new TypeError( format( 'invalid invocation. `this` is not a %s.', CTOR_NAME ) );\n\t\t}\n\t\tbuf = this._buffer;\n\t\tif ( arguments.length > 1 ) {\n\t\t\tidx = arguments[ 1 ];\n\t\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t\t}\n\t\t} else {\n\t\t\tidx = 0;\n\t\t}\n\t\topts = {\n\t\t\t'format': 'layout'\n\t\t};\n\t\tnb = Struct.byteLength;\n\n\t\tif ( isCollection( value ) && !contains( FIELDS, 'length' ) ) { // note: when one of the fields is 'length', we always assume that a provided value with a 'length' property is a struct and/or data object as there doesn't seem to be a surefire way to distinguish such an object from a regular array-like object (including accessor arrays)\n\t\t\tN = value.length;\n\t\t\tif ( idx+N > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\t\t\tif ( sbuf.get && sbuf.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Check for overlapping memory...\n\t\t\tj = this._byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// FIXME: add optimization when `value` is a StructArray sharing the same buffer and having the same layout; in which case, we can simply copy `src` bytes to a temporary array and then copy those bytes into the target array, without needing to intermediate struct instance materialization\n\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = [];\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp.push( get( value, i ) );\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\t\tthis.set( get( sbuf, i ), idx ); // note: this likely isn't the most performant approach, but it avoids having to replicate branching logic for handling struct instances vs data objects\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tif ( !isObject( value ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide either a valid object or a struct instance. Value: `%s`.', value ) );\n\t\t}\n\t\t// Check for a struct instance having a matching layout...\n\t\tif ( value.toString( opts ) === LAYOUT ) {\n\t\t\t// Explicitly copy the bytes of the input struct instance to the corresponding array element...\n\t\t\tsbuf = Struct.viewOf( value );\n\t\t\tsbytes = new Uint8Array( sbuf.buffer, sbuf.byteOffset, nb );\n\t\t\tbbytes = new Uint8Array( buf, this._byteOffset+( idx*BYTES_PER_ELEMENT ), nb );\n\t\t\tgcopy( nb, sbytes, 1, 0, bbytes, 1, 0 );\n\t\t\treturn;\n\t\t}\n\t\t// Create a struct instance view for the target element:\n\t\ts = new Struct( buf, this._byteOffset+( idx*BYTES_PER_ELEMENT ), nb );\n\n\t\t// Assign field values from the input object (accounting for both own and inherited properties)...\n\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\tf = FIELDS[ i ];\n\t\t\tif ( hasProp( value, f ) ) {\n\t\t\t\ts[ f ] = value[ f ];\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t* Element constructor.\n\t*\n\t* @private\n\t* @name struct\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {Function}\n\t*/\n\tsetReadOnly( StructArray.prototype, 'struct', Struct );\n\n\treturn StructArray;\n\n\t/**\n\t* Returns a boolean indicating if a value is a struct array.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating if a value is a struct array\n\t*/\n\tfunction isStructArray( value ) {\n\t\treturn (\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === CTOR_NAME ||\n\t\t\t\tisPrototypeOf( value, StructArray.prototype )\n\t\t\t) &&\n\t\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t\t);\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( v.value );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = require( 'buffer' ).Buffer;\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Buffer constructor.\n*\n* @module @stdlib/buffer-ctor\n*\n* @example\n* import ctor from '@stdlib/buffer-ctor';\n*\n* var b = new ctor( [ 1, 2, 3, 4 ] );\n* // returns \n*/\n\n// MODULES //\n\nimport hasNodeBufferSupport from '@stdlib/assert-has-node-buffer-support';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasNodeBufferSupport() ) {\n\tctor = main;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write (browser) polyfill\n\n// MAIN //\n\n/**\n* Buffer constructor.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Buffer from '@stdlib/buffer-ctor';\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Int16Array from '@stdlib/array-int16';\nimport Int32Array from '@stdlib/array-int32';\nimport Int8Array from '@stdlib/array-int8';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// FUNCTIONS //\n\n/**\n* Throws an error.\n*\n* @private\n* @throws {Error} not implemented\n*/\nfunction notImplemented() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// MAIN //\n\n// Mapping from data types to underlying buffer constructors...\nvar ctors = { // eslint-disable-line vars-on-top\n\t'binary': Buffer,\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'float16': notImplemented, // FIXME: replace with Float16Array constructor once implemented\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex32': notImplemented, // FIXME: replace with Complex32Array constructor once implemented\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport structFactory from '@stdlib/array-struct-factory';\nimport table from './ctors.js';\n\n\n// VARIABLES //\n\n// Initialize a cache to storing memoized struct array constructors:\nvar CACHE = {}; // TODO: consider adding/using `@stdlib/array/memoized-struct-factory`; should we need to memoize struct array constructors elsewhere, we should centralize that logic, rather than have multiple caches.\n\n\n// MAIN //\n\n/**\n* Returns an ndarray data buffer constructor.\n*\n* @param {*} dtype - data type\n* @returns {(Function|null)} data buffer constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\tvar struct;\n\tvar ctor;\n\tvar key;\n\n\t// Case: string || dtype_instance_with_string\n\tif ( !isFunction( dtype ) ) {\n\t\tkey = resolveStr( dtype );\n\t\tctor = table[ key ] || null;\n\t\tif ( ctor ) {\n\t\t\treturn ctor;\n\t\t}\n\t}\n\t// Case: struct_ctor || dtype_instance_with_struct_ctor\n\tif ( isStructDataType( dtype ) ) {\n\t\tif ( key ) {\n\t\t\t// Data type instance (note: we assume that `key === struct.layout`):\n\t\t\tstruct = dtype.value;\n\t\t} else {\n\t\t\t// Struct constructor:\n\t\t\tstruct = dtype;\n\t\t\tkey = struct.layout;\n\t\t}\n\t\tctor = CACHE[ key ];\n\t\tif ( ctor ) {\n\t\t\treturn ctor;\n\t\t}\n\t\tctor = structFactory( struct );\n\t\tCACHE[ key ] = ctor;\n\t\treturn ctor;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Allocate a buffer having a specified number of bytes.\n*\n* @module @stdlib/buffer-alloc-unsafe\n*\n* @example\n* import allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n*\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasAllocUnsafe from './has_alloc_unsafe.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar allocUnsafe;\nif ( hasAllocUnsafe ) {\n\tallocUnsafe = main;\n} else {\n\tallocUnsafe = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport Buffer from '@stdlib/buffer-ctor';\n\n\n// MAIN //\n\nvar bool = isFunction( Buffer.allocUnsafe );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\nimport format from '@stdlib/string-format';\nimport Buffer from '@stdlib/buffer-ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn Buffer.allocUnsafe( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\nimport format from '@stdlib/string-format';\nimport Buffer from '@stdlib/buffer-ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn new Buffer( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport bufferCtors from '@stdlib/ndarray-base-buffer-ctors';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\nimport zeros from '@stdlib/array-base-zeros';\nimport fill from '@stdlib/array-base-fill';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a zero-filled binary buffer.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Buffer} zero-filled binary buffer\n*/\nfunction binary( size ) {\n\treturn fill( allocUnsafe( size ), 0, 0, size );\n}\n\n/**\n* Returns a typed array.\n*\n* @private\n* @param {*} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(TypedArray|null)} typed array\n*/\nfunction typedarray( dtype, size ) {\n\tvar ctor = bufferCtors( dtype );\n\tif ( ctor ) {\n\t\treturn new ctor( size );\n\t}\n\treturn null;\n}\n\n\n// MAIN //\n\n/**\n* Returns a contiguous linear ndarray data buffer.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(Array|TypedArray|Buffer|null)} data buffer\n*\n* @example\n* var buf = buffer( 'float64', 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction buffer( dtype, size ) {\n\tvar dt = resolveStr( dtype );\n\tif ( dt === 'generic' ) {\n\t\treturn zeros( size );\n\t}\n\tif ( dt === 'binary' ) {\n\t\treturn binary( size );\n\t}\n\treturn typedarray( dtype, size );\n}\n\n\n// EXPORTS //\n\nexport default buffer;\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\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'fill' );\n* // e.g., returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Fills all elements within a portion of an indexed array with a specified value.\n*\n* @private\n* @param {Collection} x - input array\n* @param {*} value - fill value\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = indexed( x, 5, 1, 3 );\n* // returns [ 1, 5, 5, 4 ]\n*/\nfunction indexed( x, value, start, end ) {\n\tvar i;\n\tfor ( i = start; i < end; i++ ) {\n\t\tx[ i ] = value;\n\t}\n\treturn x;\n}\n\n/**\n* Fills all elements within a portion of an accessor array with a specified value.\n*\n* @private\n* @param {Object} x - input array object\n* @param {*} value - fill value\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {AccessorArray} modified input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n* var obj = arraylike2object( x );\n*\n* var out = accessors( obj, 5, 1, 3 );\n* // returns \n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* v = x.get( 1 );\n* // returns 5\n*\n* v = x.get( 2 );\n* // returns 5\n*\n* v = x.get( 3 );\n* // returns 4\n*/\nfunction accessors( x, value, start, end ) {\n\tvar data;\n\tvar set;\n\tvar i;\n\n\tdata = x.data;\n\tset = x.accessors[ 1 ];\n\tfor ( i = start; i < end; i++ ) {\n\t\tset( data, i, value );\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Fills all elements within a portion of an array with a specified value.\n*\n* @param {Collection} x - input array\n* @param {*} value - fill value\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = fill( x, 5, 1, 3 );\n* // returns [ 1, 5, 5, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var out = fill( x, 5, 1, 3 );\n* // returns [ 1, 5, 5, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fill( x, value, start, end ) {\n\tvar obj;\n\tif ( hasMethod( x, 'fill' ) ) {\n\t\treturn x.fill( value, start, end );\n\t}\n\tif ( start < 0 ) {\n\t\tstart += x.length;\n\t\tif ( start < 0 ) {\n\t\t\tstart = 0;\n\t\t}\n\t}\n\tif ( end < 0 ) {\n\t\tend += x.length; // if `end` is still negative, that is fine, as `x` will be returned un-mutated\n\t} else if ( end > x.length ) {\n\t\tend = x.length;\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj, value, start, end );\n\t}\n\treturn indexed( x, value, start, end );\n}\n\n\n// EXPORTS //\n\nexport default fill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport zeros from '@stdlib/array-base-zeros';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts a scalar value to an ndarray having a specified shape.\n*\n* @param {*} value - scalar value\n* @param {*} dtype - output array data type\n* @param {NonNegativeIntegerArray} shape - output array shape\n* @param {string} order - memory layout (either row-major or column-major)\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = broadcastScalar( 1.0, 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = getShape( x );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( x ) );\n* // returns 'float64'\n*\n* var v = x.get( 0, 1 );\n* // returns 1.0\n*/\nfunction broadcastScalar( value, dtype, shape, order ) {\n\tvar buf;\n\tvar set;\n\tvar N;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tdtype = resolveStr( dtype );\n\tif ( isComplexDataType( dtype ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dtype );\n\t} else {\n\t\tset = setter( dtype );\n\t}\n\tset( buf, 0, value );\n\tN = shape.length || 1;\n\treturn new ndarray( dtype, buf, shape, zeros( N ), 0, order );\n}\n\n\n// EXPORTS //\n\nexport default broadcastScalar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\n\n\n// MAIN //\n\n/**\n* Returns the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar n = x.ndims; // Note: intentionally cache in case `ndims` is lazily resolved via accessor\n\tif ( isNumber( n ) ) {\n\t\treturn n;\n\t}\n\treturn x.shape.length;\n}\n\n\n// EXPORTS //\n\nexport default ndims;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns default ndarray settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32',\n\t\t\t'boolean': 'bool',\n\t\t\t'index': 'int32',\n\t\t\t'integer_index': 'int32',\n\t\t\t'boolean_index': 'bool',\n\t\t\t'mask_index': 'uint8'\n\t\t},\n\n\t\t// Memory layout:\n\t\t'order': 'row-major',\n\n\t\t// Casting mode:\n\t\t'casting': 'safe',\n\n\t\t// Index mode:\n\t\t'index_mode': 'throw'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default defaults;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defaults from './main.js';\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'dtypes.boolean': DEFAULTS.dtypes.boolean,\n\t'dtypes.index': DEFAULTS.dtypes.index,\n\t'dtypes.integer_index': DEFAULTS.dtypes.integer_index,\n\t'dtypes.boolean_index': DEFAULTS.dtypes.boolean_index,\n\t'dtypes.mask_index': DEFAULTS.dtypes.mask_index,\n\t'order': DEFAULTS.order,\n\t'casting': DEFAULTS.casting,\n\t'index_mode': DEFAULTS.index_mode\n};\n\n\n// MAIN //\n\n/**\n* Returns a default ndarray setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport filled from '@stdlib/array-base-filled';\n\n\n// MAIN //\n\n/**\n* Returns a \"generic\" array filled with ones.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = ones( 3 );\n* // returns [ 1.0, 1.0, 1.0 ]\n*/\nfunction ones( len ) {\n\treturn filled( 1.0, len );\n}\n\n\n// EXPORTS //\n\nexport default ones;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return default ndarray settings.\n*\n* @module @stdlib/ndarray-defaults\n*\n* @example\n* import defaults from '@stdlib/ndarray-defaults';\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport get from './get.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport complexDataType from '@stdlib/complex-dtype';\nimport broadcastScalar from '@stdlib/ndarray-base-broadcast-scalar';\nimport dims from '@stdlib/ndarray-base-ndims';\nimport defaults from '@stdlib/ndarray-defaults';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport ones from '@stdlib/array-base-ones';\n\n\n// VARIABLES //\n\nvar DEFAULT_REAL = defaults.get( 'dtypes.real_floating_point' );\nvar DEFAULT_CMPLX = defaults.get( 'dtypes.complex_floating_point' );\nvar DEFAULT_BOOL = defaults.get( 'dtypes.boolean' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least a specified number of dimensions.\n*\n* @param {NonNegativeInteger} ndims - minimum number of dimensions\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = array( [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ] );\n* // returns [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ]\n*\n* var out = atleastnd( 3, [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleastnd( ndims, arrays ) {\n\tvar strides;\n\tvar shape;\n\tvar out;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\tvar v;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tout = [];\n\tfor ( i = 0; i < arrays.length; i++ ) {\n\t\tv = arrays[ i ];\n\t\tif ( isndarrayLike( v ) ) {\n\t\t\tN = dims( v );\n\t\t\tif ( N >= ndims ) {\n\t\t\t\tout.push( v );\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tsh = getShape( v, false );\n\t\t\tst = getStrides( v, false );\n\n\t\t\tshape = [];\n\t\t\tstrides = [];\n\n\t\t\t// Prepend singleton dimensions...\n\t\t\tfor ( j = 0; j < ndims-N; j++ ) {\n\t\t\t\tshape.push( 1 );\n\t\t\t\tstrides.push( st[ 0 ] );\n\t\t\t}\n\t\t\t// Copy remaining dimensions...\n\t\t\tfor ( j = 0; j < sh.length; j++ ) {\n\t\t\t\tshape.push( sh[ j ] );\n\t\t\t\tstrides.push( st[ j ] );\n\t\t\t}\n\t\t\tout.push( new ndarray( getDType( v ), getData( v ), shape, strides, getOffset( v ), getOrder( v ) ) ); // eslint-disable-line max-len\n\t\t\tcontinue;\n\t\t}\n\t\t// For scalar values, resolve a corresponding ndarray data type...\n\t\tif ( isNumber( v ) ) { // TODO: consider abstracting this logic to an `ndarray/base/scalar-dtype` (???) package, as this logic is found elsewhere (e.g., `ndarray/from-scalar`) and it would be good to avoid duplication, especially as we add support for more ndarray data types\n\t\t\tdt = DEFAULT_REAL;\n\t\t} else if ( isBoolean( v ) ) {\n\t\t\tdt = DEFAULT_BOOL;\n\t\t} else if ( isComplexLike( v ) ) {\n\t\t\tdt = complexDataType( v );\n\t\t\tif ( dt === null ) {\n\t\t\t\tdt = DEFAULT_CMPLX;\n\t\t\t}\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t}\n\t\tout.push( broadcastScalar( v, dt, ones( ndims ), ORDER ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default atleastnd;\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\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\nimport hasProp from '@stdlib/assert-has-property';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether at least one element in a provided indexed array has a specified property key-value pair, either own or inherited.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {(string|symbol|number)} prop - property\n* @param {*} value - property value\n* @returns {boolean} result\n*\n* @example\n* var o1 = {\n* 'a': 1\n* };\n* var o2 = {\n* 'b': 2\n* };\n* var o3 = {\n* 'c': 3\n* };\n*\n* var bool = indexed( [ o1, o2, o3 ], 'b', 2 );\n* // returns true\n*\n* bool = indexed( [ o1, o2, o3 ], 'b', 3 );\n* // returns false\n*\n* bool = indexed( [ o1, o2, o3 ], 'd', 0 );\n* // returns false\n*/\nfunction indexed( arr, prop, value ) {\n\tvar v;\n\tvar i;\n\tif ( value === void 0 ) {\n\t\tfor ( i = 0; i < arr.length; i++ ) {\n\t\t\tv = arr[ i ];\n\t\t\tif ( hasProp( v, prop ) && v[ prop ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( arr[ i ][ prop ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n* Tests whether at least one element in a provided accessor array has a specified property key-value pair, either own or inherited.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {(string|symbol|number)} prop - property\n* @param {*} value - property value\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n*\n* var o1 = {\n* 'a': 1\n* };\n* var o2 = {\n* 'b': 2\n* };\n* var o3 = {\n* 'c': 3\n* };\n*\n* var bool = accessors( toAccessorArray( [ o1, o2, o3 ] ), 'b', 2 );\n* // returns true\n*\n* bool = accessors( toAccessorArray( [ o1, o2, o3 ] ), 'b', 3 );\n* // returns false\n*\n* bool = accessors( toAccessorArray( [ o1, o2, o3 ] ), 'd', 0 );\n* // returns false\n*/\nfunction accessors( arr, prop, value ) {\n\tvar get;\n\tvar v;\n\tvar i;\n\n\tget = resolveGetter( arr );\n\tif ( value === void 0 ) {\n\t\tfor ( i = 0; i < arr.length; i++ ) {\n\t\t\tv = get( arr, i );\n\t\t\tif ( hasProp( v, prop ) && v[ prop ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( get( arr, i )[ prop ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in a provided array has a specified property key-value pair, either own or inherited.\n*\n* @param {Collection} arr - input array\n* @param {(string|symbol|number)} prop - property\n* @param {*} value - property value\n* @returns {boolean} result\n*\n* @example\n* var o1 = {\n* 'a': 1\n* };\n* var o2 = {\n* 'b': 2\n* };\n* var o3 = {\n* 'c': 3\n* };\n*\n* var bool = anyIsEntryIn( [ o1, o2, o3 ], 'b', 2 );\n* // returns true\n*\n* bool = anyIsEntryIn( [ o1, o2, o3 ], 'b', 3 );\n* // returns false\n*\n* bool = anyIsEntryIn( [ o1, o2, o3 ], 'd', 0 );\n* // returns false\n*/\nfunction anyIsEntryIn( arr, prop, value ) {\n\tif ( isAccessorArray( arr ) ) {\n\t\treturn accessors( arr, prop, value );\n\t}\n\treturn indexed( arr, prop, value );\n}\n\n\n// EXPORTS //\n\nexport default anyIsEntryIn;\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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned array has the following elements:\n*\n* ```text\n* [ , ... ]\n* ```\n*\n* where\n*\n* - **shape**: dimensions sorted in loop order.\n* - **...strides**: strides for each respective ndarray sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} shape - array dimensions\n* @param {ArrayLikeObject>} strides - list of stride arrays containing the stride lengths for each input and output ndarray\n* @returns {Array} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, [ sx, sy, sz ] );\n* // returns [...]\n*\n* var ssh = o[ 0 ];\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o[ 1 ];\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o[ 2 ];\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o[ 3 ];\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( shape, strides ) {\n\tvar idx;\n\tvar tmp;\n\tvar max;\n\tvar len;\n\tvar out;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tN = strides.length;\n\n\t// Initialize an array for grouping stride arrays according to memory layout:\n\ttmp = [];\n\tfor ( i = 0; i < 4; i++ ) { // note: `4` corresponds to the number of possible return values from `strides2order`\n\t\ttmp.push( [] );\n\t}\n\tM = tmp.length;\n\n\t// Group stride arrays according to memory layout:\n\tfor ( i = 0; i < N; i++ ) {\n\t\ttmp[ strides2order( strides[ i ] ) ].push( strides[ i ] );\n\t}\n\t// Determine which array should be used to generate the loop order:\n\tmax = tmp[ 0 ].length;\n\tif ( max === N ) {\n\t\t// If all arrays are \"disorganized\", then just use the first array, as, generally, each array is likely to be as un-ideal as every other:\n\t\tst = strides[ 0 ];\n\t} else if ( max === N-1 ) {\n\t\t// If all but one array is \"disorganized\", find the \"organized\" array...\n\t\tfor ( i = 1; i < M; i++ ) {\n\t\t\tif ( tmp[ i ].length ) {\n\t\t\t\tst = tmp[ i ][ 0 ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Find the layout which is most common...\n\t\tj = 0;\n\t\tfor ( i = 1; i < M; i++ ) {\n\t\t\tlen = tmp[ i ].length;\n\t\t\tif ( len >= max ) {\n\t\t\t\tmax = len;\n\t\t\t\tj = i;\n\t\t\t}\n\t\t}\n\t\t// Use the strides of the first array having the most common layout:\n\t\tst = tmp[ j ][ 0 ];\n\t}\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( shape.length );\n\n\t// Sort strides in increasing order of magnitude:\n\tsort2ins( copy( st ), idx );\n\n\t// Permute the shape based on the sorted strides:\n\tout = [ take( shape, idx ) ];\n\n\t// Permute each stride array based on the sorted strides:\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( take( strides[ i ], idx ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\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* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20`) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = binaryLoopOrder( sh, sx, sy, sz );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 6, -2, 1 ]\n*/\nfunction binaryLoopOrder( sh, sx, sy, sz ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default binaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = binaryBlockSize( 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction binaryBlockSize( dtypeX, dtypeY, dtypeZ ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ ] );\n}\n\n\n// EXPORTS //\n\nexport default binaryBlockSize;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binarynd( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binarynd( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, MODE );\n\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binarynd( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binarynd( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, MODE );\n\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport anyIsEntryIn from '@stdlib/array-base-any-is-entry-in';\nimport format from '@stdlib/string-format';\nimport blockedaccessorbinary2d from './2d_blocked_accessors.js';\nimport blockedaccessorbinary3d from './3d_blocked_accessors.js';\nimport blockedaccessorbinary4d from './4d_blocked_accessors.js';\nimport blockedaccessorbinary5d from './5d_blocked_accessors.js';\nimport blockedaccessorbinary6d from './6d_blocked_accessors.js';\nimport blockedaccessorbinary7d from './7d_blocked_accessors.js';\nimport blockedaccessorbinary8d from './8d_blocked_accessors.js';\nimport blockedaccessorbinary9d from './9d_blocked_accessors.js';\nimport blockedaccessorbinary10d from './10d_blocked_accessors.js';\nimport blockedbinary2d from './2d_blocked.js';\nimport blockedbinary3d from './3d_blocked.js';\nimport blockedbinary4d from './4d_blocked.js';\nimport blockedbinary5d from './5d_blocked.js';\nimport blockedbinary6d from './6d_blocked.js';\nimport blockedbinary7d from './7d_blocked.js';\nimport blockedbinary8d from './8d_blocked.js';\nimport blockedbinary9d from './9d_blocked.js';\nimport blockedbinary10d from './10d_blocked.js';\nimport accessorbinary0d from './0d_accessors.js';\nimport accessorbinary1d from './1d_accessors.js';\nimport accessorbinary2d from './2d_accessors.js';\nimport accessorbinary3d from './3d_accessors.js';\nimport accessorbinary4d from './4d_accessors.js';\nimport accessorbinary5d from './5d_accessors.js';\nimport accessorbinary6d from './6d_accessors.js';\nimport accessorbinary7d from './7d_accessors.js';\nimport accessorbinary8d from './8d_accessors.js';\nimport accessorbinary9d from './9d_accessors.js';\nimport accessorbinary10d from './10d_accessors.js';\nimport accessorbinarynd from './nd_accessors.js';\nimport binary0d from './0d.js';\nimport binary1d from './1d.js';\nimport binary2d from './2d.js';\nimport binary3d from './3d.js';\nimport binary4d from './4d.js';\nimport binary5d from './5d.js';\nimport binary6d from './6d.js';\nimport binary7d from './7d.js';\nimport binary8d from './8d.js';\nimport binary9d from './9d.js';\nimport binary10d from './10d.js';\nimport binarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar BINARY = [\n\tbinary0d,\n\tbinary1d,\n\tbinary2d,\n\tbinary3d,\n\tbinary4d,\n\tbinary5d,\n\tbinary6d,\n\tbinary7d,\n\tbinary8d,\n\tbinary9d,\n\tbinary10d\n];\nvar ACCESSOR_BINARY = [\n\taccessorbinary0d,\n\taccessorbinary1d,\n\taccessorbinary2d,\n\taccessorbinary3d,\n\taccessorbinary4d,\n\taccessorbinary5d,\n\taccessorbinary6d,\n\taccessorbinary7d,\n\taccessorbinary8d,\n\taccessorbinary9d,\n\taccessorbinary10d\n];\nvar BLOCKED_BINARY = [\n\tblockedbinary2d, // 0\n\tblockedbinary3d,\n\tblockedbinary4d,\n\tblockedbinary5d,\n\tblockedbinary6d,\n\tblockedbinary7d,\n\tblockedbinary8d,\n\tblockedbinary9d,\n\tblockedbinary10d // 8\n];\nvar BLOCKED_ACCESSOR_BINARY = [\n\tblockedaccessorbinary2d, // 0\n\tblockedaccessorbinary3d,\n\tblockedaccessorbinary4d,\n\tblockedaccessorbinary5d,\n\tblockedaccessorbinary6d,\n\tblockedaccessorbinary7d,\n\tblockedaccessorbinary8d,\n\tblockedaccessorbinary9d,\n\tblockedaccessorbinary10d // 8\n];\nvar MAX_DIMS = BINARY.length - 1;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if at least one ndarray data buffer implements the accessor protocol.\n*\n* @private\n* @param {ndarrayLike} x - first ndarray\n* @param {ndarrayLike} y - second ndarray\n* @param {ndarrayLike} z - third ndarray\n* @returns {boolean} boolean indicating whether an ndarray data buffer implements the accessor protocol\n*/\nfunction hasAccessors( x, y, z ) {\n\treturn anyIsEntryIn( [ x, y, z ], 'accessorProtocol', true );\n}\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in input ndarrays and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {Callback} fcn - binary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getData from '@stdlib/ndarray-data-buffer';\n*\n* function add( a, b ) {\n* return a + b;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var zbuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n* var sz = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarrays:\n* var x = new ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' );\n* var y = new ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' );\n* var z = new ndarray( 'float64', zbuf, shape, sz, oz, 'row-major' );\n*\n* // Apply the binary function:\n* binary( [ x, y, z ], add );\n*\n* console.log( getData( z ) );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0, 12.0 ]\n*/\nfunction binary( arrays, fcn ) { // eslint-disable-line max-statements\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar zmmv;\n\tvar shx;\n\tvar shy;\n\tvar shz;\n\tvar iox;\n\tvar ioy;\n\tvar ioz;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\tz = ndarray2object( arrays[ 2 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tshz = z.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length || ndims !== shz.length ) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d. ndims(z) == %d.', ndims, shy.length, shz.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ ndims ]( x, y, z, fcn );\n\t\t}\n\t\treturn BINARY[ ndims ]( x, y, z, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] || d !== shz[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ ndims ]( x, y, z, fcn );\n\t\t}\n\t\treturn BINARY[ ndims ]( x, y, z, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\n\t// Determine whether the ndarrays have only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tz.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tz.strides = [ sz[i] ];\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ 1 ]( x, y, z, fcn );\n\t\t}\n\t\treturn BINARY[ 1 ]( x, y, z, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\tioz = iterationOrder( sz ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ioz !== 0 && ord === strides2order( sy ) && ord === strides2order( sz ) ) { // eslint-disable-line max-len\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\t\tzmmv = minmaxViewBufferIndex( shz, sz, z.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif (\n\t\t\tlen === ( xmmv[1]-xmmv[0]+1 ) &&\n\t\t\tlen === ( ymmv[1]-ymmv[0]+1 ) &&\n\t\t\tlen === ( zmmv[1]-zmmv[0]+1 )\n\t\t) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioz === 1 ) {\n\t\t\t\toz = zmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toz = zmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tz.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tz.strides = [ ioz ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tz.offset = oz;\n\t\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\t\treturn ACCESSOR_BINARY[ 1 ]( x, y, z, fcn );\n\t\t\t}\n\t\t\treturn BINARY[ 1 ]( x, y, z, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\t\treturn ACCESSOR_BINARY[ ndims ]( x, y, z, ord === 1, fcn );\n\t\t\t}\n\t\t\treturn BINARY[ ndims ]( x, y, z, ord === 1, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn BLOCKED_ACCESSOR_BINARY[ ndims-2 ]( x, y, z, fcn );\n\t\t}\n\t\treturn BLOCKED_BINARY[ ndims-2 ]( x, y, z, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( hasAccessors( x, y, z ) ) {\n\t\treturn accessorbinarynd( x, y, z, fcn );\n\t}\n\tbinarynd( x, y, z, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\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 binary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0 ] );\n* var ybuf = new Float64Array( [ 2.0 ] );\n* var zbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary0d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 3.0 ]\n*/\nfunction binary0d( x, y, z, fcn ) {\n\tz.data[ z.offset ] = fcn( x.data[ x.offset ], y.data[ y.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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 binary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 12 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary1d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary1d( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dy0;\n\tvar dz0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\tdz0 = z.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\tiz += dz0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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 binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary2d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary2d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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 binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary3d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary3d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary3d;\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 binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary4d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary4d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary4d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary5d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary5d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary5d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary6d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary6d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary6d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary7d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary7d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary7d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary8d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary8d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary8d;\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-statements, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary9d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary9d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary9d;\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-statements, max-len, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary10d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary10d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary10d;\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 binary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0 ] );\n* var ybuf = toAccessorArray( [ 2.0 ] );\n* var zbuf = toAccessorArray( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary0d( x, y, z, fcn );\n*\n* var v = z.data.get( 0 );\n* // returns 3.0\n*/\nfunction binary0d( x, y, z, fcn ) {\n\tz.accessors[ 1 ]( z.data, z.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ), y.accessors[ 0 ]( y.data, y.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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 binary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 12 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary1d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary1d( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dy0;\n\tvar dz0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\tdz0 = z.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\tiz += dz0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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 binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary2d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary2d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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 binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary3d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary3d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary3d;\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 binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary4d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary4d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary4d;\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-len, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary5d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary5d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary5d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary6d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary6d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary6d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary7d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary7d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary7d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary8d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary8d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary8d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary9d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary9d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary10d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary10d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary2d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary2d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary3d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary3d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary3d;\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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary4d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary4d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\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\nexport default blockedbinary4d;\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-statements, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary5d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary5d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\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\nexport default blockedbinary5d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary6d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary6d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\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\nexport default blockedbinary6d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary7d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary7d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary8d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary8d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary9d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary9d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function, max-lines */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary10d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary10d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\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\nexport default blockedbinary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary2d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary2d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary2d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary3d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary3d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary3d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary4d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary4d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\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\nexport default blockedbinary4d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary5d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary5d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\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\nexport default blockedbinary5d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary6d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary6d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\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\nexport default blockedbinary6d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary7d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary7d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary8d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary8d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary9d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary9d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function, max-lines */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary10d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary10d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\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\nexport default blockedbinary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport PROMOTION_RULES from './promotion_rules.json';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of promotion rules.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( PROMOTION_RULES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = PROMOTION_RULES[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @param {*} [dtype1] - ndarray data type value\n* @param {*} [dtype2] - ndarray data type value\n* @returns {(Object|integer|string|null)} promotion rule(s) or null\n*\n* @example\n* var table = promotionRules();\n* // returns {...}\n*\n* @example\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* @example\n* var dt = promotionRules( 'binary', 'generic' );\n* // returns -1\n*\n* @example\n* var dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\nfunction promotionRules( dtype1, dtype2 ) {\n\tvar o;\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tdtype1 = resolve( dtype1 );\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tdtype2 = resolve( dtype2 );\n\t\tif ( hasOwnProp( o, dtype2 ) ) {\n\t\t\treturn o[ dtype2 ];\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default promotionRules;\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\nimport promotionRules from '@stdlib/ndarray-promotion-rules';\n\n\n// MAIN //\n\n/**\n* Returns a data type that results from applying promotion rules to a provided list of data types.\n*\n* @param {StringArray} dtypes - list of data types\n* @returns {(string|null)} result\n*\n* @example\n* var dt = promoteDataTypes( [ 'float32', 'float64' ] );\n* // returns 'float64'\n*\n* @example\n* var dt = promoteDataTypes( [ 'binary', 'complex128' ] );\n* // returns null\n*/\nfunction promoteDataTypes( dtypes ) {\n\tvar dt;\n\tvar N;\n\tvar i;\n\n\tN = dtypes.length;\n\tif ( N === 0 ) {\n\t\treturn null;\n\t}\n\tdt = dtypes[ 0 ];\n\tfor ( i = 1; i < dtypes.length; i++ ) {\n\t\tdt = promotionRules( dt, dtypes[ i ] );\n\t\tif ( dt === null || dt === -1 ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\treturn dt;\n}\n\n\n// EXPORTS //\n\nexport default promoteDataTypes;\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 id-length, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport promoteDataTypes from '@stdlib/ndarray-base-promote-dtypes';\nimport defaults from '@stdlib/ndarray-defaults';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_SIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.signed_integer' );\nvar DEFAULT_UNSIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.unsigned_integer' );\nvar DEFAULT_REAL_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.real_floating_point' );\n\n\n// MAIN //\n\n/**\n* Resolves the casting data type for an input ndarray provided to a binary function.\n*\n* @param {string} idtype1 - input ndarray data type\n* @param {string} idtype2 - additional input ndarray data type\n* @param {string} odtype - output ndarray data type\n* @param {string} policy - input ndarray data type casting policy\n* @throws {TypeError} fourth argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} data type\n*\n* @example\n* var dt = resolve( 'float32', 'float32', 'float64', 'none' );\n* // returns \n*/\nfunction resolve( idtype1, idtype2, odtype, policy ) {\n\tvar dt;\n\tif ( policy === 'none' ) {\n\t\t// When the policy is 'none', casting behavior is implementation-defined, so we just return the input ndarray data type as is...\n\t\treturn idtype1;\n\t}\n\tif ( policy === 'output' ) {\n\t\treturn odtype;\n\t}\n\tif ( policy === 'promoted' ) {\n\t\tdt = promoteDataTypes( [ idtype1, idtype2, odtype ] );\n\t\tif ( dt === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unable to promote the input and output data types. Input data types: [%s]. Output data type: %s.', join( [ idtype1, idtype2 ], ', ' ), odtype ) );\n\t\t}\n\t\treturn dt;\n\t}\n\tif ( policy === 'accumulation' ) {\n\t\t// When the casting policy is 'accumulation', we consider the input ndarray data type in isolation, irrespective of the output data type or the data types of additional input ndarrays...\n\n\t\t// If an input data type is floating-point, allow accumulation in that data type as overflow/underflow is handled naturally as a built-in feature of that data type...\n\t\tif ( isFloatingPointDataType( idtype1 ) || idtype1 === 'generic' ) { // NOTE: we may want to revisit this in the future for float16/complex32, where the value range is much more limited\n\t\t\treturn idtype1;\n\t\t}\n\t\t// Unless an input data type value range is larger than the default un/signed integer data type, accumulate in the default un/signed integer data type, as accumulating in smaller range integer data types (e.g., `int8`) are at high risk for overflow, especially for ndarrays containing many elements...\n\t\tif ( isUnsignedIntegerDataType( idtype1 ) ) {\n\t\t\treturn promoteDataTypes( [ idtype1, DEFAULT_UNSIGNED_INTEGER_DTYPE ] );\n\t\t}\n\t\tif ( isSignedIntegerDataType( idtype1 ) ) {\n\t\t\treturn promoteDataTypes( [ idtype1, DEFAULT_SIGNED_INTEGER_DTYPE ] );\n\t\t}\n\t\t// For all other input data types, accumulate in the default real-valued floating-point data type...\n\t\treturn DEFAULT_REAL_FLOATING_POINT_DTYPE;\n\t}\n\t// Check for an explicit data type...\n\tif ( isDataType( policy ) ) {\n\t\treturn policy;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a supported casting policy. Value: `%s`.', policy ) );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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 id-length */\n\n'use strict';\n\n// MODULES //\n\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nimport isRealFloatingPointDataType from '@stdlib/ndarray-base-assert-is-real-floating-point-data-type';\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isIntegerDataType from '@stdlib/ndarray-base-assert-is-integer-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport isNumericDataType from '@stdlib/ndarray-base-assert-is-numeric-data-type';\nimport isBooleanDataType from '@stdlib/ndarray-base-assert-is-boolean-data-type';\nimport isIntegerIndexDataType from '@stdlib/ndarray-base-assert-is-integer-index-data-type';\nimport isBooleanIndexDataType from '@stdlib/ndarray-base-assert-is-boolean-index-data-type';\nimport isMaskIndexDataType from '@stdlib/ndarray-base-assert-is-mask-index-data-type';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport promoteDataTypes from '@stdlib/ndarray-base-promote-dtypes';\nimport defaults from '@stdlib/ndarray-defaults';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\nvar DEFAULT_INDEX_DTYPE = defaults.get( 'dtypes.default_index' );\nvar DEFAULT_SIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.signed_integer' );\nvar DEFAULT_UNSIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.unsigned_integer' );\nvar DEFAULT_REAL_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.real_floating_point' );\nvar DEFAULT_COMPLEX_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.complex_floating_point' );\n\n// Table where, for each respective policy, the value is a function which applies the policy to an input data type...\nvar POLICY_TABLE1 = {\n\t'default': defaultPolicy,\n\t'default_index': defaultIndexPolicy,\n\t'same': samePolicy,\n\t'promoted': promotedPolicy,\n\t'accumulation': accumulationPolicy\n};\n\n// Table where, for each respective policy, the value is an array whose first element is an assertion and whose second element is a fallback data type...\nvar POLICY_TABLE2 = {\n\t// Floating-point policies...\n\t'floating_point': [\n\t\tisFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.floating_point' )\n\t],\n\t'floating_point_and_generic': [\n\t\twrap( isFloatingPointDataType ),\n\t\tdefaults.get( 'dtypes.floating_point' )\n\t],\n\t'real_floating_point': [\n\t\tisRealFloatingPointDataType,\n\t\tresolveDefaultRealFloatingPoint\n\t],\n\t'real_floating_point_and_generic': [\n\t\twrap( isRealFloatingPointDataType ),\n\t\tresolveDefaultRealFloatingPoint\n\t],\n\t'complex_floating_point': [\n\t\tisComplexFloatingPointDataType,\n\t\tresolveDefaultComplexFloatingPoint\n\t],\n\t'complex_floating_point_and_generic': [\n\t\twrap( isComplexFloatingPointDataType ),\n\t\tresolveDefaultComplexFloatingPoint\n\t],\n\n\t// Integer policies...\n\t'integer': [\n\t\tisIntegerDataType,\n\t\tdefaults.get( 'dtypes.integer' )\n\t],\n\t'integer_and_generic': [\n\t\twrap( isIntegerDataType ),\n\t\tdefaults.get( 'dtypes.integer' )\n\t],\n\t'signed_integer': [\n\t\tisSignedIntegerDataType,\n\t\tDEFAULT_SIGNED_INTEGER_DTYPE\n\t],\n\t'signed_integer_and_generic': [\n\t\twrap( isSignedIntegerDataType ),\n\t\tDEFAULT_SIGNED_INTEGER_DTYPE\n\t],\n\t'unsigned_integer': [\n\t\tisUnsignedIntegerDataType,\n\t\tDEFAULT_UNSIGNED_INTEGER_DTYPE\n\t],\n\t'unsigned_integer_and_generic': [\n\t\twrap( isUnsignedIntegerDataType ),\n\t\tDEFAULT_UNSIGNED_INTEGER_DTYPE\n\t],\n\n\t// Real-valued number policies...\n\t'real': [\n\t\tisRealDataType,\n\t\tdefaults.get( 'dtypes.real' )\n\t],\n\t'real_and_generic': [\n\t\twrap( isRealDataType ),\n\t\tdefaults.get( 'dtypes.real' )\n\t],\n\n\t// Real- and complex-valued number policies...\n\t'numeric': [\n\t\tisNumericDataType,\n\t\tdefaults.get( 'dtypes.numeric' )\n\t],\n\t'numeric_and_generic': [\n\t\twrap( isNumericDataType ),\n\t\tdefaults.get( 'dtypes.numeric' )\n\t],\n\n\t// Boolean policies...\n\t'boolean': [\n\t\tisBooleanDataType,\n\t\tdefaults.get( 'dtypes.boolean' )\n\t],\n\t'boolean_and_generic': [\n\t\twrap( isBooleanDataType ),\n\t\tdefaults.get( 'dtypes.boolean' )\n\t],\n\n\t// Index policies...\n\t'integer_index': [\n\t\tisIntegerIndexDataType,\n\t\tdefaults.get( 'dtypes.integer_index' )\n\t],\n\t'integer_index_and_generic': [\n\t\twrap( isIntegerIndexDataType ),\n\t\tdefaults.get( 'dtypes.integer_index' )\n\t],\n\t'boolean_index': [\n\t\tisBooleanIndexDataType,\n\t\tdefaults.get( 'dtypes.boolean_index' )\n\t],\n\t'boolean_index_and_generic': [\n\t\twrap( isBooleanIndexDataType ),\n\t\tdefaults.get( 'dtypes.boolean_index' )\n\t],\n\t'mask_index': [\n\t\tisMaskIndexDataType,\n\t\tdefaults.get( 'dtypes.mask_index' )\n\t],\n\t'mask_index_and_generic': [\n\t\twrap( isMaskIndexDataType ),\n\t\tdefaults.get( 'dtypes.mask_index' )\n\t]\n};\n\n// Table mapping complex-valued floating-point data types to real-valued floating-point data types having the same precision:\nvar COMPLEX2FLOAT = {\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n// Table mapping real-valued floating-point data types to complex-valued floating-point data types having the same precision:\nvar FLOAT2COMPLEX = {\n\t'float64': 'complex128',\n\t'float32': 'complex64',\n\t'float16': 'complex32'\n};\n\n\n// FUNCTIONS //\n\n/**\n* Wraps a data type validation function to also check for a \"generic\" data type.\n*\n* @private\n* @param {Function} fcn - validation function\n* @returns {Function} wrapped validation function\n*/\nfunction wrap( fcn ) {\n\treturn wrapper;\n\n\t/**\n\t* Tests whether a provided data type is either \"generic\" or satisfies a data type validation function.\n\t*\n\t* @private\n\t* @param {*} value - input value\n\t* @returns {boolean} boolean indicating whether a provided value passes a test\n\t*/\n\tfunction wrapper( value ) {\n\t\treturn ( value === 'generic' ) || fcn( value );\n\t}\n}\n\n/**\n* Returns the default data type.\n*\n* @private\n* @returns {string} output ndarray data type\n*/\nfunction defaultPolicy() {\n\t// When the policy is \"default\", the output data type should always be the default data type without consideration for the input data types:\n\treturn DEFAULT_DTYPE;\n}\n\n/**\n* Returns the default index data type.\n*\n* @private\n* @returns {string} output ndarray data type\n*/\nfunction defaultIndexPolicy() {\n\t// When the policy is \"default_index\", the output data type should always be the default index data type without consideration for the input data types:\n\treturn DEFAULT_INDEX_DTYPE;\n}\n\n/**\n* Applies the \"same\" policy by returning the common input data type.\n*\n* @private\n* @param {StringArray} dtypes - input ndarray data types\n* @throws {Error} invalid data types\n* @returns {string} output ndarray data type\n*/\nfunction samePolicy( dtypes ) {\n\tvar dt;\n\tvar i;\n\n\tdt = dtypes[ 0 ];\n\tfor ( i = 1; i < dtypes.length; i++ ) {\n\t\t// When the policy is \"same\", we require that all data types (both input and output) be the same...\n\t\tif ( dtypes[ i ] !== dt ) {\n\t\t\tthrow new Error( format( 'invalid argument. Unable to resolve an output data type. The output data type policy is \"same\" and yet the input data types are not equal. Data types: [%s].', join( dtypes, ', ' ) ) );\n\t\t}\n\t}\n\treturn dt;\n}\n\n/**\n* Applies the \"promoted\" policy by applying type promotion to the list of provided data types.\n*\n* @private\n* @param {StringArray} dtypes - input ndarray data types\n* @throws {Error} must provide data types which can be safely cast to a common data type\n* @returns {string} output ndarray data type\n*/\nfunction promotedPolicy( dtypes ) {\n\tvar dt = promoteDataTypes( dtypes );\n\tif ( dt === null ) {\n\t\tthrow new Error( format( 'invalid argument. Unable to apply type promotion rules when resolving a data type to which the input data types can be safely cast. Data types: [%s].', join( dtypes, ', ' ) ) );\n\t}\n\treturn dt;\n}\n\n/**\n* Applies the \"accumulation\" policy to the list of input data types.\n*\n* @private\n* @param {StringArray} dtypes - input ndarray data types\n* @throws {Error} must provide data types which can be safely cast to a common data type\n* @returns {string} output ndarray data type\n*/\nfunction accumulationPolicy( dtypes ) {\n\tvar dt = promotedPolicy( dtypes );\n\n\t// If the promoted data type is floating-point, allow accumulation in that data type as overflow/underflow is handled naturally as a built-in feature of that data type...\n\tif ( isFloatingPointDataType( dt ) || dt === 'generic' ) { // NOTE: we may want to revisit this in the future for float16/complex32, where the value range is much more limited\n\t\treturn dt;\n\t}\n\t// Unless the promoted data type value range is larger than the default un/signed integer data type, accumulate in the default un/signed integer data type, as accumulating in small range integer data types (e.g., `int8`) is at high risk for overflow, especially for ndarrays containing many elements...\n\tif ( isUnsignedIntegerDataType( dt ) ) {\n\t\treturn promoteDataTypes( [ dt, DEFAULT_UNSIGNED_INTEGER_DTYPE ] );\n\t}\n\tif ( isSignedIntegerDataType( dt ) ) {\n\t\treturn promoteDataTypes( [ dt, DEFAULT_SIGNED_INTEGER_DTYPE ] );\n\t}\n\t// For all other data types, accumulate in the default real-valued floating-point data type...\n\treturn DEFAULT_REAL_FLOATING_POINT_DTYPE;\n}\n\n/**\n* Resolves a default real-valued floating-point data type which preserves floating-point precision.\n*\n* @private\n* @param {string} dtype - input ndarray data type\n* @returns {string} output ndarray data type\n*/\nfunction resolveDefaultRealFloatingPoint( dtype ) {\n\treturn COMPLEX2FLOAT[ dtype ] || DEFAULT_REAL_FLOATING_POINT_DTYPE;\n}\n\n/**\n* Resolves a default complex-valued floating-point data type which preserves floating-point precision.\n*\n* @private\n* @param {string} dtype - input ndarray data type\n* @returns {string} output ndarray data type\n*/\nfunction resolveDefaultComplexFloatingPoint( dtype ) {\n\treturn FLOAT2COMPLEX[ dtype ] || DEFAULT_COMPLEX_FLOATING_POINT_DTYPE;\n}\n\n\n// MAIN //\n\n/**\n* Resolves the output data type from a list of input ndarray data types.\n*\n* @param {StringArray} dtypes - list of input ndarray data types\n* @param {string} policy - output ndarray data type policy\n* @throws {TypeError} second argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} output ndarray data type\n*\n* @example\n* var dt = resolve( [ 'float64' ], 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( dtypes, policy ) {\n\tvar dt;\n\tvar p;\n\n\t// First, check whether the policy mandates that the output data type always be a specific data type...\n\tif ( isDataType( policy ) ) {\n\t\treturn policy;\n\t}\n\t// Next, check whether the policy is one in which we may be able to avoid type promotion...\n\tp = POLICY_TABLE1[ policy ];\n\tif ( p !== void 0 ) {\n\t\treturn p( dtypes );\n\t}\n\t// For all other policies, we always apply type promotion rules...\n\tdt = promotedPolicy( dtypes );\n\n\t// Check whether the policy requires determining the data type \"kind\"...\n\tp = POLICY_TABLE2[ policy ];\n\tif ( p !== void 0 ) {\n\t\t// Check whether the promoted data type belongs to the data type \"kind\"...\n\t\tif ( p[ 0 ]( dt ) ) {\n\t\t\t// If so, we can just return the promoted data type:\n\t\t\treturn dt;\n\t\t}\n\t\t// Otherwise, we need to fallback to a default data type belonging to that \"kind\"...\n\t\tif ( isString( p[ 1 ] ) ) {\n\t\t\treturn p[ 1 ];\n\t\t}\n\t\treturn p[ 1 ]( dt );\n\t}\n\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type policy. Value: `%s`.', policy ) );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a binary function.\n*\n* @param {*} xdtype - first input ndarray data type\n* @param {*} ydtype - second input ndarray data type\n* @param {(string|*)} policy - output ndarray data type policy\n* @throws {TypeError} third argument must be a recognized data type policy\n* @throws {Error} must provide data types amenable to type promotion\n* @returns {DataType} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'float32', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( xdtype, ydtype, policy ) {\n\treturn outputDataType( [ xdtype, ydtype ], policy );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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 the complement of a list of array indices.\n*\n* @param {NonNegativeInteger} N - array length\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {NonNegativeIntegerArray} indices complement\n*\n* @example\n* var idx = indicesComplement( 5, [ 1, 2 ] );\n* // returns [ 0, 3, 4 ]\n*/\nfunction indicesComplement( N, indices ) {\n\tvar hash;\n\tvar out;\n\tvar i;\n\n\thash = {};\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\thash[ indices[ i ] ] = true;\n\t}\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( hash[ i ] === void 0 ) {\n\t\t\tout.push( i );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default indicesComplement;\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* Takes elements from two indexed arrays in a single pass.\n*\n* @param {Collection} x - first input array\n* @param {Collection} y - second input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output arrays\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var y = [ 5, 6, 7, 8 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var out = take2( x, y, indices );\n* // returns [ [ 4, 2, 3, 1 ], [ 8, 6, 7, 5 ] ]\n*/\nfunction take2( x, y, indices ) {\n\tvar o1;\n\tvar o2;\n\tvar i;\n\n\to1 = [];\n\to2 = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\to1.push( x[ indices[ i ] ] ); // use `Array#push` to ensure \"fast\" elements\n\t\to2.push( y[ indices[ i ] ] );\n\t}\n\treturn [ o1, o2 ];\n}\n\n\n// EXPORTS //\n\nexport default take2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x ) {\n\tvar out;\n\tvar sh;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\t// Copy the shape in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < sh.length; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default shape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {IntegerArray} strides\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x ) {\n\tvar out;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides; // TODO: consider whether we want to support ecosystem libraries, such as scijs/ndarray, which name this property `stride`\n\tif ( !isCollection( st ) ) {\n\t\t// WARNING: if no strides array, try to derive the strides from the shape. Note, however, that there is a lot that can go wrong here, as the only thing we are requiring is that the shape is a collection. The main point of going through the effort to compute strides is to support minimal ndarray-esque objects, where the only essential attributes are `shape` and `dtype` and where other attributes can be computed (e.g., `strides`, `offset`, `ndims`, `order`, etc), assuming single-segment contiguous data stored in row-major order...\n\t\tsh = x.shape;\n\t\tif ( !isCollection( sh ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( !isOrder( ord ) ) {\n\t\t\tord = 'row-major';\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\t// Copy the strides in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < st.length; i++ ) {\n\t\td = st[ i ];\n\t\tif ( !isInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.ndims;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\treturn sh.length;\n}\n\n\n// EXPORTS //\n\nexport default ndims;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nimport strides from '@stdlib/ndarray-strides';\nimport ndims from '@stdlib/ndarray-ndims';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\to = x.order;\n\tif ( isOrder( o ) ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = strides( x );\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( ndims( x ) === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-dtype';\nimport getShape from '@stdlib/ndarray-shape';\nimport getStrides from '@stdlib/ndarray-strides';\nimport getOffset from '@stdlib/ndarray-offset';\nimport getOrder from '@stdlib/ndarray-order';\nimport getData from '@stdlib/ndarray-data-buffer';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport defaults from '@stdlib/ndarray-defaults';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults( 'order' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an ndarray.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var out = ndarraylike2ndarray( x );\n* // returns \n*/\nfunction ndarraylike2ndarray( x ) {\n\treturn new ndarray( getDType( x ), getData( x ), getShape( x ), getStrides( x ), getOffset( x ), getOrder( x ) || DEFAULT_ORDER ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray having a supported data type\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\tvar dt;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tdt = x.dtype;\n\tif ( isDataType( dt ) ) {\n\t\treturn dt;\n\t}\n\t// A data type is essential for interpreting the memory associated with an ndarray object, so no fallbacks or workarounds for data type resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray having a supported data type. Value: `%s`.', dt ) );\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\tvar out;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tout = x.data;\n\tif ( isCollection( out ) ) {\n\t\treturn out;\n\t}\n\t// A data buffer is essential for operating on an ndarray object, so no fallbacks or workarounds for data buffer resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.offset;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides;\n\tif ( sh.length === 0 || !isCollection( st ) ) {\n\t\treturn 0;\n\t}\n\tn = strides2offset( sh, st );\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Int16Array from '@stdlib/array-int16';\nimport Int32Array from '@stdlib/array-int32';\nimport Int8Array from '@stdlib/array-int8';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport ctors from '@stdlib/array-ctors';\nimport gzeros from '@stdlib/array-base-zeros';\nimport defaults from '@stdlib/array-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = zeros( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = zeros( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction zeros( length ) {\n\tvar dtype;\n\tvar ctor;\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn gzeros( length );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new ctor( length ); // WARNING: we assume that, apart from 'generic', the constructors for supported array data types are zero-filled by default\n}\n\n\n// EXPORTS //\n\nexport default zeros;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns an array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-zeros';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @private\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tif ( arguments.length > 1 ) {\n\t\treturn zeros( length, arguments[ 1 ] );\n\t}\n\treturn zeros( length );\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction emptyLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar dts;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tdts = resolveStr( dt );\n\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dts === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dts );\n\t}\n\t// FIXME: add support for struct dtypes. Will need to do something similar to `array/empty` in so far as allocating an uninitialized array buffer, performing byte alignment, and creating a StructArray view atop the buffer.\n\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\n}\n\n\n// EXPORTS //\n\nexport default emptyLike;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {*} 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the third element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 2 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default offsets;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpret from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Copies every element from one array to another array, except for the element at a specified index.\n*\n* @private\n* @param {Collection} x - input array\n* @param {integer} index - element index\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* var arr = indexed( x, 0, out, 1, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\nfunction indexed( x, index, out, stride, offset ) {\n\tvar io;\n\tvar i;\n\n\tio = offset;\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\tif ( i === index ) {\n\t\t\tcontinue;\n\t\t}\n\t\tout[ io ] = x[ i ];\n\t\tio += stride;\n\t}\n\treturn out;\n}\n\n/**\n* Copies every element from one accessor array to another accessor array, except for the element at a specified index.\n*\n* @private\n* @param {Object} x - input array object\n* @param {integer} index - element index\n* @param {Object} out - output array object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {Collection} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var out = toAccessorArray( [ 0, 0, 0 ] );\n* var arr = accessors( arraylike2object( x ), 0, arraylike2object( out ), 1, 0 );\n*\n* var v = arr.get( 0 );\n* // returns 2\n*/\nfunction accessors( x, index, out, stride, offset ) {\n\tvar xdata;\n\tvar odata;\n\tvar xget;\n\tvar oset;\n\tvar io;\n\tvar i;\n\n\txdata = x.data;\n\todata = out.data;\n\n\txget = x.accessors[ 0 ];\n\toset = out.accessors[ 1 ];\n\n\tio = offset;\n\tfor ( i = 0; i < xdata.length; i++ ) {\n\t\tif ( i === index ) {\n\t\t\tcontinue;\n\t\t}\n\t\toset( odata, io, xget( xdata, i ) );\n\t\tio += stride;\n\t}\n\treturn odata;\n}\n\n/**\n* Copies every element from one complex array to another complex array, except for the element at a specified index.\n*\n* @private\n* @param {Collection} x - real-valued floating-point input array view\n* @param {integer} index - element index\n* @param {Collection} out - real-valued floating-point output array view\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {Collection} output array view\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import Float64Array from '@stdlib/array-float64';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n*\n* var out = new Float64Array( 2 );\n* var arr = complex( x, 0, out, 1, 0 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction complex( x, index, out, stride, offset ) {\n\tvar so;\n\tvar io;\n\tvar i;\n\tvar j;\n\n\tso = stride * 2; // multiply by 2, as real-valued array consists of interleaved real and imaginary components\n\tio = offset * 2;\n\tfor ( i = 0; i < x.length/2; i++ ) {\n\t\tif ( i === index ) {\n\t\t\tcontinue;\n\t\t}\n\t\tj = i * 2;\n\t\tout[ io ] = x[ j ];\n\t\tout[ io+1 ] = x[ j+1 ];\n\t\tio += so;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Copies every element from one array to another array, except for the element at a specified index.\n*\n* @param {Collection} x - input array\n* @param {integer} index - element index\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @throws {RangeError} second argument must not exceed array bounds\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* var arr = assign( x, 0, out, 1, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\nfunction assign( x, index, out, stride, offset ) {\n\tvar xo;\n\tvar oo;\n\n\tindex = normalizeIndex( index, x.length-1 );\n\tif ( index < 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%d`.', index ) );\n\t}\n\txo = arraylike2object( x );\n\too = arraylike2object( out );\n\tif ( xo.accessorProtocol || oo.accessorProtocol ) {\n\t\t// Note: we only explicitly support a limited set of dtype-to-dtype pairs, as this function should not be concerned with casting rules, etc. That is left to userland...\n\t\tif (\n\t\t\tisComplexDataType( xo.dtype ) &&\n\t\t\tisComplexDataType( oo.dtype )\n\t\t) {\n\t\t\tcomplex( reinterpret( x, 0 ), index, reinterpret( out, 0 ), stride, offset ); // eslint-disable-line max-len\n\t\t\treturn out;\n\t\t}\n\t\tif (\n\t\t\tisBooleanDataType( xo.dtype ) &&\n\t\t\tisBooleanDataType( oo.dtype )\n\t\t) {\n\t\t\tindexed( reinterpretBoolean( x, 0 ), index, reinterpretBoolean( out, 0 ), stride, offset ); // eslint-disable-line max-len\n\t\t\treturn out;\n\t\t}\n\t\taccessors( xo, index, oo, stride, offset );\n\t\treturn out;\n\t}\n\tindexed( x, index, out, stride, offset );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport zeros from '@stdlib/array-zeros';\nimport dtype from '@stdlib/array-dtype';\nimport format from '@stdlib/string-format';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns a new array containing every element from an input array, except for the element at a specified index.\n*\n* @param {Collection} x - input array\n* @param {integer} index - element index\n* @throws {RangeError} second argument must not exceed array bounds\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var v = without( x, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* v = without( x, 1 );\n* // returns [ 1, 3, 4 ]\n*\n* v = without( x, -2 );\n* // returns [ 1, 2, 4 ]\n*/\nfunction without( x, index ) {\n\tvar out;\n\n\tindex = normalizeIndex( index, x.length-1 );\n\tif ( index < 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%d`.', index ) );\n\t}\n\tout = zeros( x.length-1, dtype( x ) || 'generic' );\n\tassign( x, index, out, 1, 0 );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default without;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a new array containing every element from an input array, except for the element at a specified index.\n*\n* @module @stdlib/array-base-without\n*\n* @example\n* import without from '@stdlib/array-base-without';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var v = without( x, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* v = without( x, -2 );\n* // returns [ 1, 2, 4 ]\n*\n* @example\n* import without from '@stdlib/array-base-without';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* var arr = without.assign( x, 0, out, 1, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binarynd( gdot, [ x, y, z ], views, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binarynd( fcn, arrays, views, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar len;\n\tvar arr;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar z;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tset( zbuf, io[2], fcn( v, opts ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binarynd( gdot, [ x, y, z ], views, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binarynd( fcn, arrays, views, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar len;\n\tvar arr;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar z;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tzbuf[ io[2] ] = fcn( v, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport anyIsEntryIn from '@stdlib/array-base-any-is-entry-in';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedaccessorbinary2d from './2d_blocked_accessors.js';\nimport blockedaccessorbinary3d from './3d_blocked_accessors.js';\nimport blockedaccessorbinary4d from './4d_blocked_accessors.js';\nimport blockedaccessorbinary5d from './5d_blocked_accessors.js';\nimport blockedaccessorbinary6d from './6d_blocked_accessors.js';\nimport blockedaccessorbinary7d from './7d_blocked_accessors.js';\nimport blockedaccessorbinary8d from './8d_blocked_accessors.js';\nimport blockedaccessorbinary9d from './9d_blocked_accessors.js';\nimport blockedaccessorbinary10d from './10d_blocked_accessors.js';\nimport blockedbinary2d from './2d_blocked.js';\nimport blockedbinary3d from './3d_blocked.js';\nimport blockedbinary4d from './4d_blocked.js';\nimport blockedbinary5d from './5d_blocked.js';\nimport blockedbinary6d from './6d_blocked.js';\nimport blockedbinary7d from './7d_blocked.js';\nimport blockedbinary8d from './8d_blocked.js';\nimport blockedbinary9d from './9d_blocked.js';\nimport blockedbinary10d from './10d_blocked.js';\nimport accessorbinary0d from './0d_accessors.js';\nimport accessorbinary1d from './1d_accessors.js';\nimport accessorbinary2d from './2d_accessors.js';\nimport accessorbinary3d from './3d_accessors.js';\nimport accessorbinary4d from './4d_accessors.js';\nimport accessorbinary5d from './5d_accessors.js';\nimport accessorbinary6d from './6d_accessors.js';\nimport accessorbinary7d from './7d_accessors.js';\nimport accessorbinary8d from './8d_accessors.js';\nimport accessorbinary9d from './9d_accessors.js';\nimport accessorbinary10d from './10d_accessors.js';\nimport accessorbinarynd from './nd_accessors.js';\nimport binary0d from './0d.js';\nimport binary1d from './1d.js';\nimport binary2d from './2d.js';\nimport binary3d from './3d.js';\nimport binary4d from './4d.js';\nimport binary5d from './5d.js';\nimport binary6d from './6d.js';\nimport binary7d from './7d.js';\nimport binary8d from './8d.js';\nimport binary9d from './9d.js';\nimport binary10d from './10d.js';\nimport binarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar BINARY = [\n\tbinary0d,\n\tbinary1d,\n\tbinary2d,\n\tbinary3d,\n\tbinary4d,\n\tbinary5d,\n\tbinary6d,\n\tbinary7d,\n\tbinary8d,\n\tbinary9d,\n\tbinary10d\n];\nvar ACCESSOR_BINARY = [\n\taccessorbinary0d,\n\taccessorbinary1d,\n\taccessorbinary2d,\n\taccessorbinary3d,\n\taccessorbinary4d,\n\taccessorbinary5d,\n\taccessorbinary6d,\n\taccessorbinary7d,\n\taccessorbinary8d,\n\taccessorbinary9d,\n\taccessorbinary10d\n];\nvar BLOCKED_BINARY = [\n\tblockedbinary2d, // 0\n\tblockedbinary3d,\n\tblockedbinary4d,\n\tblockedbinary5d,\n\tblockedbinary6d,\n\tblockedbinary7d,\n\tblockedbinary8d,\n\tblockedbinary9d,\n\tblockedbinary10d // 8\n];\nvar BLOCKED_ACCESSOR_BINARY = [\n\tblockedaccessorbinary2d, // 0\n\tblockedaccessorbinary3d,\n\tblockedaccessorbinary4d,\n\tblockedaccessorbinary5d,\n\tblockedaccessorbinary6d,\n\tblockedaccessorbinary7d,\n\tblockedaccessorbinary8d,\n\tblockedaccessorbinary9d,\n\tblockedaccessorbinary10d // 8\n];\nvar MAX_DIMS = BINARY.length - 1;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if at least one ndarray data buffer implements the accessor protocol.\n*\n* @private\n* @param {ndarrayLike} x - first ndarray\n* @param {ndarrayLike} y - second ndarray\n* @param {ndarrayLike} z - third ndarray\n* @returns {boolean} boolean indicating whether an ndarray data buffer implements the accessor protocol\n*/\nfunction hasAccessors( x, y, z ) {\n\treturn anyIsEntryIn( [ x, y, z ], 'accessorProtocol', true );\n}\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [ 0, 1, 2, 3 ] );\n*\n* var v = z.data;\n* // returns [ 650.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 1.0, 4.0 ], [ 9.0, 16.0 ] ], [ [ 25.0, 36.0 ], [ 49.0, 64.0 ] ], [ [ 81.0, 100.0 ], [ 121.0, 144.0 ] ] ]\n*/\nfunction binaryReduceStrided1d( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\tvar strategyX;\n\tvar strategyY;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar tmpx;\n\tvar tmpy;\n\tvar arr;\n\tvar len;\n\tvar shx;\n\tvar shy;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ioz;\n\tvar scx;\n\tvar scy;\n\tvar slx;\n\tvar sly;\n\tvar sz;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\tz = arr[ 2 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\n\t// Verify that both input arrays have the same shape:\n\tif ( shx.length !== shy.length ) {\n\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.', shx.length, shy.length ) );\n\t}\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shx[ i ] !== shy[ i ] ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same shape. First array shape: [%s]. Second array shape: [%s].', join( shx, ',' ), join( shy, ',' ) ) );\n\t\t}\n\t}\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tif ( z.shape.length !== K ) {\n\t\tthrow new Error( format( 'invalid argument. Output array must have the same number of non-reduced dimensions as input arrays. Input array shape: [%s]. Number of non-reduced dimensions: %d. Output array shape: [%s].', join( shx, ',' ), K, join( z.shape, ',' ) ) );\n\t}\n\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmpx = takeIndexed2( shx, x.strides, ldims );\n\ttmpy = takeIndexed2( shy, y.strides, ldims );\n\tshl = tmpx[ 0 ]; // tmpx[ 0 ] == tmpy[ 0 ]\n\tslx = tmpx[ 1 ];\n\tsly = tmpy[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmpx = takeIndexed2( shx, x.strides, d );\n\ttmpy = takeIndexed2( shy, y.strides, d );\n\tshc = tmpx[ 0 ]; // tmpx[ 0 ] == tmpy[ 0 ]\n\tscx = tmpx[ 1 ];\n\tscy = tmpy[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 2; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': scx,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t},\n\t\t{\n\t\t\t'dtype': y.dtype,\n\t\t\t'data': y.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': scy,\n\t\t\t'offset': y.offset,\n\t\t\t'order': y.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input arrays prior to performing a reduction:\n\tstrategyX = reshapeStrategy( views[ 0 ] );\n\tstrategyY = reshapeStrategy( views[ 1 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ K ]( fcn, arr, strategyX, strategyY, opts );\n\t\t}\n\t\treturn BINARY[ K ]( fcn, arr, strategyX, strategyY, opts );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ K ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BINARY[ K ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\tsz = z.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tz.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tslx = [ slx[i] ];\n\t\tsly = [ sly[i] ];\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ 1 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BINARY[ 1 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\tiox = iterationOrder( slx ); // +/-1\n\tioy = iterationOrder( sly ); // +/-1\n\tioz = iterationOrder( sz ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tordx = strides2order( slx );\n\tordy = strides2order( sly );\n\tordz = strides2order( sz );\n\tif ( iox !== 0 && ioy !== 0 && ioz !== 0 && ordx === ordz && ordy === ordz && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ K ]( fcn, arr, views, slx, sly, ordx === 1, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BINARY[ K ]( fcn, arr, views, slx, sly, ordx === 1, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn BLOCKED_ACCESSOR_BINARY[ K-2 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_BINARY[ K-2 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( hasAccessors( x, y, z ) ) {\n\t\treturn accessorbinarynd( fcn, arr, views, strategyX, strategyY, opts );\n\t}\n\tbinarynd( fcn, arr, views, strategyX, strategyY, opts );\n}\n\n\n// EXPORTS //\n\nexport default binaryReduceStrided1d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var zbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [ 2, 2 ];\n* var zsh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary0d( gdot, [ x, y, z ], strategy, strategy, {} );\n*\n* var v = z.data;\n* // returns [ 30.0 ]\n*/\nfunction binary0d( fcn, arrays, strategyX, strategyY, opts ) {\n\tarrays[ 0 ] = strategyX( arrays[ 0 ] );\n\tarrays[ 1 ] = strategyY( arrays[ 1 ] );\n\tarrays[ 2 ].data[ arrays[ 2 ].offset ] = fcn( without( arrays, 2 ), opts );\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary1d( gdot, [ x, y, z ], views, [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binary1d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [\n\t\tstridesX[0],\n\t\tstridesY[0]\n\t];\n\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tzbuf[ iv[2] ] = fcn( v, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction binary2d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[1],\n\t\t\tstridesY[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] ),\n\t\t\tstridesY[0] - ( S0*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray 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( views[ 0 ] );\n\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction binary3d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[2],\n\t\t\tstridesY[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] ),\n\t\t\tstridesY[1] - ( S0*stridesY[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] ),\n\t\t\tstridesY[0] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary3d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction binary4d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[3],\n\t\t\tstridesY[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] ),\n\t\t\tstridesY[2] - ( S0*stridesY[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] ),\n\t\t\tstridesY[1] - ( S1*stridesY[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] ),\n\t\t\tstridesY[0] - ( S2*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary4d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction binary5d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[4],\n\t\t\tstridesY[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] ),\n\t\t\tstridesY[3] - ( S0*stridesY[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] ),\n\t\t\tstridesY[2] - ( S1*stridesY[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] ),\n\t\t\tstridesY[1] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] ),\n\t\t\tstridesY[0] - ( S3*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction binary6d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[5],\n\t\t\tstridesY[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] ),\n\t\t\tstridesY[4] - ( S0*stridesY[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] ),\n\t\t\tstridesY[3] - ( S1*stridesY[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] ),\n\t\t\tstridesY[2] - ( S2*stridesY[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] ),\n\t\t\tstridesY[1] - ( S3*stridesY[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] ),\n\t\t\tstridesY[0] - ( S4*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction binary7d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[6],\n\t\t\tstridesY[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] ),\n\t\t\tstridesY[5] - ( S0*stridesY[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] ),\n\t\t\tstridesY[4] - ( S1*stridesY[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] ),\n\t\t\tstridesY[3] - ( S2*stridesY[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] ),\n\t\t\tstridesY[2] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] ),\n\t\t\tstridesY[1] - ( S4*stridesY[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] ),\n\t\t\tstridesY[0] - ( S5*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary7d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction binary8d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[7],\n\t\t\tstridesY[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] ),\n\t\t\tstridesY[6] - ( S0*stridesY[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] ),\n\t\t\tstridesY[5] - ( S1*stridesY[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] ),\n\t\t\tstridesY[4] - ( S2*stridesY[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] ),\n\t\t\tstridesY[3] - ( S3*stridesY[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] ),\n\t\t\tstridesY[2] - ( S4*stridesY[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] ),\n\t\t\tstridesY[1] - ( S5*stridesY[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] ),\n\t\t\tstridesY[0] - ( S6*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary8d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction binary9d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[8],\n\t\t\tstridesY[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] ),\n\t\t\tstridesY[7] - ( S0*stridesY[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] ),\n\t\t\tstridesY[6] - ( S1*stridesY[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] ),\n\t\t\tstridesY[5] - ( S2*stridesY[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] ),\n\t\t\tstridesY[4] - ( S3*stridesY[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] ),\n\t\t\tstridesY[3] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] ),\n\t\t\tstridesY[2] - ( S5*stridesY[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] ),\n\t\t\tstridesY[1] - ( S6*stridesY[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] ),\n\t\t\tstridesY[0] - ( S7*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t]; // offset increment for innermost loop\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction binary10d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[9],\n\t\t\tstridesY[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] ),\n\t\t\tstridesY[8] - ( S0*stridesY[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] ),\n\t\t\tstridesY[7] - ( S1*stridesY[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] ),\n\t\t\tstridesY[6] - ( S2*stridesY[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] ),\n\t\t\tstridesY[5] - ( S3*stridesY[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] ),\n\t\t\tstridesY[4] - ( S4*stridesY[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] ),\n\t\t\tstridesY[3] - ( S5*stridesY[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] ),\n\t\t\tstridesY[2] - ( S6*stridesY[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] ),\n\t\t\tstridesY[1] - ( S7*stridesY[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] ),\n\t\t\tstridesY[0] - ( S8*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] ),\n\t\t\tstridesY[9] - ( S8*stridesY[8] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary10d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [ 2, 2 ];\n* var zsh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary0d( gdot, [ x, y, z ], strategy, strategy, {} );\n*\n* var v = z.data.get( 0 );\n* // returns 30.0\n*/\nfunction binary0d( fcn, arrays, strategyX, strategyY, opts ) {\n\tvar z = arrays[ 2 ];\n\tarrays[ 0 ] = strategyX( arrays[ 0 ] );\n\tarrays[ 1 ] = strategyY( arrays[ 1 ] );\n\tz.accessors[ 1 ]( z.data, z.offset, fcn( without( arrays, 2 ), opts ) );\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary1d( gdot, [ x, y, z ], views, [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binary1d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [\n\t\tstridesX[0],\n\t\tstridesY[0]\n\t];\n\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tset( zbuf, iv[2], fcn( v, opts ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction binary2d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[1],\n\t\t\tstridesY[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] ),\n\t\t\tstridesY[0] - ( S0*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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( views[ 0 ] );\n\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction binary3d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[2],\n\t\t\tstridesY[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] ),\n\t\t\tstridesY[1] - ( S0*stridesY[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] ),\n\t\t\tstridesY[0] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary3d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction binary4d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[3],\n\t\t\tstridesY[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] ),\n\t\t\tstridesY[2] - ( S0*stridesY[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] ),\n\t\t\tstridesY[1] - ( S1*stridesY[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] ),\n\t\t\tstridesY[0] - ( S2*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary4d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction binary5d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[4],\n\t\t\tstridesY[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] ),\n\t\t\tstridesY[3] - ( S0*stridesY[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] ),\n\t\t\tstridesY[2] - ( S1*stridesY[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] ),\n\t\t\tstridesY[1] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] ),\n\t\t\tstridesY[0] - ( S3*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction binary6d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[5],\n\t\t\tstridesY[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] ),\n\t\t\tstridesY[4] - ( S0*stridesY[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] ),\n\t\t\tstridesY[3] - ( S1*stridesY[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] ),\n\t\t\tstridesY[2] - ( S2*stridesY[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] ),\n\t\t\tstridesY[1] - ( S3*stridesY[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] ),\n\t\t\tstridesY[0] - ( S4*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction binary7d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[6],\n\t\t\tstridesY[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] ),\n\t\t\tstridesY[5] - ( S0*stridesY[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] ),\n\t\t\tstridesY[4] - ( S1*stridesY[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] ),\n\t\t\tstridesY[3] - ( S2*stridesY[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] ),\n\t\t\tstridesY[2] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] ),\n\t\t\tstridesY[1] - ( S4*stridesY[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] ),\n\t\t\tstridesY[0] - ( S5*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary7d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction binary8d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[7],\n\t\t\tstridesY[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] ),\n\t\t\tstridesY[6] - ( S0*stridesY[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] ),\n\t\t\tstridesY[5] - ( S1*stridesY[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] ),\n\t\t\tstridesY[4] - ( S2*stridesY[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] ),\n\t\t\tstridesY[3] - ( S3*stridesY[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] ),\n\t\t\tstridesY[2] - ( S4*stridesY[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] ),\n\t\t\tstridesY[1] - ( S5*stridesY[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] ),\n\t\t\tstridesY[0] - ( S6*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary8d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction binary9d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[8],\n\t\t\tstridesY[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] ),\n\t\t\tstridesY[7] - ( S0*stridesY[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] ),\n\t\t\tstridesY[6] - ( S1*stridesY[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] ),\n\t\t\tstridesY[5] - ( S2*stridesY[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] ),\n\t\t\tstridesY[4] - ( S3*stridesY[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] ),\n\t\t\tstridesY[3] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] ),\n\t\t\tstridesY[2] - ( S5*stridesY[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] ),\n\t\t\tstridesY[1] - ( S6*stridesY[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] ),\n\t\t\tstridesY[0] - ( S7*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction binary10d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[9],\n\t\t\tstridesY[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] ),\n\t\t\tstridesY[8] - ( S0*stridesY[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] ),\n\t\t\tstridesY[7] - ( S1*stridesY[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] ),\n\t\t\tstridesY[6] - ( S2*stridesY[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] ),\n\t\t\tstridesY[5] - ( S3*stridesY[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] ),\n\t\t\tstridesY[4] - ( S4*stridesY[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] ),\n\t\t\tstridesY[3] - ( S5*stridesY[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] ),\n\t\t\tstridesY[2] - ( S6*stridesY[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] ),\n\t\t\tstridesY[1] - ( S7*stridesY[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] ),\n\t\t\tstridesY[0] - ( S8*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] ),\n\t\t\tstridesY[9] - ( S8*stridesY[8] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction blockedbinary2d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction blockedbinary3d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary3d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction blockedbinary4d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary4d;\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-statements, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction blockedbinary5d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary5d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction blockedbinary6d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary6d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction blockedbinary7d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary8d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary9d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary10d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction blockedbinary2d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction blockedbinary3d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary3d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction blockedbinary4d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary4d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction blockedbinary5d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary5d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction blockedbinary6d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary6d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction blockedbinary7d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary8d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary9d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary10d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary10d;\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* 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 three ndarray-like objects, which are assumed to be two input ndarrays and one output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 3; 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\nexport default initializeViews;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a value is an empty collection.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an empty collection\n*\n* @example\n* var bool = isEmptyCollection( [] );\n* // returns true\n*\n* @example\n* var bool = isEmptyCollection( { 'length': 0 } );\n* // returns true\n*\n* @example\n* var bool = isEmptyCollection( [ 1, 2, 3 ] );\n* // returns false\n*\n* @example\n* var bool = isEmptyCollection( {} );\n* // returns false\n*/\nfunction isEmptyCollection( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.length === 0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isEmptyCollection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-array-max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is array-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is array-like\n*\n* @example\n* var bool = isArrayLike( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLike( { 'length': 10 } );\n* // returns true\n*/\nfunction isArrayLike( value ) {\n\treturn (\n\t\tvalue !== void 0 &&\n\t\tvalue !== null &&\n\t\ttypeof value !== 'function' &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLike from '@stdlib/assert-is-array-like';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array-like object passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array-like object function\n*\n* @example\n* import isOdd from '@stdlib/assert-is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arraylikefcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arraylikefcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array-like object passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array-like object for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArrayLike( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arraylikefcn;\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* Perform a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-binary-reduce-strided1d\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n* import binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n* import binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var dot = binaryReduceStrided1d.factory( gdot );\n* // returns \n*\n* // Perform a reduction:\n* dot( [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var dot = factory( gdot );\n* // returns \n*\n* // Perform a reduction:\n* dot( [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array-like object containing only functions.\n*\n* @module @stdlib/assert-is-function-array\n*\n* @example\n* import isFunctionArray from '@stdlib/assert-is-function-array';\n*\n* function beep() {}\n*\n* function boop() {}\n*\n* var bool = isFunctionArray( [ beep, boop ] );\n* // returns true\n*\n* bool = isFunctionArray( [ {}, beep ] );\n* // returns false\n*\n* bool = isFunctionArray( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport arrayfun from '@stdlib/assert-tools-array-like-function';\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\nvar isFunctionArray = arrayfun( isFunction );\n\n\n// EXPORTS //\n\nexport default isFunctionArray;\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\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\n\n\n// MAIN //\n\n/**\n* Resolves a list of data type enumeration constants.\n*\n* ## Notes\n*\n* - If the function is unable to resolve an enumeration constant for a provided data type, the corresponding element in the returned array will be `null`.\n*\n* @param {Array} dtypes - list of data types\n* @returns {Array} results\n*\n* @example\n* var out = dtypes2enums( [ 'float32', 'float64' ] );\n* // returns [...]\n*\n* @example\n* var out = dtypes2enums( [ 'foo', 'bar' ] );\n* // returns [ null, null ]\n*/\nfunction dtypes2enums( dtypes ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tout.push( resolveEnum( dtypes[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2enums;\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\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// MAIN //\n\n/**\n* Resolves a list of data type strings.\n*\n* ## Notes\n*\n* - If the function is unable to resolve a data type string for a provided data type, the corresponding element in the returned array will be `null`.\n*\n* @param {Array} dtypes - list of data types\n* @returns {Array} results\n*\n* @example\n* var out = dtypes2strings( [ 'float32', 'float64' ] );\n* // returns [...]\n*\n* @example\n* var out = dtypes2strings( [ 'foo', 'bar' ] );\n* // returns [ null, null ]\n*/\nfunction dtypes2strings( dtypes ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tout.push( resolveStr( dtypes[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2strings;\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\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport isSortedAscending from '@stdlib/array-base-assert-is-sorted-ascending';\nimport toNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport ones from '@stdlib/array-base-ones';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Expands the shape of an array to a specified dimensionality by spreading its dimensions to specified dimension indices and inserting dimensions of size one for the remaining dimensions.\n*\n* ## Notes\n*\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. If provided a negative dimension index, the position at which to place a respective dimension is computed as `ndims + index`.\n* - Provided dimension indices must resolve to normalized dimension indices arranged in ascending order.\n*\n* @param {NonNegativeInteger} ndims - number of dimensions in the output array\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices at which to spread array dimensions\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} first argument must be greater than or equal to the number of dimensions in the input array\n* @throws {RangeError} must provide the same number of dimension indices as the number of dimensions in the input array\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @throws {Error} dimension indices must resolve to normalized dimension indices arranged in ascending order\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = spreadDimensions( 5, x, [ 1, 3 ], false );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 1, 2, 1, 2, 1 ]\n*\n* var v = y.get( 0, 0, 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 0, 1, 0 );\n* // returns 2\n*\n* v = y.get( 0, 1, 0, 0, 0 );\n* // returns 3\n*\n* v = y.get( 0, 1, 0, 1, 0 );\n* // returns 4\n*/\nfunction spreadDimensions( ndims, x, dims, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar isrm;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar S;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\tisrm = isRowMajor( ord );\n\n\tif ( sh.length > ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. First argument must be greater than or equal to the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `%d`.', sh.length, ndims ) );\n\t}\n\t// Resolve dimension indices...\n\td = toNormalizedIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', ndims, ndims-1, dims.join( ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', dims.join( ', ' ) ) );\n\t}\n\tif ( d.length !== sh.length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Must provide the same number of dimension indices as the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `[%s]`.', sh.length, dims.join( ', ' ) ) );\n\t}\n\tif ( d.length && !isSortedAscending( d ) ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide dimension indices which resolve to nonnegative indices arranged in ascending order. Value: `[%s]`.', dims.join( ', ' ) ) );\n\t}\n\t// When provided a zero-dimensional array, every expanded dimension is a singleton dimension having zero stride...\n\tif ( sh.length === 0 ) {\n\t\tshape = ones( ndims );\n\t\tstrides = zeros( ndims );\n\t} else {\n\t\t// Interweave singleton dimensions...\n\t\tstrides = [];\n\t\tshape = [];\n\t\tj = 0;\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( i === d[ j ] ) {\n\t\t\t\t// If we have a match, we can move on to inserting singleton dimensions before the next dimension index...\n\t\t\t\tS = sh[ j ];\n\t\t\t\ts = st[ j ];\n\t\t\t\tj += 1;\n\t\t\t} else if ( j === sh.length ) { // append\n\t\t\t\t// We should only get here after exhausting all the dimension indices...\n\t\t\t\tS = 1;\n\t\t\t\ts = st[ j-1 ];\n\t\t\t\tif ( !isrm ) {\n\t\t\t\t\ts *= sh[ j-1 ];\n\t\t\t\t}\n\t\t\t} else { // insert before\n\t\t\t\t// We have yet to reach the next specified dimension index so we insert a singleton dimension...\n\t\t\t\tS = 1;\n\t\t\t\ts = st[ j ];\n\t\t\t\tif ( isrm ) {\n\t\t\t\t\ts *= sh[ j ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tshape.push( S );\n\t\t\tstrides.push( s );\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default spreadDimensions;\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\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport getter from '@stdlib/array-base-getter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Tests if an array is sorted in ascending order.\n*\n* @param {Collection} x - input array\n* @returns {boolean} boolean indicating if an array is sorted in ascending order\n*\n* @example\n* var out = isSortedAscending( [ 1, 2, 3 ] );\n* // returns true\n*\n* @example\n* var out = isSortedAscending( [ 3, 2, 1 ] );\n* // returns false\n*\n* @example\n* var out = isSortedAscending( [ 3, 3, 3 ] );\n* // returns true\n*\n* @example\n* var out = isSortedAscending( [ 3 ] );\n* // returns true\n*\n* @example\n* var out = isSortedAscending( [] );\n* // returns false\n*\n* @example\n* var out = isSortedAscending( [ 1, 3, 2 ] );\n* // returns false\n*/\nfunction isSortedAscending( x ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar v1;\n\tvar v2;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Check for an empty array:\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Loop over the elements...\n\tv1 = get( x, 0 );\n\tfor ( i = 1; i < len; i++ ) {\n\t\tv2 = get( x, i );\n\t\tif ( v1 > v2 ) {\n\t\t\treturn false;\n\t\t}\n\t\tv1 = v2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isSortedAscending;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport numel from '@stdlib/ndarray-base-numel';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = empty( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = getShape( arr );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction empty( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar dt;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tdt = resolveStr( dtype );\n\tif ( dt === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dt );\n\t}\n\t// FIXME: add support for struct dtypes. Will need to do something similar to `array/empty` in so far as allocating an uninitialized array buffer, performing byte alignment, and creating a StructArray view atop the buffer.\n\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array-like object containing only nonnegative integers.\n*\n* @module @stdlib/assert-is-nonnegative-integer-array\n*\n* @example\n* import isNonNegativeIntegerArray from '@stdlib/assert-is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 3.0, new Number(3.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isNonNegativeIntegerArray } from '@stdlib/assert-is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, new Number(1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isNonNegativeIntegerArray } from '@stdlib/assert-is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ new Number(3.0), new Number(1.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isNonNegativeInteger.isPrimitive );\nvar isObjectArray = arrayfun( isNonNegativeInteger.isObject );\n\n\n// MAIN //\n\nvar isNonNegativeIntegerArray = arrayfun( isNonNegativeInteger );\nsetReadOnly( isNonNegativeIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isNonNegativeIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isNonNegativeIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array-like object containing only integers.\n*\n* @module @stdlib/assert-is-integer-array\n*\n* @example\n* import isIntegerArray from '@stdlib/assert-is-integer-array';\n*\n* var bool = isIntegerArray( [ -3.0, new Number(0.0), 2.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\n*\n* var bool = isIntegerArray( [ -1.0, 10.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 5.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, new Number(-1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isIntegerArray } from '@stdlib/assert-is-integer-array';\n*\n* var bool = isIntegerArray( [ new Number(1.0), new Number(3.0) ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 3.0 ] );\n* // returns false\n*\n* bool = isIntegerArray( [ 3.0, new Number(-1.0) ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isInteger from '@stdlib/assert-is-integer';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isInteger.isPrimitive );\nvar isObjectArray = arrayfun( isInteger.isObject );\n\n\n// MAIN //\n\nvar isIntegerArray = arrayfun( isInteger );\nsetReadOnly( isIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests that a value is a valid constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {(Error|null)} error object or null\n*\n* @example\n* var ctor = function ctor() {};\n*\n* var err = validate( ctor );\n* // returns null\n*\n* err = validate( null );\n* // returns \n*/\nfunction validate( value ) {\n\tvar type = typeof value;\n\tif (\n\t\tvalue === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\treturn new TypeError( format( 'invalid argument. A provided constructor must be either an object (except null) or a function. Value: `%s`.', value ) );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// EXPORTS //\n\nexport default Object.create;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Dummy constructor.\n*\n* @private\n*/\nfunction Ctor() {\n\t// Empty...\n}\n\n\n// MAIN //\n\n/**\n* An `Object.create` shim for older JavaScript engines.\n*\n* @private\n* @param {Object} proto - prototype\n* @returns {Object} created object\n*\n* @example\n* var obj = createObject( Object.prototype );\n* // returns {}\n*/\nfunction createObject( proto ) {\n\tCtor.prototype = proto;\n\treturn new Ctor();\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar createObject;\nif ( typeof builtin === 'function' ) {\n\tcreateObject = builtin;\n} else {\n\tcreateObject = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Restricts an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 5\n*/\nfunction clampIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\treturn 0;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default clampIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Wraps an index on the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 13, 10 );\n* // returns 2\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 6\n*/\nfunction wrapIndex( idx, max ) {\n\tvar mp1 = max + 1;\n\tif ( idx < 0 ) {\n\t\tidx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1\n\t\tif ( idx < 0 ) {\n\t\t\tidx %= mp1;\n\t\t\tif ( idx !== 0 ) {\n\t\t\t\tidx += mp1;\n\t\t\t}\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\tidx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)\n\t\tif ( idx > max ) {\n\t\t\tidx %= mp1;\n\t\t}\n\t\treturn idx;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default wrapIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport clampIndex from '@stdlib/ndarray-base-clamp-index';\nimport wrapIndex from '@stdlib/ndarray-base-wrap-index';\nimport normalize from '@stdlib/ndarray-base-normalize-index';\nimport isIndexMode from '@stdlib/ndarray-base-assert-is-index-mode';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'wrap': wrapIndex,\n\t'clamp': clampIndex,\n\t'normalize': normalizeIndex,\n\t'throw': throwIfOutOfBounds\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an index if within bounds and throw an error otherwise.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = throwIfOutOfBounds( 2, 9 );\n* // returns 2\n*\n* idx = throwIfOutOfBounds( 10, 9 );\n* // throws \n*\n* idx = throwIfOutOfBounds( -1, 9 );\n* // throws \n*/\nfunction throwIfOutOfBounds( idx, max ) {\n\tif ( idx < 0 || idx > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn idx;\n}\n\n/**\n* Normalizes an index before performing a strict bounds check.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( 1, 10 );\n* // returns 1\n*\n* idx = normalizeIndex( -4, 10 );\n* // returns 7\n*\n* idx = normalizeIndex( -100, 10 );\n* // throws \n*/\nfunction normalizeIndex( idx, max ) {\n\tvar index = normalize( idx, max );\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// MAIN //\n\n/**\n* Returns a function for returning an index according to a provided index mode.\n*\n* @param {string} mode - specifies how to handle an out-of-bounds index\n* @throws {TypeError} first argument must be a recognized index mode\n* @returns {Function} function for returning an index\n*\n* @example\n* var ind = factory( 'clamp' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 9\n*\n* idx = ind( -1, 9 );\n* // returns 0\n*\n* @example\n* var ind = factory( 'wrap' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 0\n*\n* idx = ind( -1, 9 );\n* // returns 9\n*\n* @example\n* var ind = factory( 'throw' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // throws \n*\n* idx = ind( -1, 9 );\n* // throws \n*\n* @example\n* var ind = factory( 'normalize' );\n*\n* var idx = ind( 1, 10 );\n* // returns 1\n*\n* idx = ind( -4, 10 );\n* // returns 7\n*\n* idx = ind( -100, 10 );\n* // throws \n*/\nfunction factory( mode ) {\n\tif ( !isIndexMode( mode ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized index mode. Value: `%s`.', mode ) );\n\t}\n\treturn TABLE[ mode ];\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport clampIndex from '@stdlib/ndarray-base-clamp-index';\nimport wrapIndex from '@stdlib/ndarray-base-wrap-index';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an index given an index mode.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @param {string} mode - specifies how to handle an index outside the interval `[0,max]`\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = ind( 2, 9, 'clamp' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'clamp' );\n* // returns 9\n*\n* idx = ind( -1, 9, 'clamp' );\n* // returns 0\n*\n* @example\n* var idx = ind( 2, 9, 'wrap' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'wrap' );\n* // returns 0\n*\n* idx = ind( -1, 9, 'wrap' );\n* // returns 9\n*\n* @example\n* var idx = ind( 2, 9, 'throw' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'throw' );\n* // throws \n*\n* idx = ind( -1, 9, 'throw' );\n* // throws \n*\n* @example\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*/\nfunction ind( idx, max, mode ) {\n\tvar index;\n\tif ( mode === 'clamp' ) {\n\t\treturn clampIndex( idx, max );\n\t}\n\tif ( mode === 'wrap' ) {\n\t\treturn wrapIndex( idx, max );\n\t}\n\tindex = idx;\n\tif ( mode === 'normalize' ) {\n\t\tindex = normalizeIndex( index, max );\n\t}\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// EXPORTS //\n\nexport default ind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an index given an index mode.\n*\n* @module @stdlib/ndarray-base-ind\n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( -1, 10, 'wrap' );\n* // returns 10\n*\n* idx = ind( 14, 10, 'wrap' );\n* // returns 3\n*\n* idx = ind( 6, 10, 'wrap' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( -1, 10, 'clamp' );\n* // returns 0\n*\n* idx = ind( 14, 10, 'clamp' );\n* // returns 10\n*\n* idx = ind( 6, 10, 'clamp' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( 1, 10, 'throw' );\n* // returns 1\n*\n* idx = ind( 14, 10, 'throw' );\n* // throws \n*\n* idx = ind( -1, 10, 'throw' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var fcn = ind.factory( 'clamp' );\n*\n* var idx = fcn( -1, 10 );\n* // returns 0\n*\n* idx = fcn( 14, 10 );\n* // returns 10\n*\n* idx = fcn( 6, 10 );\n* // returns 6\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport parent from '@stdlib/ndarray-base-ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iget;\n\n\n// MAIN //\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\treturn base.call( this, idx );\n\t}\n\treturn base.call( this );\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// METHODS //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport parent from '@stdlib/ndarray-base-ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iset;\n\n\n// MAIN //\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\tbase.call( this, idx, v );\n\t} else {\n\t\tbase.call( this, idx );\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies the contents of array-like value to a new array.\n*\n* @private\n* @param {ArrayLike} arr - input array\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0 ];\n*\n* var out = copy( arr, arr.length );\n* // returns [ 1.0, 2.0, 3.0 ]\n*\n* var bool = ( arr === out );\n* // returns false\n*/\nfunction copy( arr, len ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport isCollection from '@stdlib/assert-is-collection';\nimport { primitives as isNonNegativeIntegerArray } from '@stdlib/assert-is-nonnegative-integer-array';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isFunction from '@stdlib/assert-is-function';\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isBufferLengthCompatible from '@stdlib/ndarray-base-assert-is-buffer-length-compatible';\nimport numel from '@stdlib/ndarray-base-numel';\nimport parent from '@stdlib/ndarray-base-ctor'; // eslint-disable-line stdlib/no-redeclare\nimport defaults from '@stdlib/ndarray-defaults';\nimport inherit from '@stdlib/utils-inherit';\nimport format from '@stdlib/string-format';\nimport iget from './iget.js';\nimport iset from './iset.js';\nimport get from './get.js';\nimport set from './set.js';\nimport copy from './copy_array.js';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\n/*\n* See the following references:\n*\n* - https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept\n* - https://bugs.webkit.org/show_bug.cgi?id=80797\n* - https://github.com/numpy/numpy/issues/5744\n*\n* Note that the maximum number of function arguments can vary from engine to engine. Here, we choose something of a lowest common denominator which may **not** be valid everywhere.\n*/\nvar MAX_DIMS = 32767|0;\n\nvar INDEX_MODE = defaults.get( 'index_mode' );\nvar READONLY = false;\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar ndims;\n\tvar opts;\n\tvar err;\n\tvar sh;\n\tvar st;\n\n\tif ( !(this instanceof ndarray) ) {\n\t\tif ( arguments.length < 7 ) {\n\t\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order, options ); // eslint-disable-line max-len\n\t}\n\tif ( !isDataType( dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a supported ndarray data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( !isCollection( buffer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object, typed-array-like, or a Buffer. Value: `%s`.', buffer ) );\n\t} else if ( buffer.get && buffer.set && ( !isFunction( buffer.get ) || !isFunction( buffer.set ) ) ) { // eslint-disable-line max-len\n\t\tthrow new TypeError( format( 'invalid argument. Second argument `get` and `set` properties must be functions. Value: `%s`.', buffer ) );\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tif ( !isCollection( shape) || shape.length > 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t}\n\tndims = shape.length;\n\tif ( ndims > MAX_DIMS ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.', MAX_DIMS, ndims ) );\n\t}\n\tif ( !isIntegerArray( strides ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.', strides ) );\n\t}\n\tif ( ndims > 0 ) {\n\t\tif ( strides.length !== ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.', ndims, strides.length ) );\n\t\t}\n\t} else if ( strides.length !== 1 ) {\n\t\tthrow new RangeError( 'invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.' );\n\t} else if ( strides[ 0 ] !== 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.', strides[ 0 ] ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( !isOrder( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a supported order. Value: `%s`.', order ) );\n\t}\n\tif ( ndims > 0 && !isBufferLengthCompatible( buffer.length, shape, strides, offset ) && numel( shape ) > 0 ) { // eslint-disable-line max-len\n\t\tthrow new Error( 'invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.' );\n\t}\n\topts = {};\n\topts.mode = INDEX_MODE;\n\topts.readonly = READONLY;\n\tif ( arguments.length > 6 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tthis._mode = opts.mode;\n\tif ( opts.submode === void 0 ) {\n\t\topts.submode = [ this._mode ];\n\t}\n\tthis._submode = opts.submode;\n\n\t// Copy `shape` and `strides` to prevent external mutation:\n\tsh = copy( shape, ndims );\n\tst = copy( strides, ndims || 1 );\n\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, sh, st, offset, order );\n\tthis._flags.READONLY = opts.readonly;\n\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n// Inherit from the parent constructor:\ninherit( ndarray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', get );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', iget );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', set );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', iset );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isIndexMode from '@stdlib/ndarray-base-assert-is-index-mode';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {string} [options.mode] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode] - specifies how to handle subscripts which exceed array dimensions\n* @param {boolean} [options.readonly] - boolean indicating whether an array should be read-only\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'clamp',\n* 'submode': [ 'throw', 'wrap', 'clamp' ]\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\topts.submode = options.submode;\n\t\tif ( !isArrayLikeObject( opts.submode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode ) );\n\t\t}\n\t\tif ( opts.submode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode.join( ',' ) ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.submode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.submode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. Each submode must be a recognized mode. Option: `%s`.', opts.submode[ i ] ) );\n\t\t\t}\n\t\t}\n\t\topts.submode = opts.submode.slice();\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\topts.readonly = options.readonly;\n\t\tif ( !isBoolean( opts.readonly ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', opts.readonly ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\nimport format from '@stdlib/string-format';\nimport validate from './validate.js';\nimport createObject from './detect.js';\n\n\n// MAIN //\n\n/**\n* Implements prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.\n*\n* ## Notes\n*\n* - This implementation is not designed to work with ES2015/ES6 classes. For ES2015/ES6 classes, use `class` with `extends`.\n* - For reference, see [node#3455](https://github.com/nodejs/node/pull/3455), [node#4179](https://github.com/nodejs/node/issues/4179), [node#3452](https://github.com/nodejs/node/issues/3452), and [node commit](https://github.com/nodejs/node/commit/29da8cf8d7ab8f66b9091ab22664067d4468461e#diff-3deb3f32958bb937ae05c6f3e4abbdf5).\n*\n* @param {(Object|Function)} ctor - constructor which will inherit\n* @param {(Object|Function)} superCtor - super (parent) constructor\n* @throws {TypeError} first argument must be either an object or a function which can inherit\n* @throws {TypeError} second argument must be either an object or a function from which a constructor can inherit\n* @throws {TypeError} second argument must have an inheritable prototype\n* @returns {(Object|Function)} child constructor\n*\n* @example\n* function Foo() {\n* return this;\n* }\n* Foo.prototype.beep = function beep() {\n* return 'boop';\n* };\n*\n* function Bar() {\n* Foo.call( this );\n* return this;\n* }\n* inherit( Bar, Foo );\n*\n* var bar = new Bar();\n* var v = bar.beep();\n* // returns 'boop'\n*/\nfunction inherit( ctor, superCtor ) {\n\tvar err = validate( ctor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\terr = validate( superCtor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\tif ( typeof superCtor.prototype === 'undefined' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have a prototype from which another object can inherit. Value: `%s`.', superCtor.prototype ) );\n\t}\n\t// Create a prototype which inherits from the parent prototype:\n\tctor.prototype = createObject( superCtor.prototype );\n\n\t// Set the constructor to refer to the child constructor:\n\tdefineProperty( ctor.prototype, 'constructor', {\n\t\t'configurable': true,\n\t\t'enumerable': false,\n\t\t'writable': true,\n\t\t'value': ctor\n\t});\n\n\treturn ctor;\n}\n\n\n// EXPORTS //\n\nexport default inherit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {*} array element\n*/\nfunction get() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( arguments.length !== this._ndims ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( arguments.length !== this._ndims+1 ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%i`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isPlainObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isArrayLike from '@stdlib/assert-is-array-like';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\nimport numel from '@stdlib/ndarray-base-numel';\nimport ndarray from '@stdlib/ndarray-ctor';\nimport defaults from '@stdlib/ndarray-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DTYPE = defaults.get( 'dtypes.default' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} shape - array shape\n* @param {Options} [options] - options\n* @param {string} [options.dtype='float64'] - data type\n* @param {string} [options.order='row-major'] - array order\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @throws {TypeError} first argument must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @throws {TypeError} `order` option must be a recognized array order\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = empty( [ 2, 2 ] );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float64'\n*/\nfunction empty( shape ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = DTYPE;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = ORDER;\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t} else {\n\t\tdtype = DTYPE;\n\t\torder = ORDER;\n\t}\n\tif ( isNumber( shape ) ) {\n\t\tsh = [ shape ];\n\t} else if ( isArrayLike( shape ) ) {\n\t\tsh = shape;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tif ( len !== len || len < 0 ) {\n\t\t\t// We should only get here if we've been provided an invalid shape (e.g., an array containing negative integers, etc)...\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\n\n\n// MAIN //\n\n/**\n* Copies the elements of an array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar get;\n\tvar i;\n\n\t// Resolve an accessor for retrieving input array elements:\n\tget = resolveGetter( x );\n\n\t// Get the number of elements to copy:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( get( x, i ) ); // ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\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* Inserts an element into an array.\n*\n* @param {Array} x - input array\n* @param {integer} index - element index\n* @param {*} value - value to insert\n* @returns {Array} mutated input array\n*\n* @example\n* var x = [ 1, 1, 2, 3, 3 ];\n*\n* var y = insertAt( x, -3, 4 );\n* // returns [ 1, 1, 4, 2, 3, 3 ]\n*\n* var bool = ( x === y );\n* // returns true\n*\n* @example\n* var x = [ 1, 1, 2, 3, 3 ];\n*\n* var y = insertAt( x, -1, 4 );\n* // returns [ 1, 1, 2, 3, 4, 3 ]\n*\n* var bool = ( x === y );\n* // returns true\n*\n* @example\n* var x = [ 1, 1, 2, 3, 3 ];\n*\n* var y = insertAt( x, x.length, 4 );\n* // returns [ 1, 1, 2, 3, 3, 4 ]\n*\n* var bool = ( x === y );\n* // returns true\n*/\nfunction insertAt( x, index, value ) {\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t\tif ( index < 0 ) {\n\t\t\tindex = 0;\n\t\t}\n\t} else if ( index > len ) {\n\t\tindex = len;\n\t}\n\tx.push( x[ len-1 ] );\n\tfor ( i = len-2; i >= index; i-- ) {\n\t\tx[ i+1 ] = x[ i ];\n\t}\n\tx[ index ] = value;\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default insertAt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'every' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @private\n* @param {Collection} x - input array\n* @param {Function} predicate - test function\n* @param {*} thisArg - execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function isPositive( v ) {\n* return v > 0;\n* }\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = internal( x, isPositive );\n* // returns true\n*/\nfunction internal( x, predicate, thisArg ) {\n\tvar i;\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\tif ( !predicate.call( thisArg, x[ i ], i, x ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Function} predicate - test function\n* @param {*} thisArg - execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* function isPositive( v ) {\n* return v > 0;\n* }\n*\n* var x = arraylike2object( toAccessorArray( [ 1, 2, 3, 4 ] ) );\n*\n* var out = accessors( x, isPositive );\n* // returns true\n*/\nfunction accessors( x, predicate, thisArg ) {\n\tvar data;\n\tvar get;\n\tvar i;\n\n\tdata = x.data;\n\tget = x.accessors[ 0 ];\n\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tif ( !predicate.call( thisArg, get( data, i ), i, data ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @param {Collection} x - input array\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function isPositive( v ) {\n* return v > 0;\n* }\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = everyBy( x, isPositive );\n* // returns true\n*/\nfunction everyBy( x, predicate, thisArg ) {\n\tvar obj;\n\tif ( hasMethod( x, 'every' ) ) {\n\t\treturn x.every( predicate, thisArg );\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj, predicate, thisArg );\n\t}\n\treturn internal( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default everyBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DATA from './data.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of BLAS memory layouts.\n*\n* @returns {StringArray} list of memory layouts\n*\n* @example\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction layouts() {\n\treturn DATA.slice();\n}\n\n\n// EXPORTS //\n\nexport default layouts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of BLAS memory layouts.\n*\n* @module @stdlib/blas-base-layouts\n*\n* @example\n* import layouts from '@stdlib/blas-base-layouts';\n*\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported layouts to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 101`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of array objects.\n*\n* @returns {Object} object mapping supported layouts to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `layouts.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 101,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 102\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport layouts from '@stdlib/blas-base-layouts';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a BLAS memory layout.\n*\n* @name isLayout\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a memory layout\n*\n* @example\n* var bool = isLayout( 'row-major' );\n* // returns true\n*\n* bool = isLayout( 'column-major' );\n* // returns true\n*\n* bool = isLayout( 'foo' );\n* // returns false\n*/\nvar isLayout = contains( layouts() );\n\n\n// EXPORTS //\n\nexport default isLayout;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the maximum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum value\n*\n* @example\n* var v = max( 3.14, 4.2 );\n* // returns 4.2\n*\n* @example\n* var v = max( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = max( NaN, 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = max( -0.0, +0.0 );\n* // returns +0.0\n*\n* @example\n* var v = max( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction max( x, y ) {\n\tif ( x > y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default max;\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\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport ones from '@stdlib/array-base-ones';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* ## Notes\n*\n* - If the function is provided an empty matrix or if the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @private\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Collection} A - input matrix\n* @param {integer} strideA1 - stride of the first dimension of `A`\n* @param {integer} strideA2 - stride of the second dimension of `A`\n* @param {NonNegativeInteger} offsetA - index offset for `A`\n* @param {Collection} x - search vector\n* @param {integer} strideX - stride length for `x`\n* @param {NonNegativeInteger} offsetX - index offset for `x`\n* @returns {integer} row index\n*\n* @example\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 2, 1, 0, x, 1, 0 );\n* // returns 1\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns 1\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 1.0, 2.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns 0\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 0.0, 0.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns 2\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ -3.0, -4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns -1\n*/\nfunction gindexOfRow( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-len\n\tvar matches;\n\tvar da0;\n\tvar da1;\n\tvar S0;\n\tvar S1;\n\tvar ia;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar oa;\n\tvar ox;\n\n\t// Check whether the matrix is an empty matrix...\n\tif ( M <= 0 || N <= 0 ) {\n\t\treturn -1;\n\t}\n\toa = arraylike2object( A );\n\tox = arraylike2object( x );\n\tif ( oa.accessorProtocol || ox.accessorProtocol ) {\n\t\treturn accessors( M, N, oa, strideA1, strideA2, offsetA, ox, strideX, offsetX ); // eslint-disable-line max-len\n\t}\n\t// Search for the first row matching the search vector...\n\tif ( isRowMajor( [ strideA1, strideA2 ] ) ) {\n\t\tS0 = N;\n\t\tS1 = M;\n\n\t\t// Scan a row-major linear buffer from the first indexed element to the last indexed element, always moving in the same direction when both strides are the same sign, thus ensuring cache optimal traversal...\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tia = offsetA + ( i1*strideA1 );\n\t\t\tix = offsetX;\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( A[ ia ] !== x[ ix ] ) {\n\t\t\t\t\t// We found an element which is not in the search vector...\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tia += strideA2;\n\t\t\t\tix += strideX;\n\t\t\t}\n\t\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\t\tif ( i0 === S0 ) {\n\t\t\t\treturn i1;\n\t\t\t}\n\t\t}\n\t\t// If we've made it here, then no rows match the search vector:\n\t\treturn -1;\n\t}\n\t// Column-major...\n\tS0 = M;\n\tS1 = N;\n\n\t// Resolve loop offset (pointer) increments:\n\tda0 = strideA1;\n\tda1 = strideA2 - ( S0*strideA1 );\n\n\t// Create an array for tracking which rows contain matching elements:\n\tmatches = ones( M );\n\n\t// Finding the first matching row when a matrix is stored in column-major order requires effectively performing a full linear scan. In order to ensure cache-efficient traversal, scan down each column (otherwise, if we went row-by-row, we'd hop around linear memory, resulting in poor cache behavior)...\n\tia = offsetA;\n\tix = offsetX;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t// Scan down the rows in a column looking for a matching element...\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( A[ ia ] !== x[ ix ] ) {\n\t\t\t\t// We found a non-matching element, which means we can exclude this row from the list of row candidates...\n\t\t\t\tmatches[ i0 ] = 0;\n\t\t\t}\n\t\t\tia += da0;\n\t\t}\n\t\tia += da1;\n\t\tix += strideX;\n\t}\n\t// Search for the first matching row...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( matches[ i0 ] === 1 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn ( i0 === S0 ) ? -1 : i0;\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\nimport ones from '@stdlib/array-base-ones';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* ## Notes\n*\n* - If the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @private\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Object} A - input matrix object\n* @param {Collection} A.data - input matrix data\n* @param {Array} A.accessors - matrix element accessors\n* @param {integer} strideA1 - stride of the first dimension of `A`\n* @param {integer} strideA2 - stride of the second dimension of `A`\n* @param {NonNegativeInteger} offsetA - index offset for `A`\n* @param {Object} x - search vector object\n* @param {Collection} x.data - search vector data\n* @param {Array} x.accessors - search vector element accessors\n* @param {integer} strideX - stride length for `x`\n* @param {NonNegativeInteger} offsetX - index offset for `x`\n* @returns {integer} row index\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 2, 1, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 1\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 1\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 1.0, 2.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 0\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 0.0, 0.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 2\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ -3.0, -4.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns -1\n*/\nfunction gindexOfRow( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-len\n\tvar matches;\n\tvar abuf;\n\tvar xbuf;\n\tvar aget;\n\tvar xget;\n\tvar da0;\n\tvar da1;\n\tvar S0;\n\tvar S1;\n\tvar ia;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Cache references to array data:\n\tabuf = A.data;\n\txbuf = x.data;\n\n\t// Cache references to the element accessors:\n\taget = A.accessors[ 0 ];\n\txget = x.accessors[ 0 ];\n\n\t// Search for the first row matching the search vector...\n\tif ( isRowMajor( [ strideA1, strideA2 ] ) ) {\n\t\tS0 = N;\n\t\tS1 = M;\n\n\t\t// Scan a row-major linear buffer from the first indexed element to the last indexed element, always moving in the same direction when both strides are the same sign, thus ensuring cache optimal traversal...\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tia = offsetA + ( i1*strideA1 );\n\t\t\tix = offsetX;\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( aget( abuf, ia ) !== xget( xbuf, ix ) ) {\n\t\t\t\t\t// We found an element which is not in the search vector...\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tia += strideA2;\n\t\t\t\tix += strideX;\n\t\t\t}\n\t\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\t\tif ( i0 === S0 ) {\n\t\t\t\treturn i1;\n\t\t\t}\n\t\t}\n\t\t// If we've made it here, then no rows match the search vector:\n\t\treturn -1;\n\t}\n\t// Column-major...\n\tS0 = M;\n\tS1 = N;\n\n\t// Resolve loop offset (pointer) increments:\n\tda0 = strideA1;\n\tda1 = strideA2 - ( S0*strideA1 );\n\n\t// Create an array for tracking which rows contain matching elements:\n\tmatches = ones( M );\n\n\t// Finding the first matching row when a matrix is stored in column-major order requires effectively performing a full linear scan. In order to ensure cache-efficient traversal, scan down each column (otherwise, if we went row-by-row, we'd hop around linear memory, resulting in poor cache behavior)...\n\tia = offsetA;\n\tix = offsetX;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t// Scan down the rows in a column looking for a matching element...\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( aget( abuf, ia ) !== xget( xbuf, ix ) ) {\n\t\t\t\t// We found a non-matching element, which means we can exclude this row from the list of row candidates...\n\t\t\t\tmatches[ i0 ] = 0;\n\t\t\t}\n\t\t\tia += da0;\n\t\t}\n\t\tia += da1;\n\t\tix += strideX;\n\t}\n\t// Search for the first matching row...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( matches[ i0 ] === 1 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn ( i0 === S0 ) ? -1 : i0;\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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\nimport base from './base.js';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector using alternative indexing semantics.\n*\n* ## Notes\n*\n* - If the function is provided an empty matrix or if the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Collection} A - input matrix\n* @param {integer} strideA1 - stride of the first dimension of `A`\n* @param {integer} strideA2 - stride of the second dimension of `A`\n* @param {NonNegativeInteger} offsetA - index offset for `A`\n* @param {Collection} x - search vector\n* @param {integer} strideX - stride length for `x`\n* @param {NonNegativeInteger} offsetX - index offset for `x`\n* @returns {integer} row index\n*\n* @example\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 2, 1, 0, x, 1, 0 );\n* // returns 1\n*/\nfunction gindexOfRow( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-len\n\treturn base( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX );\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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* Return the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* @module @stdlib/blas-ext-base-gindex-of-row\n*\n* @example\n* import gindexOfRow from '@stdlib/blas-ext-base-gindex-of-row';\n*\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 'row-major', 3, 2, A, 2, x, 1 );\n* // returns 1\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport isLayout from '@stdlib/blas-base-assert-is-layout';\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport max from '@stdlib/math-base-special-fast-max';\nimport format from '@stdlib/string-format';\nimport base from './base.js';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* ## Notes\n*\n* - If the function is provided an empty matrix or if the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @param {string} order - storage layout\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Collection} A - input matrix\n* @param {integer} LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`)\n* @param {Collection} x - search vector\n* @param {integer} strideX - stride length for `x`\n* @throws {TypeError} first argument must be a valid order\n* @throws {RangeError} fifth argument must be greater than or equal to max(1,N)\n* @returns {integer} row index\n*\n* @example\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 'row-major', 3, 2, A, 2, x, 1 );\n* // returns 1\n*/\nfunction gindexOfRow( order, M, N, A, LDA, x, strideX ) {\n\tvar sa1;\n\tvar sa2;\n\tvar s;\n\tif ( !isLayout( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) );\n\t}\n\tif ( isRowMajor( order ) ) {\n\t\ts = N;\n\t} else {\n\t\ts = M;\n\t}\n\tif ( LDA < max( 1, s ) ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fifth argument must be greater than or equal to max(1,%d). Value: `%d`.', s, LDA ) );\n\t}\n\tif ( isColumnMajor( order ) ) {\n\t\tsa1 = 1;\n\t\tsa2 = LDA;\n\t} else { // order === 'row-major'\n\t\tsa1 = LDA;\n\t\tsa2 = 1;\n\t}\n\treturn base( M, N, A, sa1, sa2, 0, x, strideX, stride2offset( N, strideX ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {*} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = resolveStr( options.dtype );\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), options.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this, max-lines, id-length, no-warning-comments */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport isEqualDataType from '@stdlib/ndarray-base-assert-is-equal-data-type';\nimport contains from '@stdlib/array-base-assert-contains';\nimport binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\nimport binaryOutputDataType from '@stdlib/ndarray-base-binary-output-dtype';\nimport binaryInputCastingDataType from '@stdlib/ndarray-base-binary-input-casting-dtype';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport dtypes2strings from '@stdlib/ndarray-base-dtypes2strings';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from '@stdlib/ndarray-defaults';\nimport DEFAULTS from './defaults.json';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on two input ndarrays.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {ArrayLikeObject} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each input ndarray argument\n* @param {ArrayLikeObject} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {BinaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = new BinaryStrided1dDispatch( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var z = dot.apply( x, y );\n* // returns [ -5.0 ]\n*/\nfunction BinaryStrided1dDispatch( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof BinaryStrided1dDispatch ) ) {\n\t\treturn new BinaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tidtypes = copy( idtypes );\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t\tidtypes[ i ] = dtypes2strings( dt );\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\todtypes = dtypes2strings( odtypes );\n\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== 2 * this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. Two input ndarray data types must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on two provided input ndarrays.\n*\n* @name apply\n* @memberof BinaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - first input ndarray\n* @param {ndarrayLike} y - second input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {*} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} second argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = new BinaryStrided1dDispatch( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var z = dot.apply( x, y );\n* // returns [ -5.0 ]\n*/\nsetReadOnly( BinaryStrided1dDispatch.prototype, 'apply', function apply( x, y ) {\n\tvar options;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar shz;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar zdt;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar z;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\tif ( !isndarrayLike( y ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', y ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], resolveStr( xdt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\tydt = getDType( y );\n\tif ( !contains( this._idtypes[ 1 ], resolveStr( ydt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 1 ], '\", \"' ), ydt ) );\n\t}\n\targs = [ x, y ];\n\tfor ( i = 2; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], resolveStr( dt ) ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Verify that both input arrays have the same shape:\n\tshx = getShape( x );\n\tshy = getShape( y );\n\tif ( shx.length !== shy.length ) {\n\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.', shx.length, shy.length ) );\n\t}\n\tN = shx.length;\n\tfor ( j = 0; j < N; j++ ) {\n\t\tif ( shx[ j ] !== shy[ j ] ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same shape. First array shape: [%s]. Second array shape: [%s].', join( shx, ',' ), join( shy, ',' ) ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\topts = objectAssign( {}, DEFAULTS );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the input ndarrays across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshz = takeIndexed( shx, idx );\n\n\t// Resolve the output array order:\n\tordx = getOrder( x );\n\tordy = getOrder( y );\n\tif ( ordx === ordy ) {\n\t\tordz = ordx;\n\t} else {\n\t\t// When the orders differ, fall back to the default order:\n\t\tordz = DEFAULT_ORDER;\n\t}\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions:\n\tzdt = opts.dtype || binaryOutputDataType( xdt, ydt, this._policies.output );\n\tz = empty( shz, {\n\t\t'dtype': zdt,\n\t\t'order': ordz\n\t});\n\n\t// Determine whether we need to cast the input ndarrays...\n\tdt = binaryInputCastingDataType( xdt, ydt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( xdt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, ordx );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\tdt = binaryInputCastingDataType( ydt, xdt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( ydt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shy, ordy );\n\t\tassign( [ y, tmp ] );\n\t\targs[ 1 ] = tmp;\n\t\tydt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data types:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tbinaryReduceStrided1d( f, insertAt( args, 2, z ), opts.dims );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\tz = spreadDimensions( N, z, idx, true );\n\t}\n\treturn z;\n});\n\n/**\n* Performs a reduction on two provided input ndarrays and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof BinaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - first input ndarray\n* @param {ndarrayLike} y - second input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} second argument must be an ndarray\n* @throws {TypeError} second argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = new BinaryStrided1dDispatch( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var zbuf = [ 0.0 ];\n* var z = new ndarray( 'generic', zbuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = dot.assign( x, y, z );\n* // returns [ -5.0 ]\n*\n* var bool = ( out === z );\n* // returns true\n*/\nsetReadOnly( BinaryStrided1dDispatch.prototype, 'assign', function assign( x, y ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar shx;\n\tvar shy;\n\tvar xdt;\n\tvar ydt;\n\tvar zdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar z;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\tif ( !isndarrayLike( y ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', y ) );\n\t}\n\t// Validate the input ndarray data types in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], resolveStr( xdt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\tydt = getDType( y );\n\tif ( !contains( this._idtypes[ 1 ], resolveStr( ydt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 1 ], '\", \"' ), ydt ) );\n\t}\n\t// Verify that both input arrays have the same shape:\n\tshx = getShape( x );\n\tshy = getShape( y );\n\tif ( shx.length !== shy.length ) {\n\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.', shx.length, shy.length ) );\n\t}\n\tN = shx.length;\n\tfor ( j = 0; j < N; j++ ) {\n\t\tif ( shx[ j ] !== shy[ j ] ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same shape. First array shape: [%s]. Second array shape: [%s].', join( shx, ',' ), join( shy, ',' ) ) );\n\t\t}\n\t}\n\targs = [ x, y ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 2; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 3 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an ndarray-like object. Value: `%s`.', arguments[ 2 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\tz = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 2; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], resolveStr( dt ) ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, DEFAULTS );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the input arrays across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarrays...\n\tzdt = getDType( z );\n\tdt = binaryInputCastingDataType( xdt, ydt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( xdt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\tdt = binaryInputCastingDataType( ydt, xdt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( ydt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shy, getOrder( y ) );\n\t\tassign( [ y, tmp ] );\n\t\targs[ 1 ] = tmp;\n\t\tydt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tbinaryReduceStrided1d( f, insertAt( args, 2, z ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn z;\n});\n\n\n// EXPORTS //\n\nexport default BinaryStrided1dDispatch;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\n\n\n// MAIN //\n\n/**\n* Normalizes a list of indices to the interval `[0,max]`.\n*\n* @param {IntegerArray} indices - indices\n* @param {NonNegativeInteger} max - maximum index\n* @returns {(IntegerArray|null)} normalized indices or null\n*\n* @example\n* var idx = normalizeIndices( [ -2, 5 ], 10 );\n* // returns [ 9, 5 ]\n*\n* idx = normalizeIndices( [ 15 ], 10 );\n* // returns null\n*/\nfunction normalizeIndices( indices, max ) {\n\tvar idx;\n\tvar flg;\n\tvar i;\n\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tidx = normalizeIndex( indices[ i ], max );\n\t\tif ( idx === -1 ) {\n\t\t\tflg = null;\n\t\t}\n\t\tindices[ i ] = idx;\n\t}\n\treturn ( flg === null ) ? flg : indices;\n}\n\n\n// EXPORTS //\n\nexport default normalizeIndices;\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\nimport copy from '@stdlib/array-base-copy';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport normalizeIndices from '@stdlib/ndarray-base-normalize-indices';\nimport join from '@stdlib/array-base-join';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an input ndarray to a target shape while keeping a list of specified dimensions unchanged.\n*\n* ## Notes\n*\n* - The function expects that each index in the list of dimensions is negative in order to ensure that indices correspond to the same relative position in the output ndarray shape. For example, given an input ndarray shape `[2,X1,X2]` and a desired shape `[6,7,2,Y1,Y2]`, a list of negative dimensions `[-2,-1]` correctly maps the unchanged dimensions `X` in the input ndarray to ignored dimensions `Y` in the provided target shape. Nonnegative indices, however, afford no such mapping. For example, the list of dimensions `[1,2]` corresponds to `[X1,X2]` in the input ndarray shape, but to `[7,2]` in the target shape, which is not desired. By expecting negative indices, we avoid confusion and ensure that users always refer to dimensions relative to the last broadcasted dimension.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @param {NegativeIntegerArray} dims - list of dimensions to exclude from broadcasting\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} broadcasted dimensions in the input array and desired shape must be broadcast compatible\n* @throws {RangeError} dimension indices must not exceed desired shape bounds\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import getShape from '@stdlib/ndarray-shape';\n*\n* var x = array( [ [ 1, 2, 3 ] ] );\n* // returns \n*\n* var shx = getShape( x );\n* // returns [ 1, 3 ]\n*\n* var y = broadcastArrayExceptDimensions( x, [ 2, 2, 3 ], [ -2 ] );\n* // returns \n*\n* var shy = getShape( y );\n* // returns [ 2, 1, 3 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 0, 0, 2 );\n* // returns 3\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 2 );\n* // returns 3\n*/\nfunction broadcastArrayExceptDimensions( arr, shape, dims ) { // eslint-disable-line id-length\n\tvar strides;\n\tvar idx;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar dl;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\t// Copy input arguments to avoid unintended mutation:\n\tshape = copy( shape );\n\tidx = copy( dims );\n\n\t// Resolve the shape of the input array:\n\tsh = getShape( arr, false );\n\n\tN = shape.length;\n\tM = sh.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Initialize a strides array:\n\tstrides = zeros( N );\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tdl = idx.length;\n\tidx = normalizeIndices( idx, M-1 );\n\tif ( idx === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\tidx.sort(); // sort in ascending order\n\tif ( idx.length !== dl ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\tk = idx.length - 1;\n\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\t// Moving from right-to-left, resolve an index into the input array shape:\n\t\tj = M - N + i; // M-1, M-2, M-3, ..., M-M, ..., M-N with N >= M\n\n\t\t// For prepended singleton dimensions, the stride is zero...\n\t\tif ( j < 0 ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Check for a dimension being held constant...\n\t\tif ( k >= 0 && idx[ k ] === j ) {\n\t\t\tshape[ i ] = sh[ j ];\n\t\t\tstrides[ i ] = st[ j ];\n\t\t\tk -= 1;\n\t\t\tcontinue;\n\t\t}\n\t\t// Broadcast the current dimension...\n\t\td = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), shape, strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default broadcastArrayExceptDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Broadcasts array shapes to a single shape.\n*\n* ## Notes\n*\n* - Two respective dimensions in two shape arrays are compatible if\n*\n* 1. the dimensions are equal.\n* 2. one dimension is `1`.\n*\n* - The function returns `null` if provided incompatible shapes (i.e., shapes which cannot be broadcast with one another).\n*\n* @param {Array} shapes - array of shape arrays\n* @returns {(NonNegativeIntegerArray|null)} broadcast shape (or `null`)\n*\n* @example\n* var shapes = [\n* [ 8, 1, 6, 1 ],\n* [ 7, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 4 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 15, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 1, 7, 1, 5 ],\n* [ 8, 4, 1, 6, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 4, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 0 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 1, 1, 6, 0 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 0, 1, 6, 1 ]\n*\n* @example\n* var shapes = [\n* [ 8, 8, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* [ 8, 0, 1, 6, 1 ],\n* [ 8, 8, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [ 3, 2, 1 ],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*\n* @example\n* var shapes = [\n* [],\n* [ 3, 2, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*/\nfunction broadcastShapes( shapes ) {\n\tvar ndims;\n\tvar out;\n\tvar dim;\n\tvar sh;\n\tvar n1;\n\tvar n2;\n\tvar d;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tM = shapes.length;\n\tout = [];\n\tif ( M === 0 ) {\n\t\treturn out;\n\t}\n\tsh = shapes[ 0 ];\n\tN = sh.length;\n\n\t// If provided a single input shape array, then the broadcast shape is input shape...\n\tif ( M === 1 ) {\n\t\t// Need to manually copy to output shape, as shapes could be array-like objects...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( sh[ i ] );\n\t\t}\n\t\treturn out;\n\t}\n\t// Determine the maximum dimensionality...\n\tndims = [ N ];\n\tfor ( i = 1; i < M; i++ ) {\n\t\tndims.push( shapes[ i ].length );\n\t\tif ( ndims[ i ] > N ) {\n\t\t\tN = ndims[ i ];\n\t\t}\n\t}\n\t// Initialize the output array...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( 0 );\n\t}\n\t// Compute the broadcast shape...\n\ti = N - 1;\n\twhile ( i >= 0 ) {\n\t\tn1 = ndims[ 0 ] - N + i;\n\t\tif ( n1 >= 0 ) {\n\t\t\tdim = sh[ n1 ];\n\t\t} else {\n\t\t\tdim = 1;\n\t\t}\n\t\tfor ( j = 1; j < M; j++ ) {\n\t\t\tn2 = ndims[ j ] - N + i;\n\t\t\tif ( n2 >= 0 ) {\n\t\t\t\td = shapes[ j ][ n2 ];\n\t\t\t} else {\n\t\t\t\td = 1;\n\t\t\t}\n\t\t\tif ( dim === 1 ) {\n\t\t\t\tdim = d;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( d === 1 || dim === d ) {\n\t\t\t\t// When either `d` is `1` or `d` equals the current output shape dimension, the current output shape dimension remains the same...\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// The current shape cannot be broadcast against one of the other shapes...\n\t\t\treturn null;\n\t\t}\n\t\tout[ i ] = dim;\n\t\ti -= 1;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default broadcastShapes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from ndarray data buffer constructors to data types...\nvar dtypes = {\n\t'Buffer': 'binary',\n\t'Float16Array': 'float16',\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Object': 'generic',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex32Array': 'complex32',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int8Array from '@stdlib/array-int8';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// FUNCTIONS //\n\n/**\n* Throws an error.\n*\n* @private\n* @throws {Error} not implemented\n*/\nfunction notImplemented() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [ // eslint-disable-line vars-on-top\n\tFloat64Array,\n\tFloat32Array,\n\tnotImplemented, // FIXME: replace with `Float16Array` once implemented\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tnotImplemented, // FIXME: replace with `Complex32Array` once implemented\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectInverse from '@stdlib/object-inverse';\nimport dtypeChar from '@stdlib/ndarray-base-dtype-char';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a provided single letter abbreviation.\n*\n* @param {string} ch - single letter character abbreviation\n* @returns {(Object|string|null)} data type string\n*\n* @example\n* var obj = char2dtype();\n* // returns {...}\n*\n* @example\n* var out = char2dtype( 'd' );\n* // returns 'float64'\n*\n* out = char2dtype( '(' );\n* // returns null\n*/\nfunction char2dtype( ch ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn objectInverse( dtypeChar() );\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = objectInverse( dtypeChar() );\n\t}\n\treturn TABLE[ ch ] || null;\n}\n\n\n// EXPORTS //\n\nexport default char2dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'float16',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex32',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport isBuffer from '@stdlib/assert-is-buffer';\nimport isArray from '@stdlib/assert-is-array';\nimport constructorName from '@stdlib/utils-constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an ndarray data buffer.\n*\n* @param {*} value - input value\n* @returns {(string|Function|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn 'binary';\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\tif ( value && isStructConstructorLike( value.struct ) ) {\n\t\treturn value.struct;\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeros from '@stdlib/array-base-zeros';\nimport defaults from '@stdlib/ndarray-defaults';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults.get( 'order' );\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a storage layout string from a layout integer.\n*\n* @private\n* @param {NonNegativeInteger} layout - layout integer\n* @returns {string} layout string\n*\n* @example\n* var order = resolveString( 0 );\n* // returns \n*\n* @example\n* var order = resolveString( 1 );\n* // returns 'row-major'\n*\n* @example\n* var order = resolveString( 2 );\n* // returns 'column-major'\n*\n* @example\n* var order = resolveString( 3 );\n* // returns \n*/\nfunction resolveString( layout ) {\n\tif ( layout === 1 ) {\n\t\treturn 'row-major';\n\t}\n\tif ( layout === 2 ) {\n\t\treturn 'column-major';\n\t}\n\t// layout === 0 || layout === 3\n\treturn DEFAULT_ORDER;\n}\n\n\n// MAIN //\n\n/**\n* Resolves the most common underlying storage layout.\n*\n* @param {ArrayLikeObject} strides - list of strides array\n* @returns {string} storage layout\n*\n* @example\n* var strides = [ [ 2, 1 ], [ 4, 1 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns 'row-major'\n*\n* @example\n* var strides = [ [ 1, 2 ], [ 1, 4 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns 'column-major'\n*\n* @example\n* var strides = [ [ 2, 1 ], [ 1, 4 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns \n*\n* @example\n* var strides = [ [ 1, 1 ], [ 1, 1 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns \n*/\nfunction consensusOrder( strides ) {\n\tvar tmp;\n\tvar M;\n\tvar N;\n\tvar i;\n\n\tN = strides.length;\n\n\t// Initialize an array for grouping stride arrays according to memory layout:\n\ttmp = zeros( 4 ); // note: `4` corresponds to the number of possible return values from `strides2order`\n\tM = tmp.length;\n\n\t// Group stride arrays according to memory layout:\n\tfor ( i = 0; i < N; i++ ) {\n\t\ttmp[ strides2order( strides[ i ] ) ] += 1;\n\t}\n\t// Determine which array should be used to determine the consensus order:\n\tif ( tmp[ 0 ] === N ) {\n\t\t// If all arrays are \"disorganized\", then fallback to the default order:\n\t\treturn DEFAULT_ORDER;\n\t}\n\tif ( tmp[ 0 ] === N-1 ) {\n\t\t// If all but one array is \"disorganized\", find the \"organized\" array...\n\t\tfor ( i = 1; i < M; i++ ) {\n\t\t\tif ( tmp[ i ] > 0 ) {\n\t\t\t\treturn resolveString( i );\n\t\t\t}\n\t\t}\n\t}\n\t// We've got at least two \"organized\" arrays; find the layout which is most common...\n\tif ( tmp[ 1 ] > tmp[ 2 ] ) {\n\t\treturn resolveString( 1 );\n\t}\n\tif ( tmp[ 1 ] < tmp[ 2 ] ) {\n\t\treturn resolveString( 2 );\n\t}\n\t// tmp[ 1 ] === tmp[ 2 ]\n\treturn DEFAULT_ORDER;\n}\n\n\n// EXPORTS //\n\nexport default consensusOrder;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsynd( x );\n* // returns 1\n*/\nfunction countFalsynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsynd( x );\n* // returns 1\n*/\nfunction countFalsynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsynd( x );\n* // returns 1\n*/\nfunction countFalsynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorcount2d from './2d_blocked_accessors.js';\nimport blockedaccessorcount3d from './3d_blocked_accessors.js';\nimport blockedaccessorcount4d from './4d_blocked_accessors.js';\nimport blockedaccessorcount5d from './5d_blocked_accessors.js';\nimport blockedaccessorcount6d from './6d_blocked_accessors.js';\nimport blockedaccessorcount7d from './7d_blocked_accessors.js';\nimport blockedaccessorcount8d from './8d_blocked_accessors.js';\nimport blockedaccessorcount9d from './9d_blocked_accessors.js';\nimport blockedaccessorcount10d from './10d_blocked_accessors.js';\nimport blockedcomplexcount2d from './2d_blocked_complex.js';\nimport blockedcomplexcount3d from './3d_blocked_complex.js';\nimport blockedcomplexcount4d from './4d_blocked_complex.js';\nimport blockedcomplexcount5d from './5d_blocked_complex.js';\nimport blockedcomplexcount6d from './6d_blocked_complex.js';\nimport blockedcomplexcount7d from './7d_blocked_complex.js';\nimport blockedcomplexcount8d from './8d_blocked_complex.js';\nimport blockedcomplexcount9d from './9d_blocked_complex.js';\nimport blockedcomplexcount10d from './10d_blocked_complex.js';\nimport blockedcount2d from './2d_blocked.js';\nimport blockedcount3d from './3d_blocked.js';\nimport blockedcount4d from './4d_blocked.js';\nimport blockedcount5d from './5d_blocked.js';\nimport blockedcount6d from './6d_blocked.js';\nimport blockedcount7d from './7d_blocked.js';\nimport blockedcount8d from './8d_blocked.js';\nimport blockedcount9d from './9d_blocked.js';\nimport blockedcount10d from './10d_blocked.js';\nimport accessorcount0d from './0d_accessors.js';\nimport accessorcount1d from './1d_accessors.js';\nimport accessorcount2d from './2d_accessors.js';\nimport accessorcount3d from './3d_accessors.js';\nimport accessorcount4d from './4d_accessors.js';\nimport accessorcount5d from './5d_accessors.js';\nimport accessorcount6d from './6d_accessors.js';\nimport accessorcount7d from './7d_accessors.js';\nimport accessorcount8d from './8d_accessors.js';\nimport accessorcount9d from './9d_accessors.js';\nimport accessorcount10d from './10d_accessors.js';\nimport accessorcountnd from './nd_accessors.js';\nimport complexcount0d from './0d_complex.js';\nimport complexcount1d from './1d_complex.js';\nimport complexcount2d from './2d_complex.js';\nimport complexcount3d from './3d_complex.js';\nimport complexcount4d from './4d_complex.js';\nimport complexcount5d from './5d_complex.js';\nimport complexcount6d from './6d_complex.js';\nimport complexcount7d from './7d_complex.js';\nimport complexcount8d from './8d_complex.js';\nimport complexcount9d from './9d_complex.js';\nimport complexcount10d from './10d_complex.js';\nimport complexcountnd from './nd_complex.js';\nimport count0d from './0d.js';\nimport count1d from './1d.js';\nimport count2d from './2d.js';\nimport count3d from './3d.js';\nimport count4d from './4d.js';\nimport count5d from './5d.js';\nimport count6d from './6d.js';\nimport count7d from './7d.js';\nimport count8d from './8d.js';\nimport count9d from './9d.js';\nimport count10d from './10d.js';\nimport countnd from './nd.js';\n\n\n// VARIABLES //\n\nvar COUNT = [\n\tcount0d,\n\tcount1d,\n\tcount2d,\n\tcount3d,\n\tcount4d,\n\tcount5d,\n\tcount6d,\n\tcount7d,\n\tcount8d,\n\tcount9d,\n\tcount10d\n];\nvar ACCESSOR_COUNT = [\n\taccessorcount0d,\n\taccessorcount1d,\n\taccessorcount2d,\n\taccessorcount3d,\n\taccessorcount4d,\n\taccessorcount5d,\n\taccessorcount6d,\n\taccessorcount7d,\n\taccessorcount8d,\n\taccessorcount9d,\n\taccessorcount10d\n];\nvar COMPLEX_COUNT = [\n\tcomplexcount0d,\n\tcomplexcount1d,\n\tcomplexcount2d,\n\tcomplexcount3d,\n\tcomplexcount4d,\n\tcomplexcount5d,\n\tcomplexcount6d,\n\tcomplexcount7d,\n\tcomplexcount8d,\n\tcomplexcount9d,\n\tcomplexcount10d\n];\nvar BLOCKED_COUNT = [\n\tblockedcount2d, // 0\n\tblockedcount3d,\n\tblockedcount4d,\n\tblockedcount5d,\n\tblockedcount6d,\n\tblockedcount7d,\n\tblockedcount8d,\n\tblockedcount9d,\n\tblockedcount10d // 8\n];\nvar BLOCKED_ACCESSOR_COUNT = [\n\tblockedaccessorcount2d, // 0\n\tblockedaccessorcount3d,\n\tblockedaccessorcount4d,\n\tblockedaccessorcount5d,\n\tblockedaccessorcount6d,\n\tblockedaccessorcount7d,\n\tblockedaccessorcount8d,\n\tblockedaccessorcount9d,\n\tblockedaccessorcount10d // 8\n];\nvar BLOCKED_COMPLEX_COUNT = [\n\tblockedcomplexcount2d, // 0\n\tblockedcomplexcount3d,\n\tblockedcomplexcount4d,\n\tblockedcomplexcount5d,\n\tblockedcomplexcount6d,\n\tblockedcomplexcount7d,\n\tblockedcomplexcount8d,\n\tblockedcomplexcount9d,\n\tblockedcomplexcount10d // 8\n];\nvar MAX_DIMS = COUNT.length - 1;\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy( [ x ] );\n* // returns 1\n*/\nfunction countFalsy( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn 0;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t}\n\t\treturn COUNT[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_COUNT[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorcountnd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexcountnd( x );\n\t}\n\treturn countnd( x );\n}\n\n\n// EXPORTS //\n\nexport default countFalsy;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 0.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy0d( x );\n* // returns 1\n*/\nfunction countFalsy0d( x ) {\n\tif ( !x.data[ x.offset ] ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy0d;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy1d( x );\n* // returns 1\n*/\nfunction countFalsy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy2d( x );\n* // returns 1\n*/\nfunction countFalsy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy3d( x );\n* // returns 1\n*/\nfunction countFalsy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy4d( x );\n* // returns 1\n*/\nfunction countFalsy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy5d( x );\n* // returns 1\n*/\nfunction countFalsy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy6d( x );\n* // returns 1\n*/\nfunction countFalsy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy7d( x );\n* // returns 1\n*/\nfunction countFalsy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy8d( x );\n* // returns 1\n*/\nfunction countFalsy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy9d( x );\n* // returns 1\n*/\nfunction countFalsy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy10d( x );\n* // returns 1\n*/\nfunction countFalsy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy10d;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 0.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy0d( x );\n* // returns 1\n*/\nfunction countFalsy0d( x ) {\n\tif ( !x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy0d;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy1d( x );\n* // returns 1\n*/\nfunction countFalsy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy2d( x );\n* // returns 1\n*/\nfunction countFalsy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy3d( x );\n* // returns 1\n*/\nfunction countFalsy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy4d( x );\n* // returns 1\n*/\nfunction countFalsy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy5d( x );\n* // returns 1\n*/\nfunction countFalsy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy6d( x );\n* // returns 1\n*/\nfunction countFalsy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy7d( x );\n* // returns 1\n*/\nfunction countFalsy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy8d( x );\n* // returns 1\n*/\nfunction countFalsy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy9d( x );\n* // returns 1\n*/\nfunction countFalsy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy10d( x );\n* // returns 1\n*/\nfunction countFalsy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy10d;\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* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 0.0, 0.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy0d( x );\n* // returns 1\n*/\nfunction countFalsy0d( x ) {\n\tif ( !( x.data[ x.offset ] || x.data[ x.offset+1 ] ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy0d;\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* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy1d( x );\n* // returns 1\n*/\nfunction countFalsy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy2d( x );\n* // returns 1\n*/\nfunction countFalsy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy3d( x );\n* // returns 1\n*/\nfunction countFalsy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy4d( x );\n* // returns 1\n*/\nfunction countFalsy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy5d( x );\n* // returns 1\n*/\nfunction countFalsy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy6d( x );\n* // returns 1\n*/\nfunction countFalsy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy7d( x );\n* // returns 1\n*/\nfunction countFalsy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy8d( x );\n* // returns 1\n*/\nfunction countFalsy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy9d( x );\n* // returns 1\n*/\nfunction countFalsy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy10d( x );\n* // returns 1\n*/\nfunction countFalsy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy2d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy3d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy4d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy5d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy6d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy7d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy8d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy9d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy10d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy2d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy3d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy4d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy5d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy6d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy7d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy8d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy9d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy10d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy2d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy3d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy4d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy5d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy6d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy7d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy8d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy9d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy10d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIfnd( x, predicate );\n* // returns 3\n*/\nfunction countIfnd( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIfnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIfnd( x, predicate );\n* // returns 3\n*/\nfunction countIfnd( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIfnd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorcount2d from './2d_blocked_accessors.js';\nimport blockedaccessorcount3d from './3d_blocked_accessors.js';\nimport blockedaccessorcount4d from './4d_blocked_accessors.js';\nimport blockedaccessorcount5d from './5d_blocked_accessors.js';\nimport blockedaccessorcount6d from './6d_blocked_accessors.js';\nimport blockedaccessorcount7d from './7d_blocked_accessors.js';\nimport blockedaccessorcount8d from './8d_blocked_accessors.js';\nimport blockedaccessorcount9d from './9d_blocked_accessors.js';\nimport blockedaccessorcount10d from './10d_blocked_accessors.js';\nimport blockedcount2d from './2d_blocked.js';\nimport blockedcount3d from './3d_blocked.js';\nimport blockedcount4d from './4d_blocked.js';\nimport blockedcount5d from './5d_blocked.js';\nimport blockedcount6d from './6d_blocked.js';\nimport blockedcount7d from './7d_blocked.js';\nimport blockedcount8d from './8d_blocked.js';\nimport blockedcount9d from './9d_blocked.js';\nimport blockedcount10d from './10d_blocked.js';\nimport accessorcount0d from './0d_accessors.js';\nimport accessorcount1d from './1d_accessors.js';\nimport accessorcount2d from './2d_accessors.js';\nimport accessorcount3d from './3d_accessors.js';\nimport accessorcount4d from './4d_accessors.js';\nimport accessorcount5d from './5d_accessors.js';\nimport accessorcount6d from './6d_accessors.js';\nimport accessorcount7d from './7d_accessors.js';\nimport accessorcount8d from './8d_accessors.js';\nimport accessorcount9d from './9d_accessors.js';\nimport accessorcount10d from './10d_accessors.js';\nimport accessorcountnd from './nd_accessors.js';\nimport count0d from './0d.js';\nimport count1d from './1d.js';\nimport count2d from './2d.js';\nimport count3d from './3d.js';\nimport count4d from './4d.js';\nimport count5d from './5d.js';\nimport count6d from './6d.js';\nimport count7d from './7d.js';\nimport count8d from './8d.js';\nimport count9d from './9d.js';\nimport count10d from './10d.js';\nimport countnd from './nd.js';\n\n\n// VARIABLES //\n\nvar COUNT = [\n\tcount0d,\n\tcount1d,\n\tcount2d,\n\tcount3d,\n\tcount4d,\n\tcount5d,\n\tcount6d,\n\tcount7d,\n\tcount8d,\n\tcount9d,\n\tcount10d\n];\nvar ACCESSOR_COUNT = [\n\taccessorcount0d,\n\taccessorcount1d,\n\taccessorcount2d,\n\taccessorcount3d,\n\taccessorcount4d,\n\taccessorcount5d,\n\taccessorcount6d,\n\taccessorcount7d,\n\taccessorcount8d,\n\taccessorcount9d,\n\taccessorcount10d\n];\nvar BLOCKED_COUNT = [\n\tblockedcount2d, // 0\n\tblockedcount3d,\n\tblockedcount4d,\n\tblockedcount5d,\n\tblockedcount6d,\n\tblockedcount7d,\n\tblockedcount8d,\n\tblockedcount9d,\n\tblockedcount10d // 8\n];\nvar BLOCKED_ACCESSOR_COUNT = [\n\tblockedaccessorcount2d, // 0\n\tblockedaccessorcount3d,\n\tblockedaccessorcount4d,\n\tblockedaccessorcount5d,\n\tblockedaccessorcount6d,\n\tblockedaccessorcount7d,\n\tblockedaccessorcount8d,\n\tblockedaccessorcount9d,\n\tblockedaccessorcount10d // 8\n];\nvar MAX_DIMS = COUNT.length - 1;\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf( [ x ], predicate );\n* // returns 5\n*/\nfunction countIf( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn COUNT[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn 0;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn COUNT[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_COUNT[ ndims-2 ]( x, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_COUNT[ ndims-2 ]( x, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorcountnd( x, predicate, thisArg );\n\t}\n\treturn countnd( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default countIf;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf0d( x, predicate );\n* // returns 1\n*/\nfunction countIf0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countIf0d;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf1d( x, predicate );\n* // returns 3\n*/\nfunction countIf1d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf2d( x, predicate );\n* // returns 3\n*/\nfunction countIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf3d( x, predicate );\n* // returns 5\n*/\nfunction countIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf4d( x, predicate );\n* // returns 5\n*/\nfunction countIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf5d( x, predicate );\n* // returns 5\n*/\nfunction countIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf6d( x, predicate );\n* // returns 5\n*/\nfunction countIf6d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf7d( x, predicate );\n* // returns 5\n*/\nfunction countIf7d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf8d( x, predicate );\n* // returns 5\n*/\nfunction countIf8d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf9d( x, predicate );\n* // returns 5\n*/\nfunction countIf9d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf10d( x, predicate );\n* // returns 5\n*/\nfunction countIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf10d;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf0d( x, predicate );\n* // returns 1\n*/\nfunction countIf0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countIf0d;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf1d( x, predicate );\n* // returns 3\n*/\nfunction countIf1d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf2d( x, predicate );\n* // returns 3\n*/\nfunction countIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf3d( x, predicate );\n* // returns 7\n*/\nfunction countIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf4d( x, predicate );\n* // returns 7\n*/\nfunction countIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf5d( x, predicate );\n* // returns 7\n*/\nfunction countIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf6d( x, predicate );\n* // returns 7\n*/\nfunction countIf6d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf7d( x, predicate );\n* // returns 7\n*/\nfunction countIf7d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf8d( x, predicate );\n* // returns 7\n*/\nfunction countIf8d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf9d( x, predicate );\n* // returns 7\n*/\nfunction countIf9d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf10d( x, predicate );\n* // returns 7\n*/\nfunction countIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf2d( x, predicate );\n* // returns 3\n*/\nfunction blockedCountIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf3d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf4d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf5d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf6d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf7d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf8d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf9d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf10d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf2d( x, predicate );\n* // returns 3\n*/\nfunction blockedCountIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf3d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf4d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf5d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf6d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf7d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf8d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf9d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf10d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthynd( x );\n* // returns 4\n*/\nfunction countTruthynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthynd( x );\n* // returns 4\n*/\nfunction countTruthynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthynd( x );\n* // returns 4\n*/\nfunction countTruthynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorcount2d from './2d_blocked_accessors.js';\nimport blockedaccessorcount3d from './3d_blocked_accessors.js';\nimport blockedaccessorcount4d from './4d_blocked_accessors.js';\nimport blockedaccessorcount5d from './5d_blocked_accessors.js';\nimport blockedaccessorcount6d from './6d_blocked_accessors.js';\nimport blockedaccessorcount7d from './7d_blocked_accessors.js';\nimport blockedaccessorcount8d from './8d_blocked_accessors.js';\nimport blockedaccessorcount9d from './9d_blocked_accessors.js';\nimport blockedaccessorcount10d from './10d_blocked_accessors.js';\nimport blockedcomplexcount2d from './2d_blocked_complex.js';\nimport blockedcomplexcount3d from './3d_blocked_complex.js';\nimport blockedcomplexcount4d from './4d_blocked_complex.js';\nimport blockedcomplexcount5d from './5d_blocked_complex.js';\nimport blockedcomplexcount6d from './6d_blocked_complex.js';\nimport blockedcomplexcount7d from './7d_blocked_complex.js';\nimport blockedcomplexcount8d from './8d_blocked_complex.js';\nimport blockedcomplexcount9d from './9d_blocked_complex.js';\nimport blockedcomplexcount10d from './10d_blocked_complex.js';\nimport blockedcount2d from './2d_blocked.js';\nimport blockedcount3d from './3d_blocked.js';\nimport blockedcount4d from './4d_blocked.js';\nimport blockedcount5d from './5d_blocked.js';\nimport blockedcount6d from './6d_blocked.js';\nimport blockedcount7d from './7d_blocked.js';\nimport blockedcount8d from './8d_blocked.js';\nimport blockedcount9d from './9d_blocked.js';\nimport blockedcount10d from './10d_blocked.js';\nimport accessorcount0d from './0d_accessors.js';\nimport accessorcount1d from './1d_accessors.js';\nimport accessorcount2d from './2d_accessors.js';\nimport accessorcount3d from './3d_accessors.js';\nimport accessorcount4d from './4d_accessors.js';\nimport accessorcount5d from './5d_accessors.js';\nimport accessorcount6d from './6d_accessors.js';\nimport accessorcount7d from './7d_accessors.js';\nimport accessorcount8d from './8d_accessors.js';\nimport accessorcount9d from './9d_accessors.js';\nimport accessorcount10d from './10d_accessors.js';\nimport accessorcountnd from './nd_accessors.js';\nimport complexcount0d from './0d_complex.js';\nimport complexcount1d from './1d_complex.js';\nimport complexcount2d from './2d_complex.js';\nimport complexcount3d from './3d_complex.js';\nimport complexcount4d from './4d_complex.js';\nimport complexcount5d from './5d_complex.js';\nimport complexcount6d from './6d_complex.js';\nimport complexcount7d from './7d_complex.js';\nimport complexcount8d from './8d_complex.js';\nimport complexcount9d from './9d_complex.js';\nimport complexcount10d from './10d_complex.js';\nimport complexcountnd from './nd_complex.js';\nimport count0d from './0d.js';\nimport count1d from './1d.js';\nimport count2d from './2d.js';\nimport count3d from './3d.js';\nimport count4d from './4d.js';\nimport count5d from './5d.js';\nimport count6d from './6d.js';\nimport count7d from './7d.js';\nimport count8d from './8d.js';\nimport count9d from './9d.js';\nimport count10d from './10d.js';\nimport countnd from './nd.js';\n\n\n// VARIABLES //\n\nvar COUNT = [\n\tcount0d,\n\tcount1d,\n\tcount2d,\n\tcount3d,\n\tcount4d,\n\tcount5d,\n\tcount6d,\n\tcount7d,\n\tcount8d,\n\tcount9d,\n\tcount10d\n];\nvar ACCESSOR_COUNT = [\n\taccessorcount0d,\n\taccessorcount1d,\n\taccessorcount2d,\n\taccessorcount3d,\n\taccessorcount4d,\n\taccessorcount5d,\n\taccessorcount6d,\n\taccessorcount7d,\n\taccessorcount8d,\n\taccessorcount9d,\n\taccessorcount10d\n];\nvar COMPLEX_COUNT = [\n\tcomplexcount0d,\n\tcomplexcount1d,\n\tcomplexcount2d,\n\tcomplexcount3d,\n\tcomplexcount4d,\n\tcomplexcount5d,\n\tcomplexcount6d,\n\tcomplexcount7d,\n\tcomplexcount8d,\n\tcomplexcount9d,\n\tcomplexcount10d\n];\nvar BLOCKED_COUNT = [\n\tblockedcount2d, // 0\n\tblockedcount3d,\n\tblockedcount4d,\n\tblockedcount5d,\n\tblockedcount6d,\n\tblockedcount7d,\n\tblockedcount8d,\n\tblockedcount9d,\n\tblockedcount10d // 8\n];\nvar BLOCKED_ACCESSOR_COUNT = [\n\tblockedaccessorcount2d, // 0\n\tblockedaccessorcount3d,\n\tblockedaccessorcount4d,\n\tblockedaccessorcount5d,\n\tblockedaccessorcount6d,\n\tblockedaccessorcount7d,\n\tblockedaccessorcount8d,\n\tblockedaccessorcount9d,\n\tblockedaccessorcount10d // 8\n];\nvar BLOCKED_COMPLEX_COUNT = [\n\tblockedcomplexcount2d, // 0\n\tblockedcomplexcount3d,\n\tblockedcomplexcount4d,\n\tblockedcomplexcount5d,\n\tblockedcomplexcount6d,\n\tblockedcomplexcount7d,\n\tblockedcomplexcount8d,\n\tblockedcomplexcount9d,\n\tblockedcomplexcount10d // 8\n];\nvar MAX_DIMS = COUNT.length - 1;\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy( [ x ] );\n* // returns 6\n*/\nfunction countTruthy( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn 0;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t}\n\t\treturn COUNT[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_COUNT[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorcountnd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexcountnd( x );\n\t}\n\treturn countnd( x );\n}\n\n\n// EXPORTS //\n\nexport default countTruthy;\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\nimport dtypeStrings from '@stdlib/ndarray-base-dtype-strings';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\nimport objectAssign from '@stdlib/object-assign';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Creates an object mapping supported data type strings to data type objects.\n*\n* @private\n* @returns {Object} object mapping supported data type strings to data type objects\n*/\nfunction createTable() {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tdt = dtypeStrings();\n\n\tout = {};\n\tfor ( i = 0; i < dt.length; i++ ) {\n\t\tout[ dt[ i ] ] = new DataType( dt[ i ] );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to data type objects.\n*\n* @returns {Object} object mapping supported data type strings to data type objects\n*\n* @example\n* var table = dtypeObjects();\n* // returns {...}\n*/\nfunction dtypeObjects() {\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = createTable(); // lazily create the table\n\t}\n\treturn objectAssign( {}, TABLE );\n}\n\n\n// EXPORTS //\n\nexport default dtypeObjects;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy0d( x );\n* // returns 1\n*/\nfunction countTruthy0d( x ) {\n\tif ( x.data[ x.offset ] ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy0d;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy1d( x );\n* // returns 4\n*/\nfunction countTruthy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy2d( x );\n* // returns 4\n*/\nfunction countTruthy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy3d( x );\n* // returns 6\n*/\nfunction countTruthy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy4d( x );\n* // returns 6\n*/\nfunction countTruthy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy5d( x );\n* // returns 6\n*/\nfunction countTruthy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy6d( x );\n* // returns 6\n*/\nfunction countTruthy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy7d( x );\n* // returns 6\n*/\nfunction countTruthy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy8d( x );\n* // returns 6\n*/\nfunction countTruthy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy9d( x );\n* // returns 6\n*/\nfunction countTruthy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy10d( x );\n* // returns 6\n*/\nfunction countTruthy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy10d;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy0d( x );\n* // returns 1\n*/\nfunction countTruthy0d( x ) {\n\tif ( x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy0d;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy1d( x );\n* // returns 4\n*/\nfunction countTruthy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy2d( x );\n* // returns 4\n*/\nfunction countTruthy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy3d( x );\n* // returns 4\n*/\nfunction countTruthy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy4d( x );\n* // returns 4\n*/\nfunction countTruthy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy5d( x );\n* // returns 4\n*/\nfunction countTruthy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy6d( x );\n* // returns 4\n*/\nfunction countTruthy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy7d( x );\n* // returns 4\n*/\nfunction countTruthy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy8d( x );\n* // returns 4\n*/\nfunction countTruthy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy9d( x );\n* // returns 4\n*/\nfunction countTruthy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy10d( x );\n* // returns 4\n*/\nfunction countTruthy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy10d;\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* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy0d( x );\n* // returns 1\n*/\nfunction countTruthy0d( x ) {\n\tif ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy0d;\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* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy1d( x );\n* // returns 4\n*/\nfunction countTruthy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy2d( x );\n* // returns 4\n*/\nfunction countTruthy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy3d( x );\n* // returns 4\n*/\nfunction countTruthy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy4d( x );\n* // returns 4\n*/\nfunction countTruthy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy5d( x );\n* // returns 4\n*/\nfunction countTruthy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy6d( x );\n* // returns 4\n*/\nfunction countTruthy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy7d( x );\n* // returns 4\n*/\nfunction countTruthy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy8d( x );\n* // returns 4\n*/\nfunction countTruthy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy9d( x );\n* // returns 4\n*/\nfunction countTruthy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy10d( x );\n* // returns 4\n*/\nfunction countTruthy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy2d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy3d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy4d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy5d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy6d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy7d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy8d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy9d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy10d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy2d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy3d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy4d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy5d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy6d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy7d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy8d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy9d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy10d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy2d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy3d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy4d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy5d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy6d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy7d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy8d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy9d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy10d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Transforms a list of array argument data types into a list of signatures.\n*\n* @param {ArrayLikeObject} dtypes - list of array argument data types\n* @param {NonNegativeInteger} nin - number of input array arguments\n* @param {NonNegativeInteger} nout - number of output array arguments\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {RangeError} first argument must contain at least one element\n* @throws {RangeError} length of the first argument is incompatible with the second and third arguments\n* @returns {StringArray} list of signatures\n*\n* @example\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 1, 1 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\n*/\nfunction dtypes2signatures( dtypes, nin, nout ) {\n\tvar len;\n\tvar out;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar m;\n\n\tif ( !isArrayLikeObject( dtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', dtypes ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tlen = dtypes.length;\n\tif ( len === 0 ) {\n\t\tthrow new RangeError( 'invalid argument. First argument must contain at least one element.' );\n\t}\n\tN = nin + nout;\n\tif ( len%N !== 0 ) {\n\t\tthrow new RangeError( 'invalid arguments. Length of the first argument is incompatible with the second and third arguments.' );\n\t}\n\tout = [];\n\n\t// Create a temporary array for storing signatures...\n\ttmp = [];\n\n\t// [ '(', , ', ', ..., ') => (', , ', ', ..., ')' ] => 1+nin+nin-1+1+nout+nout-1+1 => 1 + (2*nin) + (2*nout) => 1 + (2*(nin+nout))\n\tM = 2 * N;\n\tm = 2 * nin;\n\tfor ( i = 0; i <= M; i++ ) {\n\t\tif ( i === 0 ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( '() => (' );\n\t\t\t} else {\n\t\t\t\ttmp.push( '(' );\n\t\t\t}\n\t\t} else if ( i === M ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( ') => ()' );\n\t\t\t} else {\n\t\t\t\ttmp.push( ')' );\n\t\t\t}\n\t\t} else if ( i === m ) {\n\t\t\ttmp.push( ') => (' );\n\t\t} else if ( i%2 === 1 ) {\n\t\t\ttmp.push( '' );\n\t\t} else {\n\t\t\ttmp.push( ', ' );\n\t\t}\n\t}\n\tfor ( i = 0; i < len; i++ ) {\n\t\tdt = resolve( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\tdt = dtypes[ i ];\n\t\t}\n\t\tm = i % N;\n\t\ttmp[ (2*m)+1 ] = dt;\n\t\tif ( m === N-1 ) {\n\t\t\tout.push( tmp.join( '' ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2signatures;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = everynd( x );\n* // returns true\n*/\nfunction everynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everynd( x );\n* // returns true\n*/\nfunction everynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everynd( x );\n* // returns true\n*/\nfunction everynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorevery2d from './2d_blocked_accessors.js';\nimport blockedaccessorevery3d from './3d_blocked_accessors.js';\nimport blockedaccessorevery4d from './4d_blocked_accessors.js';\nimport blockedaccessorevery5d from './5d_blocked_accessors.js';\nimport blockedaccessorevery6d from './6d_blocked_accessors.js';\nimport blockedaccessorevery7d from './7d_blocked_accessors.js';\nimport blockedaccessorevery8d from './8d_blocked_accessors.js';\nimport blockedaccessorevery9d from './9d_blocked_accessors.js';\nimport blockedaccessorevery10d from './10d_blocked_accessors.js';\nimport blockedcomplexevery2d from './2d_blocked_complex.js';\nimport blockedcomplexevery3d from './3d_blocked_complex.js';\nimport blockedcomplexevery4d from './4d_blocked_complex.js';\nimport blockedcomplexevery5d from './5d_blocked_complex.js';\nimport blockedcomplexevery6d from './6d_blocked_complex.js';\nimport blockedcomplexevery7d from './7d_blocked_complex.js';\nimport blockedcomplexevery8d from './8d_blocked_complex.js';\nimport blockedcomplexevery9d from './9d_blocked_complex.js';\nimport blockedcomplexevery10d from './10d_blocked_complex.js';\nimport blockedevery2d from './2d_blocked.js';\nimport blockedevery3d from './3d_blocked.js';\nimport blockedevery4d from './4d_blocked.js';\nimport blockedevery5d from './5d_blocked.js';\nimport blockedevery6d from './6d_blocked.js';\nimport blockedevery7d from './7d_blocked.js';\nimport blockedevery8d from './8d_blocked.js';\nimport blockedevery9d from './9d_blocked.js';\nimport blockedevery10d from './10d_blocked.js';\nimport accessorevery0d from './0d_accessors.js';\nimport accessorevery1d from './1d_accessors.js';\nimport accessorevery2d from './2d_accessors.js';\nimport accessorevery3d from './3d_accessors.js';\nimport accessorevery4d from './4d_accessors.js';\nimport accessorevery5d from './5d_accessors.js';\nimport accessorevery6d from './6d_accessors.js';\nimport accessorevery7d from './7d_accessors.js';\nimport accessorevery8d from './8d_accessors.js';\nimport accessorevery9d from './9d_accessors.js';\nimport accessorevery10d from './10d_accessors.js';\nimport accessoreverynd from './nd_accessors.js';\nimport complexevery0d from './0d_complex.js';\nimport complexevery1d from './1d_complex.js';\nimport complexevery2d from './2d_complex.js';\nimport complexevery3d from './3d_complex.js';\nimport complexevery4d from './4d_complex.js';\nimport complexevery5d from './5d_complex.js';\nimport complexevery6d from './6d_complex.js';\nimport complexevery7d from './7d_complex.js';\nimport complexevery8d from './8d_complex.js';\nimport complexevery9d from './9d_complex.js';\nimport complexevery10d from './10d_complex.js';\nimport complexeverynd from './nd_complex.js';\nimport every0d from './0d.js';\nimport every1d from './1d.js';\nimport every2d from './2d.js';\nimport every3d from './3d.js';\nimport every4d from './4d.js';\nimport every5d from './5d.js';\nimport every6d from './6d.js';\nimport every7d from './7d.js';\nimport every8d from './8d.js';\nimport every9d from './9d.js';\nimport every10d from './10d.js';\nimport everynd from './nd.js';\n\n\n// VARIABLES //\n\nvar EVERY = [\n\tevery0d,\n\tevery1d,\n\tevery2d,\n\tevery3d,\n\tevery4d,\n\tevery5d,\n\tevery6d,\n\tevery7d,\n\tevery8d,\n\tevery9d,\n\tevery10d\n];\nvar ACCESSOR_EVERY = [\n\taccessorevery0d,\n\taccessorevery1d,\n\taccessorevery2d,\n\taccessorevery3d,\n\taccessorevery4d,\n\taccessorevery5d,\n\taccessorevery6d,\n\taccessorevery7d,\n\taccessorevery8d,\n\taccessorevery9d,\n\taccessorevery10d\n];\nvar COMPLEX_EVERY = [\n\tcomplexevery0d,\n\tcomplexevery1d,\n\tcomplexevery2d,\n\tcomplexevery3d,\n\tcomplexevery4d,\n\tcomplexevery5d,\n\tcomplexevery6d,\n\tcomplexevery7d,\n\tcomplexevery8d,\n\tcomplexevery9d,\n\tcomplexevery10d\n];\nvar BLOCKED_EVERY = [\n\tblockedevery2d, // 0\n\tblockedevery3d,\n\tblockedevery4d,\n\tblockedevery5d,\n\tblockedevery6d,\n\tblockedevery7d,\n\tblockedevery8d,\n\tblockedevery9d,\n\tblockedevery10d // 8\n];\nvar BLOCKED_ACCESSOR_EVERY = [\n\tblockedaccessorevery2d, // 0\n\tblockedaccessorevery3d,\n\tblockedaccessorevery4d,\n\tblockedaccessorevery5d,\n\tblockedaccessorevery6d,\n\tblockedaccessorevery7d,\n\tblockedaccessorevery8d,\n\tblockedaccessorevery9d,\n\tblockedaccessorevery10d // 8\n];\nvar BLOCKED_COMPLEX_EVERY = [\n\tblockedcomplexevery2d, // 0\n\tblockedcomplexevery3d,\n\tblockedcomplexevery4d,\n\tblockedcomplexevery5d,\n\tblockedcomplexevery6d,\n\tblockedcomplexevery7d,\n\tblockedcomplexevery8d,\n\tblockedcomplexevery9d,\n\tblockedcomplexevery10d // 8\n];\nvar MAX_DIMS = EVERY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every( [ x ] );\n* // returns true\n*/\nfunction every( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_EVERY[ ndims ]( x );\n\t\t}\n\t\treturn EVERY[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn true;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_EVERY[ ndims ]( x );\n\t\t}\n\t\treturn EVERY[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_EVERY[ 1 ]( x );\n\t\t}\n\t\treturn EVERY[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_EVERY[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_EVERY[ 1 ]( x );\n\t\t\t}\n\t\t\treturn EVERY[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_EVERY[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_EVERY[ ndims ]( x );\n\t\t\t}\n\t\t\treturn EVERY[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_EVERY[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_EVERY[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_EVERY[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoreverynd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexeverynd( x );\n\t}\n\treturn everynd( x );\n}\n\n\n// EXPORTS //\n\nexport default every;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every0d( x );\n* // returns true\n*/\nfunction every0d( x ) {\n\tif ( x.data[ x.offset ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every1d( x );\n* // returns true\n*/\nfunction every1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every2d( x );\n* // returns true\n*/\nfunction every2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every3d( x );\n* // returns true\n*/\nfunction every3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every4d( x );\n* // returns true\n*/\nfunction every4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every5d( x );\n* // returns true\n*/\nfunction every5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every6d( x );\n* // returns true\n*/\nfunction every6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every7d( x );\n* // returns true\n*/\nfunction every7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every8d( x );\n* // returns true\n*/\nfunction every8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every9d( x );\n* // returns true\n*/\nfunction every9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every10d( x );\n* // returns true\n*/\nfunction every10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every0d( x );\n* // returns true\n*/\nfunction every0d( x ) {\n\tif ( x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every1d( x );\n* // returns true\n*/\nfunction every1d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every2d( x );\n* // returns true\n*/\nfunction every2d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every3d( x );\n* // returns true\n*/\nfunction every3d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every4d( x );\n* // returns true\n*/\nfunction every4d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every5d( x );\n* // returns true\n*/\nfunction every5d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every6d( x );\n* // returns true\n*/\nfunction every6d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every7d( x );\n* // returns true\n*/\nfunction every7d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every8d( x );\n* // returns true\n*/\nfunction every8d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every9d( x );\n* // returns true\n*/\nfunction every9d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every10d( x );\n* // returns true\n*/\nfunction every10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every0d( x );\n* // returns true\n*/\nfunction every0d( x ) {\n\tif ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every1d( x );\n* // returns true\n*/\nfunction every1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every2d( x );\n* // returns true\n*/\nfunction every2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every3d( x );\n* // returns true\n*/\nfunction every3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every4d( x );\n* // returns true\n*/\nfunction every4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every5d( x );\n* // returns true\n*/\nfunction every5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every6d( x );\n* // returns true\n*/\nfunction every6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every7d( x );\n* // returns true\n*/\nfunction every7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every8d( x );\n* // returns true\n*/\nfunction every8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every9d( x );\n* // returns true\n*/\nfunction every9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every10d( x );\n* // returns true\n*/\nfunction every10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x );\n* // returns true\n*/\nfunction blockedevery2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x );\n* // returns true\n*/\nfunction blockedevery3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x );\n* // returns true\n*/\nfunction blockedevery4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x );\n* // returns true\n*/\nfunction blockedevery5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x );\n* // returns true\n*/\nfunction blockedevery6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x );\n* // returns true\n*/\nfunction blockedevery7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x );\n* // returns true\n*/\nfunction blockedevery8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x );\n* // returns true\n*/\nfunction blockedevery9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x );\n* // returns true\n*/\nfunction blockedevery10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x );\n* // returns true\n*/\nfunction blockedevery2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x );\n* // returns true\n*/\nfunction blockedevery3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x );\n* // returns true\n*/\nfunction blockedevery4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x );\n* // returns true\n*/\nfunction blockedevery5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x );\n* // returns true\n*/\nfunction blockedevery6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x );\n* // returns true\n*/\nfunction blockedevery7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x );\n* // returns true\n*/\nfunction blockedevery8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x );\n* // returns true\n*/\nfunction blockedevery9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x );\n* // returns true\n*/\nfunction blockedevery10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x );\n* // returns true\n*/\nfunction blockedevery2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x );\n* // returns true\n*/\nfunction blockedevery3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x );\n* // returns true\n*/\nfunction blockedevery4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x );\n* // returns true\n*/\nfunction blockedevery5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x );\n* // returns true\n*/\nfunction blockedevery6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x );\n* // returns true\n*/\nfunction blockedevery7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x );\n* // returns true\n*/\nfunction blockedevery8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x );\n* // returns true\n*/\nfunction blockedevery9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x );\n* // returns true\n*/\nfunction blockedevery10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = everynd( x, predicate );\n* // returns true\n*/\nfunction everynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everynd( x, predicate );\n* // returns true\n*/\nfunction everynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( !predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorevery2d from './2d_blocked_accessors.js';\nimport blockedaccessorevery3d from './3d_blocked_accessors.js';\nimport blockedaccessorevery4d from './4d_blocked_accessors.js';\nimport blockedaccessorevery5d from './5d_blocked_accessors.js';\nimport blockedaccessorevery6d from './6d_blocked_accessors.js';\nimport blockedaccessorevery7d from './7d_blocked_accessors.js';\nimport blockedaccessorevery8d from './8d_blocked_accessors.js';\nimport blockedaccessorevery9d from './9d_blocked_accessors.js';\nimport blockedaccessorevery10d from './10d_blocked_accessors.js';\nimport blockedevery2d from './2d_blocked.js';\nimport blockedevery3d from './3d_blocked.js';\nimport blockedevery4d from './4d_blocked.js';\nimport blockedevery5d from './5d_blocked.js';\nimport blockedevery6d from './6d_blocked.js';\nimport blockedevery7d from './7d_blocked.js';\nimport blockedevery8d from './8d_blocked.js';\nimport blockedevery9d from './9d_blocked.js';\nimport blockedevery10d from './10d_blocked.js';\nimport accessorevery0d from './0d_accessors.js';\nimport accessorevery1d from './1d_accessors.js';\nimport accessorevery2d from './2d_accessors.js';\nimport accessorevery3d from './3d_accessors.js';\nimport accessorevery4d from './4d_accessors.js';\nimport accessorevery5d from './5d_accessors.js';\nimport accessorevery6d from './6d_accessors.js';\nimport accessorevery7d from './7d_accessors.js';\nimport accessorevery8d from './8d_accessors.js';\nimport accessorevery9d from './9d_accessors.js';\nimport accessorevery10d from './10d_accessors.js';\nimport accessoreverynd from './nd_accessors.js';\nimport every0d from './0d.js';\nimport every1d from './1d.js';\nimport every2d from './2d.js';\nimport every3d from './3d.js';\nimport every4d from './4d.js';\nimport every5d from './5d.js';\nimport every6d from './6d.js';\nimport every7d from './7d.js';\nimport every8d from './8d.js';\nimport every9d from './9d.js';\nimport every10d from './10d.js';\nimport everynd from './nd.js';\n\n\n// VARIABLES //\n\nvar EVERY = [\n\tevery0d,\n\tevery1d,\n\tevery2d,\n\tevery3d,\n\tevery4d,\n\tevery5d,\n\tevery6d,\n\tevery7d,\n\tevery8d,\n\tevery9d,\n\tevery10d\n];\nvar ACCESSOR_EVERY = [\n\taccessorevery0d,\n\taccessorevery1d,\n\taccessorevery2d,\n\taccessorevery3d,\n\taccessorevery4d,\n\taccessorevery5d,\n\taccessorevery6d,\n\taccessorevery7d,\n\taccessorevery8d,\n\taccessorevery9d,\n\taccessorevery10d\n];\nvar BLOCKED_EVERY = [\n\tblockedevery2d, // 0\n\tblockedevery3d,\n\tblockedevery4d,\n\tblockedevery5d,\n\tblockedevery6d,\n\tblockedevery7d,\n\tblockedevery8d,\n\tblockedevery9d,\n\tblockedevery10d // 8\n];\nvar BLOCKED_ACCESSOR_EVERY = [\n\tblockedaccessorevery2d, // 0\n\tblockedaccessorevery3d,\n\tblockedaccessorevery4d,\n\tblockedaccessorevery5d,\n\tblockedaccessorevery6d,\n\tblockedaccessorevery7d,\n\tblockedaccessorevery8d,\n\tblockedaccessorevery9d,\n\tblockedaccessorevery10d // 8\n];\nvar MAX_DIMS = EVERY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everyBy( [ x ], predicate );\n* // returns true\n*/\nfunction everyBy( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn EVERY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn true;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn EVERY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_EVERY[ ndims-2 ]( x, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_EVERY[ ndims-2 ]( x, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoreverynd( x, predicate, thisArg );\n\t}\n\treturn everynd( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default everyBy;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every0d( x, predicate );\n* // returns true\n*/\nfunction every0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every1d( x, predicate );\n* // returns true\n*/\nfunction every1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every2d( x, predicate );\n* // returns true\n*/\nfunction every2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every3d( x, predicate );\n* // returns true\n*/\nfunction every3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every4d( x, predicate );\n* // returns true\n*/\nfunction every4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every5d( x, predicate );\n* // returns true\n*/\nfunction every5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every6d( x, predicate );\n* // returns true\n*/\nfunction every6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every7d( x, predicate );\n* // returns true\n*/\nfunction every7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every8d( x, predicate );\n* // returns true\n*/\nfunction every8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every9d( x, predicate );\n* // returns true\n*/\nfunction every9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every10d( x, predicate );\n* // returns true\n*/\nfunction every10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every0d( x, predicate );\n* // returns true\n*/\nfunction every0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every1d( x, predicate );\n* // returns true\n*/\nfunction every1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every2d( x, predicate );\n* // returns true\n*/\nfunction every2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every3d( x, predicate );\n* // returns true\n*/\nfunction every3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every4d( x, predicate );\n* // returns true\n*/\nfunction every4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every5d( x, predicate );\n* // returns true\n*/\nfunction every5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every6d( x, predicate );\n* // returns true\n*/\nfunction every6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every7d( x, predicate );\n* // returns true\n*/\nfunction every7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every8d( x, predicate );\n* // returns true\n*/\nfunction every8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every9d( x, predicate );\n* // returns true\n*/\nfunction every9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every10d( x, predicate );\n* // returns true\n*/\nfunction every10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x, predicate );\n* // returns true\n*/\nfunction blockedevery2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x, predicate );\n* // returns true\n*/\nfunction blockedevery3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x, predicate );\n* // returns true\n*/\nfunction blockedevery4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x, predicate );\n* // returns true\n*/\nfunction blockedevery5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x, predicate );\n* // returns true\n*/\nfunction blockedevery6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x, predicate );\n* // returns true\n*/\nfunction blockedevery7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x, predicate );\n* // returns true\n*/\nfunction blockedevery8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x, predicate );\n* // returns true\n*/\nfunction blockedevery9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x, predicate );\n* // returns true\n*/\nfunction blockedevery10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x, predicate );\n* // returns true\n*/\nfunction blockedevery2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x, predicate );\n* // returns true\n*/\nfunction blockedevery3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x, predicate );\n* // returns true\n*/\nfunction blockedevery4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x, predicate );\n* // returns true\n*/\nfunction blockedevery5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x, predicate );\n* // returns true\n*/\nfunction blockedevery6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x, predicate );\n* // returns true\n*/\nfunction blockedevery7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x, predicate );\n* // returns true\n*/\nfunction blockedevery8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x, predicate );\n* // returns true\n*/\nfunction blockedevery9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x, predicate );\n* // returns true\n*/\nfunction blockedevery10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isScalarMostlySafeCompatible from '@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible'; // eslint-disable-line id-length\nimport broadcastScalar from '@stdlib/ndarray-base-broadcast-scalar';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Fills an input ndarray with a specified value.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {*} value - scalar value\n* @throws {TypeError} second argument cannot be safely cast to the input array data type\n* @returns {ndarrayLike} input ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]\n*\n* var out = fill( x, 10.0 );\n* // returns [ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fill( x, value ) {\n\tvar dt;\n\tvar v;\n\n\tdt = getDType( x );\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isScalarMostlySafeCompatible( value, dt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. The second argument cannot be safely cast to the input array data type. Data type: %s. Value: `%s`.', dt, value ) );\n\t}\n\t// Broadcast the fill value to an ndarray of same shape and data type as the input ndarray:\n\tv = broadcastScalar( value, dt, getShape( x ), getOrder( x ) );\n\n\t// Assign the fill value to each element of the input ndarray:\n\tassign( [ v, x ] ); // TODO: consider replacing with ndarray/base/assign-scalar in order to avoid zero-dimensional ndarray creation and subsequent broadcasting\n\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default fill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an -dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* mapnd( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction mapnd( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), idx, x.ref ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default mapnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* mapnd( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction mapnd( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], idx, x.ref );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default mapnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport format from '@stdlib/string-format';\nimport blockedaccessormap2d from './2d_blocked_accessors.js';\nimport blockedaccessormap3d from './3d_blocked_accessors.js';\nimport blockedaccessormap4d from './4d_blocked_accessors.js';\nimport blockedaccessormap5d from './5d_blocked_accessors.js';\nimport blockedaccessormap6d from './6d_blocked_accessors.js';\nimport blockedaccessormap7d from './7d_blocked_accessors.js';\nimport blockedaccessormap8d from './8d_blocked_accessors.js';\nimport blockedaccessormap9d from './9d_blocked_accessors.js';\nimport blockedaccessormap10d from './10d_blocked_accessors.js';\nimport blockedmap2d from './2d_blocked.js';\nimport blockedmap3d from './3d_blocked.js';\nimport blockedmap4d from './4d_blocked.js';\nimport blockedmap5d from './5d_blocked.js';\nimport blockedmap6d from './6d_blocked.js';\nimport blockedmap7d from './7d_blocked.js';\nimport blockedmap8d from './8d_blocked.js';\nimport blockedmap9d from './9d_blocked.js';\nimport blockedmap10d from './10d_blocked.js';\nimport accessormap0d from './0d_accessors.js';\nimport accessormap1d from './1d_accessors.js';\nimport accessormap2d from './2d_accessors.js';\nimport accessormap3d from './3d_accessors.js';\nimport accessormap4d from './4d_accessors.js';\nimport accessormap5d from './5d_accessors.js';\nimport accessormap6d from './6d_accessors.js';\nimport accessormap7d from './7d_accessors.js';\nimport accessormap8d from './8d_accessors.js';\nimport accessormap9d from './9d_accessors.js';\nimport accessormap10d from './10d_accessors.js';\nimport accessormapnd from './nd_accessors.js';\nimport map0d from './0d.js';\nimport map1d from './1d.js';\nimport map2d from './2d.js';\nimport map3d from './3d.js';\nimport map4d from './4d.js';\nimport map5d from './5d.js';\nimport map6d from './6d.js';\nimport map7d from './7d.js';\nimport map8d from './8d.js';\nimport map9d from './9d.js';\nimport map10d from './10d.js';\nimport mapnd from './nd.js';\n\n\n// VARIABLES //\n\nvar MAP = [\n\tmap0d,\n\tmap1d,\n\tmap2d,\n\tmap3d,\n\tmap4d,\n\tmap5d,\n\tmap6d,\n\tmap7d,\n\tmap8d,\n\tmap9d,\n\tmap10d\n];\nvar ACCESSOR_MAP = [\n\taccessormap0d,\n\taccessormap1d,\n\taccessormap2d,\n\taccessormap3d,\n\taccessormap4d,\n\taccessormap5d,\n\taccessormap6d,\n\taccessormap7d,\n\taccessormap8d,\n\taccessormap9d,\n\taccessormap10d\n];\nvar BLOCKED_MAP = [\n\tblockedmap2d, // 0\n\tblockedmap3d,\n\tblockedmap4d,\n\tblockedmap5d,\n\tblockedmap6d,\n\tblockedmap7d,\n\tblockedmap8d,\n\tblockedmap9d,\n\tblockedmap10d // 8\n];\nvar BLOCKED_ACCESSOR_MAP = [\n\tblockedaccessormap2d, // 0\n\tblockedaccessormap3d,\n\tblockedaccessormap4d,\n\tblockedaccessormap5d,\n\tblockedaccessormap6d,\n\tblockedaccessormap7d,\n\tblockedaccessormap8d,\n\tblockedaccessormap9d,\n\tblockedaccessormap10d // 8\n];\nvar MAX_DIMS = MAP.length -1;\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - callback function\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map( arrays, fcn, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar d;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d.', ndims, shy.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_MAP[ ndims ]( x, y, fcn, thisArg );\n\t\t}\n\t\treturn MAP[ ndims ]( x, y, fcn, thisArg );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_MAP[ ndims ]( x, y, fcn, thisArg );\n\t\t}\n\t\treturn MAP[ ndims ]( x, y, fcn, thisArg );\n\t}\n\t// Determine iteration order:\n\tiox = iterationOrder( x.strides ); // +/-1\n\tioy = iterationOrder( y.strides ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( x.strides );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( y.strides ) ) {\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_MAP[ ndims ]( x, y, ord === 1, fcn, thisArg );\n\t\t\t}\n\t\t\treturn MAP[ ndims ]( x, y, ord === 1, fcn, thisArg );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_MAP[ ndims-2 ]( x, y, fcn, thisArg );\n\t\t}\n\t\treturn BLOCKED_MAP[ ndims-2 ]( x, y, fcn, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessormapnd( x, y, fcn, thisArg );\n\t}\n\tmapnd( x, y, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default map;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ){\n* return z * 10.0;\n* }\n*\n* // Create a data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* }\n*\n* // Apply function:\n* map0d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction map0d( x, y, fcn, thisArg ) {\n\ty.data[ y.offset ] = fcn.call( thisArg, x.data[ x.offset ], [], x.ref );\n}\n\n\n// EXPORTS //\n\nexport default map0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map1d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction map1d( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], [ i0 ], x.ref );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map2d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction map2d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for the outermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for outermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sx[0] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointer to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map3d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map3d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map4d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map4d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map5d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map5d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map6d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map6d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map7d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map7d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map8d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map8d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map9d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map9d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map10d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map10d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map0d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction map0d( x, y, fcn, thisArg ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default map0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map1d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map1d( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map2d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map2d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for the outermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for outermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sx[0] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointer to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map3d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map3d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar idx;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map4d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map4d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map5d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map5d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map6d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map6d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map7d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map7d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map8d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map8d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map9d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map9d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map10d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map10d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap2d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedmap2d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + (j0*sx[0]);\n\t\t\tiy = oy1 + (j0*sy[0]);\n\n\t\t\t// Compute the loop offset increments...\n\t\t\tdx1 = sx[1] - (s0*sx[0]);\n\t\t\tdy1 = sy[1] - (s0*sy[0]);\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap3d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap3d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap4d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap4d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\tS3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\tS3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\tS2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\tS2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\tS1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap5d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap5d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\tS4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\tS4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\tS3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\tS3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\tS2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap6d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap6d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\tS5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\tS5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\tS4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\tS4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\tS3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap7d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap7d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\tS6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\tS6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\tS5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\tS5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\tS4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap8d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap8d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\tS7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\tS7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\tS6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\tS6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\tS5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap9d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap9d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\tS8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\tS8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\tS7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\tS7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\tS6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap10d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap10d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\tS9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\tS9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\tS8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\tS8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( S8*sx[8] );\n\t\t\tdy9 = sy[9] - ( S8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\tS7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\tS6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap2d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap2d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar idx;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + (j0*sx[0]);\n\t\t\tiy = oy1 + (j0*sy[0]);\n\n\t\t\t// Compute the loop offset increments...\n\t\t\tdx1 = sx[1] - (s0*sx[0]);\n\t\t\tdy1 = sy[1] - (s0*sy[0]);\n\n\t\t\t// Cache accessors:\n\t\t\tget = x.accessors[0];\n\t\t\tset = y.accessors[1];\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap3d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap3d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar idx;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap4d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap4d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\tS3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\tS3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\tS2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\tS2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\tS1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t// Cache accessors:\n\t\t\t\t\tget = x.accessors[ 0 ];\n\t\t\t\t\tset = y.accessors[ 1 ];\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap5d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap5d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\tS4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\tS4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\tS3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\tS3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\tS2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap6d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap6d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar set;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\tS5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\tS5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\tS4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\tS4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\tS3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap7d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap7d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\tS6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\tS6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\tS5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\tS5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\tS4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap8d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap8d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\tS7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\tS7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\tS6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\tS6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\tS5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap9d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap9d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\tS8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\tS8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\tS7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\tS7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\tS6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap10d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap10d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\tS9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\tS9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\tS8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\tS8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( S8*sx[8] );\n\t\t\tdy9 = sy[9] - ( S8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\tS7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\tS6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = findnd( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction findnd( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tv = get( xbuf, ix );\n\t\tif ( predicate.call( thisArg, v, idx, x.ref ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default findnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = findnd( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction findnd( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\treturn xbuf[ ix ];\n\t\t}\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default findnd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport accessorfind0d from './0d_accessors.js';\nimport accessorfind1d from './1d_accessors.js';\nimport accessorfind2d from './2d_accessors.js';\nimport accessorfind3d from './3d_accessors.js';\nimport accessorfind4d from './4d_accessors.js';\nimport accessorfind5d from './5d_accessors.js';\nimport accessorfind6d from './6d_accessors.js';\nimport accessorfind7d from './7d_accessors.js';\nimport accessorfind8d from './8d_accessors.js';\nimport accessorfind9d from './9d_accessors.js';\nimport accessorfind10d from './10d_accessors.js';\nimport accessorfindnd from './nd_accessors.js';\nimport find0d from './0d.js';\nimport find1d from './1d.js';\nimport find2d from './2d.js';\nimport find3d from './3d.js';\nimport find4d from './4d.js';\nimport find5d from './5d.js';\nimport find6d from './6d.js';\nimport find7d from './7d.js';\nimport find8d from './8d.js';\nimport find9d from './9d.js';\nimport find10d from './10d.js';\nimport findnd from './nd.js';\n\n\n// VARIABLES //\n\nvar FIND = [\n\tfind0d,\n\tfind1d,\n\tfind2d,\n\tfind3d,\n\tfind4d,\n\tfind5d,\n\tfind6d,\n\tfind7d,\n\tfind8d,\n\tfind9d,\n\tfind10d\n];\nvar ACCESSOR_FIND = [\n\taccessorfind0d,\n\taccessorfind1d,\n\taccessorfind2d,\n\taccessorfind3d,\n\taccessorfind4d,\n\taccessorfind5d,\n\taccessorfind6d,\n\taccessorfind7d,\n\taccessorfind8d,\n\taccessorfind9d,\n\taccessorfind10d\n];\nvar MAX_DIMS = FIND.length - 1;\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray containing a sentinel value\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object containing a sentinel value:\n* var sentinelValue = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ NaN ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find( [ x, sentinelValue ], predicate );\n* // returns 2.0\n*/\nfunction find( arrays, predicate, thisArg ) { // eslint-disable-line stdlib/no-redeclare\n\tvar ndims;\n\tvar shx;\n\tvar sv;\n\tvar x;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tsv = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the sentinel value:\n\tsv = sv.accessors[ 0 ]( sv.data, sv.offset );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FIND[ ndims ]( x, sv, predicate, thisArg );\n\t\t}\n\t\treturn FIND[ ndims ]( x, sv, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn sv;\n\t}\n\t// Determine whether we can avoid linear view iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops; however, for mixed signed strides, iteration will not be cache-optimal, but we don't have much of a choice as loop tiling could lead to different results than cache-optimal iteration, so we just use normal nested loops for all iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FIND[ ndims ]( x, sv, predicate, thisArg );\n\t\t}\n\t\treturn FIND[ ndims ]( x, sv, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorfindnd( x, sv, predicate, thisArg );\n\t}\n\treturn findnd( x, sv, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default find;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find0d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find0d( x, sentinelValue, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn x.data[ x.offset ];\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find0d;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find1d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find1d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\treturn xbuf[ ix ];\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find2d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find2d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn xbuf[ ix ];\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find3d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find3d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find4d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find4d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find5d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find5d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find6d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find6d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find7d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find7d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find8d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find8d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find9d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find9d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find10d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find10d( x, sentinelValue, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find10d;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find0d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find0d( x, sentinelValue, predicate, thisArg ) {\n\tvar v = x.accessors[ 0 ]( x.data, x.offset );\n\tif ( predicate.call( thisArg, v, [], x.ref ) ) {\n\t\treturn v;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find0d;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find1d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find1d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = get( xbuf, ix );\n\t\tif ( predicate.call( thisArg, v, [ i0 ], x.ref ) ) {\n\t\t\treturn v;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find2d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find2d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = get( xbuf, ix );\n\t\t\tif ( predicate.call( thisArg, v, take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn v;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find3d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find3d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = get( xbuf, ix );\n\t\t\t\tif ( predicate.call( thisArg, v, take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find4d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find4d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn v;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find5d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find5d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find6d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find6d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find7d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find7d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find8d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find8d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find9d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find9d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find10d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find10d( x, sentinelValue, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find10d;\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\nimport min from '@stdlib/math-base-special-fast-min';\n\n\n// MAIN //\n\n/**\n* Flattens a shape to a specified depth and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} depth - maximum depth to flatten\n* @param {Collection} out - output object\n* @returns {Collection} array shape\n*\n* @example\n* var sh = [ 0, 0 ];\n*\n* var out = flattenShape( [ 3, 2 ], 1, sh );\n* // returns [ 6 ]\n*\n* var bool = ( out === sh );\n* // returns true\n*/\nfunction flattenShape( shape, depth, out ) {\n\tvar ndims;\n\tvar d;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tndims = shape.length;\n\td = min( ndims-1, depth );\n\ts = 1;\n\tj = 0;\n\tfor ( i = 0; i < ndims; i++ ) { // e.g., shape=[2,3,4,5], depth=2 => shape=[24,5]\n\t\tif ( i <= d ) {\n\t\t\ts *= shape[ i ];\n\t\t\tif ( i === d ) {\n\t\t\t\tout[ j ] = s;\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tout[ j ] = shape[ i ];\n\t\t\tj += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShape;\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\nimport min from '@stdlib/math-base-special-fast-min';\nimport max from '@stdlib/math-base-special-fast-max';\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Flattens a shape to a specified depth.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} depth - maximum depth to flatten\n* @returns {NonNegativeIntegerArray} flattened shape\n*\n* @example\n* var sh = flattenShape( [ 3, 2 ], 1 );\n* // returns [ 6 ]\n*\n* sh = flattenShape( [ 3, 2, 1 ], 1 );\n* // returns [ 6, 1 ]\n*\n* sh = flattenShape( [ 3 ], 0 );\n* // returns [ 3 ]\n*\n* sh = flattenShape( [ 3, 2 ], 0 );\n* // returns [ 3, 2 ]\n*\n* sh = flattenShape( [ 3 ], 1 );\n* // returns [ 3 ]\n*\n* sh = flattenShape( [], 1 );\n* // returns []\n*/\nfunction flattenShape( shape, depth ) {\n\tvar ndims = shape.length;\n\tvar out = zeros( ndims-max( min( ndims-1, depth ), 0 ) );\n\tassign( shape, depth, out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShape;\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* Flattens a shape starting from a specified dimension and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to start flattening from\n* @param {Collection} out - output object\n* @returns {Collection} array shape\n*\n* @example\n* var sh = [ 0, 0 ];\n*\n* var out = flattenShapeFrom( [ 3, 3, 2 ], 1, sh );\n* // returns [ 3, 6 ]\n*\n* var bool = ( out === sh );\n* // returns true\n*\n* @example\n* var sh = [ 0, 0 ];\n*\n* var out = flattenShapeFrom( [ 3, 3, 2 ], -2, sh );\n* // returns [ 3, 6 ]\n*\n* var bool = ( out === sh );\n* // returns true\n*/\nfunction flattenShapeFrom( shape, dim, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tndims = shape.length;\n\n\t// Normalize the dimension index...\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\tdim = 0;\n\t\t}\n\t}\n\ts = 1;\n\tj = 0;\n\tfor ( i = 0; i < ndims; i++ ) { // e.g., shape=[2,3,4,5], dim=2 => shape=[2,3,20]\n\t\tif ( i >= dim ) {\n\t\t\ts *= shape[ i ];\n\t\t\tif ( i === ndims-1 ) {\n\t\t\t\tout[ j ] = s;\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tout[ j ] = shape[ i ];\n\t\t\tj += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShapeFrom;\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\nimport min from '@stdlib/math-base-special-fast-min';\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Flattens a shape starting from a specified dimension.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to start flattening from\n* @returns {NonNegativeIntegerArray} flattened shape\n*\n* @example\n* var sh = flattenShapeFrom( [ 3, 3, 2 ], 1 );\n* // returns [ 3, 6 ]\n*\n* sh = flattenShapeFrom( [ 3, 2, 1 ], 1 );\n* // returns [ 3, 2 ]\n*\n* sh = flattenShapeFrom( [ 3 ], 0 );\n* // returns [ 3 ]\n*\n* sh = flattenShapeFrom( [ 3, 2 ], 0 );\n* // returns [ 6 ]\n*\n* sh = flattenShapeFrom( [], 0 );\n* // returns []\n*\n* @example\n* var sh = flattenShapeFrom( [ 3, 3, 2 ], -2 );\n* // returns [ 3, 6 ]\n*\n* sh = flattenShapeFrom( [ 3, 2, 1 ], -2 );\n* // returns [ 3, 2 ]\n*\n* sh = flattenShapeFrom( [ 3 ], -1 );\n* // returns [ 3 ]\n*\n* sh = flattenShapeFrom( [ 3, 2 ], -2 );\n* // returns [ 6 ]\n*\n* sh = flattenShapeFrom( [], -1 );\n* // returns []\n*/\nfunction flattenShapeFrom( shape, dim ) {\n\tvar ndims;\n\tvar out;\n\tvar d;\n\n\tndims = shape.length;\n\n\t// Normalize the dimension index...\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\tdim = 0;\n\t\t}\n\t}\n\td = min( ndims-1, dim );\n\tout = zeros( d+1 );\n\tassign( shape, d, out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShapeFrom;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is `null`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is null\n*\n* @example\n* var bool = isNull( null );\n* // returns true\n*\n* bool = isNull( true );\n* // returns false\n*/\nfunction isNull( value ) {\n\treturn value === null;\n}\n\n\n// EXPORTS //\n\nexport default isNull;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is `undefined`.\n*\n* ## Notes\n*\n* - In older browsers, `undefined` is a global which can be overridden. `void`, however, is an operator which **cannot** be overridden. Consequently, better to use `void` to check for `undefined`. See [Stack Overflow][1].\n*\n* [1]: http://stackoverflow.com/a/19369078/2225624\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is undefined\n*\n* @example\n* var bool = isUndefined( undefined );\n* // returns true\n*\n* bool = isUndefined( null );\n* // returns false\n*/\nfunction isUndefined( value ) {\n\treturn value === void 0;\n}\n\n\n// EXPORTS //\n\nexport default isUndefined;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isNull from '@stdlib/assert-is-null';\nimport isUndefined from '@stdlib/assert-is-undefined';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an input argument is valid.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether the argument is valid\n*\n* @example\n* var bool = isValid( 3 );\n* // returns true\n*\n* bool = isValid( null );\n* // returns true\n*\n* bool = isValid( void 0 );\n* // returns true\n*\n* bool = isValid( '3' );\n* // returns false\n*/\nfunction isValid( value ) {\n\treturn ( isInteger( value ) || isNull( value ) || isUndefined( value ) );\n}\n\n\n// MAIN //\n\n/**\n* Slice constructor.\n*\n* @constructor\n* @param {(integer|null|void)} [start] - starting index (inclusive)\n* @param {(integer|null|void)} stop - ending index (exclusive)\n* @param {(integer|null|void)} [step] - index increment\n* @throws {TypeError} first argument must be an integer, null, or undefined\n* @throws {TypeError} second argument must be an integer, null, or undefined\n* @throws {TypeError} third argument must be an integer, null, or undefined\n* @throws {RangeError} third argument cannot be zero\n* @returns {Slice} Slice instance\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var start = s.start;\n* // returns null\n*\n* var stop = s.stop;\n* // returns 10\n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*\n* var stop = s.stop;\n* // returns 10\n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*\n* var stop = s.stop;\n* // returns 10\n*\n* var step = s.step;\n* // returns 2\n*/\nfunction Slice() {\n\tvar nargs;\n\tvar start;\n\tvar stop;\n\tvar step;\n\n\tnargs = arguments.length;\n\tif ( nargs === 0 ) {\n\t\tstart = null;\n\t\tstop = null;\n\t\tstep = null;\n\t} else if ( nargs === 1 ) {\n\t\tstart = null;\n\t\tstop = arguments[ 0 ];\n\t\tstep = null;\n\t} else if ( nargs === 2 ) {\n\t\tstart = arguments[ 0 ];\n\t\tstop = arguments[ 1 ];\n\t\tstep = null;\n\t} else {\n\t\tstart = arguments[ 0 ];\n\t\tstop = arguments[ 1 ];\n\t\tstep = arguments[ 2 ];\n\t}\n\tif ( !( this instanceof Slice ) ) {\n\t\treturn new Slice( start, stop, step );\n\t}\n\tif ( !isValid( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer, null, or undefined. Value: `%s`.', start ) );\n\t}\n\tif ( !isValid( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer, null, or undefined. Value: `%s`.', stop ) );\n\t}\n\tif ( !isValid( step ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer, null, or undefined. Value: `%s`.', step ) );\n\t} else if ( step === 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument cannot be zero. Value: `%s`.', step ) );\n\t}\n\tthis._start = ( start === void 0 ) ? null : start;\n\tthis._stop = ( stop === void 0 ) ? null : stop;\n\tthis._step = ( step === void 0 ) ? null : step;\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Slice\n* @readonly\n* @type {string}\n* @default 'Slice'\n*\n* @example\n* var str = Slice.name;\n* // returns 'Slice'\n*/\nsetReadOnly( Slice, 'name', 'Slice' );\n\n/**\n* Returns the slice's starting index.\n*\n* @name start\n* @memberof Slice.prototype\n* @readonly\n* @type {(integer|null)}\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var start = s.start;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*/\nsetReadOnlyAccessor( Slice.prototype, 'start', function get() {\n\treturn this._start;\n});\n\n/**\n* Returns the slice's ending index.\n*\n* @name stop\n* @memberof Slice.prototype\n* @readonly\n* @type {(integer|null)}\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var stop = s.stop;\n* // returns 10\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var stop = s.stop;\n* // returns 10\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var stop = s.stop;\n* // returns 10\n*/\nsetReadOnlyAccessor( Slice.prototype, 'stop', function get() {\n\treturn this._stop;\n});\n\n/**\n* Returns the slice's index increment.\n*\n* @name step\n* @memberof Slice.prototype\n* @readonly\n* @type {(integer|null)}\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var step = s.step;\n* // returns 2\n*/\nsetReadOnlyAccessor( Slice.prototype, 'step', function get() {\n\treturn this._step;\n});\n\n/**\n* Serializes a slice to a string.\n*\n* @name toString\n* @memberof Slice.prototype\n* @type {Function}\n* @returns {string} serialized Slice\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var str = s.toString();\n* // returns 'Slice(null,10,null)'\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var str = s.toString();\n* // returns 'Slice(3,10,null)'\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var str = s.toString();\n* // returns 'Slice(3,10,2)'\n*/\nsetReadOnly( Slice.prototype, 'toString', function toString() {\n\treturn 'Slice('+this._start+','+this._stop+','+this.step+')';\n});\n\n/**\n* Serializes a slice as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Slice` instance.\n*\n* @name toJSON\n* @memberof Slice.prototype\n* @type {Function}\n* @returns {Object} serialized Slice\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var o = s.toJSON();\n* // returns { 'type': 'Slice', 'data': [ null, 10, null ] }\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var o = s.toJSON();\n* // returns { 'type': 'Slice', 'data': [ 3, 10, null ] }\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var o = s.toJSON();\n* // returns { 'type': 'Slice', 'data': [ 3, 10, 2 ] }\n*/\nsetReadOnly( Slice.prototype, 'toJSON', function toJSON() {\n\treturn {\n\t\t'type': 'Slice',\n\t\t'data': [\n\t\t\tthis._start,\n\t\t\tthis._stop,\n\t\t\tthis._step\n\t\t]\n\t};\n});\n\n\n// EXPORTS //\n\nexport default Slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isNull from '@stdlib/assert-is-null';\nimport isUndefined from '@stdlib/assert-is-undefined';\nimport isSlice from '@stdlib/assert-is-slice';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an input argument is valid.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether the argument is valid\n*\n* @example\n* var bool = isValid( 3 );\n* // returns true\n*\n* bool = isValid( null );\n* // returns true\n*\n* bool = isValid( void 0 );\n* // returns true\n*\n* bool = isValid( '3' );\n* // returns false\n*/\nfunction isValid( value ) {\n\treturn (\n\t\tisInteger( value ) ||\n\t\tisNull( value ) ||\n\t\tisUndefined( value ) ||\n\t\tisSlice( value )\n\t);\n}\n\n\n// MAIN //\n\n/**\n* Multi-slice constructor.\n*\n* @constructor\n* @param {...(Slice|integer|null)} slice - slice\n* @throws {TypeError} a provided argument must be either a Slice, integer, null, or undefined\n* @returns {MultiSlice} MultiSlice instance\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*/\nfunction MultiSlice() {\n\tvar nargs;\n\tvar proxy;\n\tvar args;\n\tvar v;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !( this instanceof MultiSlice ) ) {\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ] );\n\t\t}\n\t\tif ( nargs === 3 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ] ); // eslint-disable-line max-len\n\t\t}\n\t\tif ( nargs === 4 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ], arguments[ 3 ] ); // eslint-disable-line max-len\n\t\t}\n\t\tif ( nargs === 5 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ], arguments[ 3 ], arguments[ 4 ] ); // eslint-disable-line max-len\n\t\t}\n\t\targs = [];\n\t\tfor ( i = 0; i < nargs; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\t// Use a workaround for being unable to combine `.apply` with the `new` operator:\n\t\tproxy = Object.create( MultiSlice.prototype );\n\t\treturn MultiSlice.apply( proxy, args );\n\t}\n\tthis._data = [];\n\tfor ( i = 0; i < nargs; i++ ) {\n\t\tv = arguments[ i ];\n\t\tif ( !isValid( v ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Provided arguments must be either a Slice, integer, null, or undefined. Argument: `%d`. Value: `%s`.', i, String( v ) ) );\n\t\t}\n\t\tthis._data.push( ( v === void 0 ) ? null : v );\n\t}\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof MultiSlice\n* @readonly\n* @type {string}\n* @default 'MultiSlice'\n*\n* @example\n* var str = MultiSlice.name;\n* // returns 'MultiSlice'\n*/\nsetReadOnly( MultiSlice, 'name', 'MultiSlice' );\n\n/**\n* Returns the number of slice dimensions.\n*\n* @name ndims\n* @memberof MultiSlice.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var ndims = ms.ndims;\n* // returns 4\n*/\nsetReadOnlyAccessor( MultiSlice.prototype, 'ndims', function get() {\n\treturn this._data.length;\n});\n\n/**\n* Returns multi-slice data.\n*\n* @name data\n* @memberof MultiSlice.prototype\n* @readonly\n* @type {Array}\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var data = ms.data;\n* // returns [...]\n*\n* var v = data[ 0 ];\n* // returns null\n*\n* v = data[ 1 ];\n* // returns \n*\n* v = data[ 2 ];\n* // returns \n*\n* v = data[ 3 ];\n* // returns 2\n*/\nsetReadOnlyAccessor( MultiSlice.prototype, 'data', function get() {\n\treturn this._data.slice();\n});\n\n/**\n* Serializes a multi-slice to a string.\n*\n* @name toString\n* @memberof MultiSlice.prototype\n* @type {Function}\n* @returns {string} serialized MultiSlice\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var str = ms.toString();\n* // returns 'MultiSlice(null,Slice(0,10,1),Slice(2,12,2),2)'\n*/\nsetReadOnly( MultiSlice.prototype, 'toString', function toString() {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tdata = this._data;\n\tout = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.push( String( data[ i ] ) );\n\t}\n\treturn 'MultiSlice('+out.join( ',' )+')';\n});\n\n/**\n* Serializes a multi-slice as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `MultiSlice` instance.\n*\n* @name toJSON\n* @memberof MultiSlice.prototype\n* @type {Function}\n* @returns {Object} serialized MultiSlice\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var o = ms.toJSON();\n* // returns { 'type': 'MultiSlice', 'data': [ null, { 'type': 'Slice', 'data': [ 0, 10, 1 ] }, { 'type': 'Slice', 'data': [ 2, 12, 2 ] }, 2 ] }\n*/\nsetReadOnly( MultiSlice.prototype, 'toJSON', function toJSON() {\n\tvar data;\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tdata = this._data;\n\tout = {\n\t\t'type': 'MultiSlice',\n\t\t'data': []\n\t};\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tv = data[ i ];\n\t\tout.data.push( ( v && typeof v.toJSON === 'function' ) ? v.toJSON() : v );\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default MultiSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Slice from '@stdlib/slice-ctor';\nimport constructorName from '@stdlib/utils-constructor-name';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Slice object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a Slice object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = new Slice( 0, 10, 2 );\n*\n* var bool = isSlice( s );\n* // returns true\n*/\nfunction isSlice( value ) {\n\treturn (\n\t\tvalue instanceof Slice ||\n\t\tconstructorName( value ) === 'Slice'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport MultiSlice from '@stdlib/slice-multi';\n\n\n// MAIN //\n\n/**\n* Creates a MultiSlice object from a list of MultiSlice constructor arguments.\n*\n* @param {(Slice|integer|null|void)} args - constructor arguments\n* @returns {MultiSlice} MultiSlice object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ void 0, new Slice( 0, 10, 1 ) ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ null, ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ new Slice( 0, 10, 1 ), void 0 ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ , null ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ new Slice( 0, 10, 1 ), void 0, void 0, new Slice( 0, 10, 1 ) ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ , null, null, ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ void 0, new Slice( 0, 10, 1 ), null, void 0, new Slice( 2, 9, 2 ), null, void 0 ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ null, , null, null, , null, null ]\n*/\nfunction args2multislice( args ) {\n\tswitch ( args.length ) {\n\tcase 0:\n\t\treturn new MultiSlice();\n\tcase 1:\n\t\treturn new MultiSlice( args[ 0 ] );\n\tcase 2:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ] );\n\tcase 3:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ] );\n\tcase 4:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ] );\n\tcase 5:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ] );\n\tcase 6:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ] );\n\tcase 7:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ] );\n\tcase 8:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ], args[ 7 ] );\n\tcase 9:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ], args[ 7 ], args[ 8 ] );\n\tcase 10:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ], args[ 7 ], args[ 8 ], args[ 9 ] );\n\tdefault:\n\t\treturn MultiSlice.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default args2multislice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport normalizeSlice from '@stdlib/slice-base-normalize-slice';\nimport int2slice from '@stdlib/slice-base-int2slice';\n\n\n// FUNCTIONS //\n\n/**\n* Normalizes an individual MultiSlice element.\n*\n* @private\n* @param {(Slice|integer|null)} value - input slice\n* @param {NonNegativeInteger} len - maximum number of elements which are allowed in a slice\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {Slice} slice object\n*/\nfunction normalize( value, len, strict ) {\n\t// Case: null\n\tif ( value === null ) {\n\t\t// Create a slice with default extents and a default increment:\n\t\treturn new Slice( 0, len, 1 );\n\t}\n\t// Case: integer\n\tif ( typeof value === 'number' ) {\n\t\treturn int2slice( value, len, strict );\n\t}\n\t// Case: slice\n\treturn normalizeSlice( value, len, strict );\n}\n\n\n// MAIN //\n\n/**\n* Returns a normalized MultiSlice object.\n*\n* @param {MultiSlice} slice - input slice\n* @param {NonNegativeIntegerArray} shape - maximum allowed slice shape\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {(MultiSlice|ErrorObject)} multi-slice object or an error object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n*\n* var shape = [ 10, 10, 10 ];\n*\n* var s1 = new MultiSlice( new Slice( 2, null, 2 ), null, -4 );\n* var s2 = normalizeMultiSlice( s1, shape, false );\n* // returns \n*\n* var d = s2.data;\n* // returns [ , , ]\n*\n* var v = d[ 0 ];\n* // returns \n*\n* var start = v.start;\n* // returns 2\n*\n* var stop = v.stop;\n* // returns 10\n*\n* var step = v.step;\n* // returns 2\n*\n* v = d[ 1 ];\n* // returns \n*\n* start = v.start;\n* // returns 0\n*\n* stop = v.stop;\n* // returns 10\n*\n* step = v.step;\n* // returns 1\n*\n* v = d[ 2 ];\n* // returns \n*\n* start = v.start;\n* // returns 6\n*\n* stop = v.stop;\n* // returns 7\n*\n* step = v.step;\n* // returns 1\n*/\nfunction normalizeMultiSlice( slice, shape, strict ) {\n\tvar data;\n\tvar args;\n\tvar s;\n\tvar i;\n\n\tdata = slice.data;\n\targs = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\ts = normalize( data[ i ], shape[ i ], strict );\n\t\tif ( s.code !== void 0 ) {\n\t\t\treturn s;\n\t\t}\n\t\targs.push( s );\n\t}\n\n\t// Return a normalized slice:\n\treturn args2multislice( args );\n}\n\n\n// EXPORTS //\n\nexport default normalizeMultiSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Slice from '@stdlib/slice-ctor';\nimport eOutOfBounds from './error_out_of_bounds.js';\n\n\n// MAIN //\n\n/**\n* Converts an integer to a Slice object.\n*\n* @param {integer} value - input value\n* @param {NonNegativeInteger} max - index upper bound\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {(Slice|Object)} Slice object or an error object\n*\n* @example\n* var s = int2slice( -4, 10, false );\n* // returns \n*\n* var start = s.start;\n* // returns 6\n*\n* var stop = s.stop;\n* // returns 7\n*\n* var step = s.step;\n* // returns 1\n*/\nfunction int2slice( value, max, strict ) {\n\t// If a value exceeds the last possible index, create an \"empty\" slice...\n\tif ( value >= max ) {\n\t\tif ( strict ) {\n\t\t\treturn eOutOfBounds();\n\t\t}\n\t\treturn new Slice( max, max, 1 );\n\t}\n\t// Check whether we need to resolve a slice relative to the last possible index...\n\tif ( value < 0 ) {\n\t\tvalue = max + value;\n\n\t\t// If a value exceeds the first index, create an \"empty\" slice...\n\t\tif ( value < 0 ) {\n\t\t\tif ( strict ) {\n\t\t\t\treturn eOutOfBounds();\n\t\t\t}\n\t\t\treturn new Slice( 0, 0, 1 );\n\t\t}\n\t\treturn new Slice( value, value+1, 1 ); // e.g., Slice( 2, 3, 1 ), which is the slice equivalent of only selecting the second row\n\t}\n\t// 0 <= s < N\n\treturn new Slice( value, value+1, 1 );\n}\n\n\n// EXPORTS //\n\nexport default int2slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an error object for a slice which exceeds index bounds.\n*\n* @private\n* @returns {Object} error object\n*/\nfunction error() {\n\treturn {\n\t\t'code': 'ERR_SLICE_OUT_OF_BOUNDS'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default error;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Slice from '@stdlib/slice-ctor';\nimport eOutOfBounds from './error_out_of_bounds.js';\n\n\n// MAIN //\n\n/**\n* Returns a normalized Slice object.\n*\n* @param {Slice} slice - input slice\n* @param {NonNegativeInteger} len - maximum number of elements allowed in a slice\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {(Slice|ErrorObject)} slice object or an error object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice(), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 0\n*\n* v = s.stop;\n* // returns 10\n*\n* v = s.step;\n* // returns 1\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice( null, 20, 2 ), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 0\n*\n* v = s.stop;\n* // returns 10\n*\n* v = s.step;\n* // returns 2\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice( -5, -1, 1 ), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 5\n*\n* v = s.stop;\n* // returns 9\n*\n* v = s.step;\n* // returns 1\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice( -5, null, -1 ), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 5\n*\n* v = s.stop;\n* // returns null\n*\n* v = s.step;\n* // returns -1\n*/\nfunction normalizeSlice( slice, len, strict ) {\n\tvar start;\n\tvar stop;\n\tvar step;\n\n\tstart = slice.start;\n\tstop = slice.stop;\n\tstep = slice.step;\n\n\t// If necessary, set the default increment...\n\tif ( step === null ) {\n\t\tstep = 1;\n\t}\n\n\t// Case: start is not specified\n\tif ( start === null ) {\n\t\t// If the step is positive, we default to the first index...\n\t\tif ( step > 0 ) {\n\t\t\tstart = 0;\n\t\t}\n\t\t// If the step is negative, we default to the last index (inclusive)...\n\t\telse {\n\t\t\tstart = len - 1;\n\t\t}\n\t}\n\t// Case: start is negative and should be resolved relative to the last index\n\telse if ( start < 0 ) {\n\t\tstart = len + start;\n\n\t\t// Check whether start still exceeds the index bounds...\n\t\tif ( start < 0 ) {\n\t\t\tif ( strict ) {\n\t\t\t\treturn eOutOfBounds();\n\t\t\t}\n\t\t\t// Clamp to the first index (inclusive):\n\t\t\tstart = 0;\n\t\t}\n\t}\n\t// Case: start exceeds index bounds\n\telse if ( start >= len ) {\n\t\tif ( strict ) {\n\t\t\treturn eOutOfBounds();\n\t\t}\n\t\t// If the increment is negative, clamp to the last index (inclusive)...\n\t\tif ( step < 0 ) {\n\t\t\tstart = len - 1;\n\t\t}\n\t\t// If the increment is positive, clamp to the \"index\" following the last index...\n\t\telse {\n\t\t\tstart = len;\n\t\t}\n\t}\n\n\t// Case: stop is not specified\n\tif ( stop === null ) {\n\t\t// If the step is positive, we default to just beyond the last index, as the stopping index is exclusive...\n\t\tif ( step > 0 ) {\n\t\t\tstop = len;\n\t\t}\n\t\t// If the step is negative, we default to a sentinel value indicating that one should iterate through the first index when decrementing...\n\t\telse {\n\t\t\tstop = null;\n\t\t}\n\t}\n\t// Case: stop is negative and should be resolved relative to the last index\n\telse if ( stop < 0 ) {\n\t\tstop = len + stop;\n\n\t\t// Check whether stop still exceeds the index bounds...\n\t\tif ( stop < 0 ) {\n\t\t\t// If the step is positive, we should clamp to the first index, as Slice(x,0,step) is an empty slice regardless of `x`...\n\t\t\tif ( step > 0 ) {\n\t\t\t\tif ( strict ) {\n\t\t\t\t\treturn eOutOfBounds();\n\t\t\t\t}\n\t\t\t\tstop = 0;\n\t\t\t}\n\t\t\t// If the step is negative, we default to just beyond the first index (using a sentinel value), as the stopping index is exclusive, thus indicating to iterate through the first index when decrementing...\n\t\t\telse {\n\t\t\t\tif ( strict && stop < -1 ) {\n\t\t\t\t\treturn eOutOfBounds();\n\t\t\t\t}\n\t\t\t\tstop = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Case: stop exceeds index bounds\n\telse if ( stop > len ) {\n\t\tif ( strict ) {\n\t\t\treturn eOutOfBounds();\n\t\t}\n\t\t// Clamp to just beyond the last index, as the stopping index is exclusive:\n\t\tstop = len;\n\t}\n\n\t// Return a normalized slice:\n\treturn new Slice( start, stop, step );\n}\n\n\n// EXPORTS //\n\nexport default normalizeSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an error object for a slice which exceeds index bounds.\n*\n* @private\n* @returns {Object} error object\n*/\nfunction error() {\n\treturn {\n\t\t'code': 'ERR_SLICE_OUT_OF_BOUNDS'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default error;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ceil from '@stdlib/math-base-special-ceil';\n\n\n// MAIN //\n\n/**\n* Returns the number of elements in a normalized slice.\n*\n* @param {Slice} slice - normalized Slice object\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 2, null, 1 );\n* // returns \n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 8\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 9\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 3\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 2, null, 2 );\n* // returns \n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 4\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 5\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 2\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( -1, null, -2 );\n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 5\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 6\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 3\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 3, 5, -1 );\n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 0\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 5, 3, 1 );\n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 0\n*/\nfunction sliceLength( slice ) {\n\tvar inc;\n\tvar x1;\n\tvar x2;\n\n\tx1 = slice.start;\n\tx2 = slice.stop;\n\tinc = slice.step;\n\n\t// For a normalized slice, stop should only be `null` when the increment is negative...\n\tif ( x2 === null ) {\n\t\tx2 = -1; // set to -1 to ensure that the first element is included\n\t}\n\tif (\n\t\t// If the increment is positive, the slice is empty whenever the starting index is greater than or equal to the stopping index:\n\t\t( inc > 0 && x1 >= x2 ) ||\n\n\t\t// If the increment is negative, the slice is empty whenever the starting index is less than or equal to the stopping index:\n\t\t( inc < 0 && x1 <= x2 )\n\t) {\n\t\treturn 0;\n\t}\n\treturn ceil( ( x2 - x1 ) / inc );\n}\n\n\n// EXPORTS //\n\nexport default sliceLength;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sliceLength from '@stdlib/slice-base-length';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a normalized multi-slice.\n*\n* @param {MultiSlice} slice - normalized MultiSlice object\n* @returns {NonNegativeIntegerArray} slice shape\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\n*\n* var s = new MultiSlice( new Slice( 2, null, 1 ), null, 10 );\n*\n* var v = sliceShape( normalizeMultiSlice( s, [ 10, 5, 20 ], false ) );\n* // returns [ 8, 5, 1 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 11, 3, 12 ], false ) );\n* // returns [ 9, 3, 1 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 5, 10, 15 ], false ) );\n* // returns [ 3, 10, 1 ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\n*\n* var s = new MultiSlice( null, new Slice( -1, 3, -2 ) );\n*\n* var v = sliceShape( normalizeMultiSlice( s, [ 10, 5 ], false ) );\n* // returns [ 10, 1 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 11, 10 ], false ) );\n* // returns [ 11, 3 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 5, 15 ], false ) );\n* // returns [ 5, 6 ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\n*\n* var s = new MultiSlice( 1, new Slice( 0, 0, 1 ) );\n*\n* var v = sliceShape( normalizeMultiSlice( s, [ 10, 5 ], false ) );\n* // returns [ 1, 0 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 11, 10 ], false ) );\n* // returns [ 1, 0 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 5, 15 ], false ) );\n* // returns [ 1, 0 ]\n*/\nfunction sliceShape( slice ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.push( sliceLength( data[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default sliceShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\nimport nonreducedDimensions from '@stdlib/slice-base-nonreduced-dimensions';\nimport sliceShape from '@stdlib/slice-base-shape';\nimport take from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport format from '@stdlib/string-format';\nimport sliceStart from './slice_start.js';\nimport slice2strides from './slice_strides.js';\nimport empty from './empty.js';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {MultiSlice} s - multi-slice object\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction slice( x, s, strict, writable ) {\n\tvar strides;\n\tvar offset;\n\tvar dtype;\n\tvar shape;\n\tvar order;\n\tvar sdims;\n\tvar ndims;\n\tvar ctor;\n\tvar sh;\n\tvar ns;\n\n\t// Retrieve array meta data:\n\tdtype = getDType( x );\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\toffset = getOffset( x );\n\torder = getOrder( x );\n\tndims = shape.length;\n\n\t// Ensure that the number of array dimensions matches the number of slices:\n\tif ( s.ndims !== ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', shape.join( ',' ), s.ndims ) );\n\t}\n\t// Resolve the output array constructor:\n\tctor = x.constructor;\n\n\t// If provided a zero-dimensional input array, return a zero-dimensional array view...\n\tif ( ndims === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), shape, strides, offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Resolve the indices of the non-reduced dimensions:\n\tsdims = nonreducedDimensions( s );\n\n\t// Normalize the slice object based on the array shape:\n\tns = normalizeMultiSlice( s, shape, true );\n\n\t// Check whether the slice exceeds array bounds...\n\tif ( ns.code ) {\n\t\tif ( strict ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t}\n\t\t// Normalize again, this time allowing for out-of-bounds indices:\n\t\tns = normalizeMultiSlice( s, shape, false );\n\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\n\t\t// If the non-reduced dimensions contain elements, this means that at least one reduced dimension exceeded array bounds; in which case, we generate a shape containing zeros:\n\t\tif ( numel( take( sh, sdims ) ) > 0 ) {\n\t\t\tsh = zeros( sh.length );\n\t\t}\n\t} else {\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\t}\n\t// If the slice does not contain any elements, return an empty array...\n\tif ( numel( sh ) === 0 ) {\n\t\treturn empty( ctor, dtype, take( sh, sdims ), order, !writable );\n\t}\n\t// Resolve the index offset of the first element indexed by the slice:\n\toffset = sliceStart( ns, strides, offset ); // TODO: @stdlib/ndarray/base/sind2bind\n\n\t// Remove reduced dimensions from the slice shape:\n\tsh = take( sh, sdims );\n\n\t// If all dimensions were reduced, return a zero-dimensional array...\n\tif ( sh.length === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), [], [ 0 ], offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Update strides according to slice steps:\n\tstrides = slice2strides( ns, strides, sdims ); // TODO: @stdlib/ndarray/base/slice2strides???\n\n\t// Return a slice view:\n\treturn new ctor( dtype, getData( x ), sh, strides, offset, order, {\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a list of non-reduced dimensions in an un-normalized multi-slice.\n*\n* @param {MultiSlice} slice - input slice\n* @returns {NonNegativeIntegerArray} list of non-reduced dimensions\n*\n* @example\n* import MultiSlice from '@stdlib/slice-multi';\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = new MultiSlice( 1, null, 2, void 0, new Slice( 0, 10, 1 ) );\n* // returns \n*\n* var indices = nonreducedDimensions( s );\n* // returns [ 1, 3, 4 ]\n*/\nfunction nonreducedDimensions( slice ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tif ( typeof data[ i ] !== 'number' ) {\n\t\t\tout.push( i );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default nonreducedDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport zeros from '@stdlib/array-base-zeros';\n\n\n// MAIN //\n\n/**\n* Returns an empty n-dimensional ndarray.\n*\n* @private\n* @param {Function} ctor - ndarray constructor\n* @param {string} dtype - array data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - layout order\n* @param {boolean} readonly - boolean indicating whether a returned array should be read-only\n* @returns {ndarray} empty ndarray\n*/\nfunction empty( ctor, dtype, shape, order, readonly ) {\n\tvar strides;\n\tvar ndims;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\tstrides = [ 0 ];\n\t} else {\n\t\tstrides = zeros( ndims );\n\t}\n\treturn new ctor( dtype, buffer( dtype, 0 ), shape, strides, 0, order, {\n\t\t'readonly': readonly\n\t});\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Resolves the index offset of the first element indexed by a normalized multi-slice.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - array index offset\n* @returns {NonNegativeInteger} index offset of the first element indexed by a normalized multi-slice object\n*/\nfunction sliceStart( slice, strides, offset ) {\n\tvar data;\n\tvar idx;\n\tvar i;\n\n\tdata = slice.data;\n\tidx = offset;\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tidx += strides[ i ] * data[ i ].start;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default sliceStart;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Resolves slice strides for a provided normalized multi-slice object.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeIntegerArray} rdims - indices of non-reduced dimensions\n* @returns {IntegerArray} slice strides\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n*\n* var s = new MultiSlice( new Slice( 2, 3, 1 ), new Slice( 10, null, -2 ) );\n* // returns \n*\n* var strides = slice2strides( s, [ 8, 2 ], [ 1 ] );\n* // returns [ -4 ]\n*/\nfunction slice2strides( slice, strides, rdims ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\tvar j;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < rdims.length; i++ ) {\n\t\tj = rdims[ i ];\n\t\tout.push( strides[j] * data[j].step );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default slice2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport filled from '@stdlib/array-base-filled';\n\n\n// MAIN //\n\n/**\n* Returns a \"generic\" array filled with null values.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = nulls( 3 );\n* // returns [ null, null, null ]\n*/\nfunction nulls( len ) {\n\treturn filled( null, len );\n}\n\n\n// EXPORTS //\n\nexport default nulls;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport slice from '@stdlib/ndarray-base-slice';\nimport nulls from '@stdlib/array-base-nulls';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along a specified dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to reverse\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimension( x, 0, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction reverseDimension( x, dim, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve the number of array dimensions:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index...\n\td = dim;\n\tif ( d < 0 ) {\n\t\td += N;\n\t\tif ( d < 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t\t}\n\t} else if ( d >= N ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = nulls( N );\n\targs[ d ] = new Slice( null, null, -1 );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nexport default reverseDimension;\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* Flatten a shape to a specified depth.\n*\n* @module @stdlib/ndarray-base-flatten-shape\n*\n* @example\n* import flattenShape from '@stdlib/ndarray-base-flatten-shape';\n*\n* var sh = flattenShape( [ 3, 2 ], 1 );\n* // returns [ 6 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\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* Flatten a shape starting from a specified dimension.\n*\n* @module @stdlib/ndarray-base-flatten-shape-from\n*\n* @example\n* import flattenShapeFrom from '@stdlib/ndarray-base-flatten-shape-from';\n*\n* var sh = flattenShapeFrom( [ 3, 3, 2 ], 1 );\n* // returns [ 3, 6 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEachnd( x, fcn, {} );\n*/\nfunction forEachnd( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tfcn.call( thisArg, get( xbuf, ix ), idx, x.ref );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEachnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEachnd( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEachnd( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tfcn.call( thisArg, xbuf[ ix ], idx, x.ref );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEachnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorForEach2d from './2d_blocked_accessors.js';\nimport blockedaccessorForEach3d from './3d_blocked_accessors.js';\nimport blockedaccessorForEach4d from './4d_blocked_accessors.js';\nimport blockedaccessorForEach5d from './5d_blocked_accessors.js';\nimport blockedaccessorForEach6d from './6d_blocked_accessors.js';\nimport blockedaccessorForEach7d from './7d_blocked_accessors.js';\nimport blockedaccessorForEach8d from './8d_blocked_accessors.js';\nimport blockedaccessorForEach9d from './9d_blocked_accessors.js';\nimport blockedaccessorForEach10d from './10d_blocked_accessors.js';\nimport blockedForEach2d from './2d_blocked.js';\nimport blockedForEach3d from './3d_blocked.js';\nimport blockedForEach4d from './4d_blocked.js';\nimport blockedForEach5d from './5d_blocked.js';\nimport blockedForEach6d from './6d_blocked.js';\nimport blockedForEach7d from './7d_blocked.js';\nimport blockedForEach8d from './8d_blocked.js';\nimport blockedForEach9d from './9d_blocked.js';\nimport blockedForEach10d from './10d_blocked.js';\nimport accessorForEach0d from './0d_accessors.js';\nimport accessorForEach1d from './1d_accessors.js';\nimport accessorForEach2d from './2d_accessors.js';\nimport accessorForEach3d from './3d_accessors.js';\nimport accessorForEach4d from './4d_accessors.js';\nimport accessorForEach5d from './5d_accessors.js';\nimport accessorForEach6d from './6d_accessors.js';\nimport accessorForEach7d from './7d_accessors.js';\nimport accessorForEach8d from './8d_accessors.js';\nimport accessorForEach9d from './9d_accessors.js';\nimport accessorForEach10d from './10d_accessors.js';\nimport accessorForEachnd from './nd_accessors.js';\nimport forEach0d from './0d.js';\nimport forEach1d from './1d.js';\nimport forEach2d from './2d.js';\nimport forEach3d from './3d.js';\nimport forEach4d from './4d.js';\nimport forEach5d from './5d.js';\nimport forEach6d from './6d.js';\nimport forEach7d from './7d.js';\nimport forEach8d from './8d.js';\nimport forEach9d from './9d.js';\nimport forEach10d from './10d.js';\nimport forEachnd from './nd.js';\n\n\n// VARIABLES //\n\nvar FOR_EACH = [\n\tforEach0d,\n\tforEach1d,\n\tforEach2d,\n\tforEach3d,\n\tforEach4d,\n\tforEach5d,\n\tforEach6d,\n\tforEach7d,\n\tforEach8d,\n\tforEach9d,\n\tforEach10d\n];\nvar ACCESSOR_FOR_EACH = [\n\taccessorForEach0d,\n\taccessorForEach1d,\n\taccessorForEach2d,\n\taccessorForEach3d,\n\taccessorForEach4d,\n\taccessorForEach5d,\n\taccessorForEach6d,\n\taccessorForEach7d,\n\taccessorForEach8d,\n\taccessorForEach9d,\n\taccessorForEach10d\n];\nvar BLOCKED_FOR_EACH = [\n\tblockedForEach2d, // 0\n\tblockedForEach3d,\n\tblockedForEach4d,\n\tblockedForEach5d,\n\tblockedForEach6d,\n\tblockedForEach7d,\n\tblockedForEach8d,\n\tblockedForEach9d,\n\tblockedForEach10d // 8\n];\nvar BLOCKED_ACCESSOR_FOR_EACH = [\n\tblockedaccessorForEach2d, // 0\n\tblockedaccessorForEach3d,\n\tblockedaccessorForEach4d,\n\tblockedaccessorForEach5d,\n\tblockedaccessorForEach6d,\n\tblockedaccessorForEach7d,\n\tblockedaccessorForEach8d,\n\tblockedaccessorForEach9d,\n\tblockedaccessorForEach10d // 8\n];\nvar MAX_DIMS = FOR_EACH.length - 1;\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Callback} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach( [ x ], naryFunction( log, 1 ) );\n*/\nfunction forEach( arrays, fcn, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t\t}\n\t\treturn FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t\t}\n\t\treturn FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_FOR_EACH[ ndims-2 ]( x, fcn, thisArg );\n\t\t}\n\t\treturn BLOCKED_FOR_EACH[ ndims-2 ]( x, fcn, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorForEachnd( x, fcn, thisArg );\n\t}\n\tforEachnd( x, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default forEach;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 2 );\n*\n* // Define the shape of the array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach0d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach0d( x, fcn, thisArg ) {\n\tfcn.call( thisArg, x.data[ x.offset ], [], x.ref );\n}\n\n\n// EXPORTS //\n\nexport default forEach0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach1d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach1d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tfcn.call( thisArg, xbuf[ ix ], [ i0 ], x.ref );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach2d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach2d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref );\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach3d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach3d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach4d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach4d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach5d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach5d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach6d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach6d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach7d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach7d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach8d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach8d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach9d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach9d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach10d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 4 );\n*\n* // Define the shape of the array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach0d( x, fcn, {} );\n*/\nfunction forEach0d( x, fcn, thisArg ) {\n\tfcn.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref );\n}\n\n\n// EXPORTS //\n\nexport default forEach0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach1d( x, fcn, {} );\n*/\nfunction forEach1d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tfcn.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach2d( x, fcn, {} );\n*/\nfunction forEach2d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach3d( x, fcn, {} );\n*/\nfunction forEach3d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach4d( x, fcn, {} );\n*/\nfunction forEach4d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach5d( x, fcn, {} );\n*/\nfunction forEach5d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach6d( x, fcn, {} );\n*/\nfunction forEach6d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach7d( x, fcn, {} );\n*/\nfunction forEach7d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach8d( x, fcn, {} );\n*/\nfunction forEach8d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach9d( x, fcn, {} );\n*/\nfunction forEach9d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach10d( x, fcn, {} );\n*/\nfunction forEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach2d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach2d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach3d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach3d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach4d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach4d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach5d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach5d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach6d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach6d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach7d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach7d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach8d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach8d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach9d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach9d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach10d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach2d( x, fcn, {} );\n*/\nfunction blockedforEach2d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach3d( x, fcn, {} );\n*/\nfunction blockedforEach3d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach4d( x, fcn, {} );\n*/\nfunction blockedforEach4d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach5d( x, fcn, {} );\n*/\nfunction blockedforEach5d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach6d( x, fcn, {} );\n*/\nfunction blockedforEach6d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach7d( x, fcn, {} );\n*/\nfunction blockedforEach7d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach8d( x, fcn, {} );\n*/\nfunction blockedforEach8d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach9d( x, fcn, {} );\n*/\nfunction blockedforEach9d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach10d( x, fcn, {} );\n*/\nfunction blockedforEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @param {*} dtype - output array data type\n* @param {string} order - memory layout (either 'row-major' or 'column-major')\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = scalar2ndarray( 1.0, 'float64', 'row-major' );\n* // returns \n*\n* var sh = getShape( x );\n* // returns []\n*\n* var dt = String( getDType( x ) );\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*/\nfunction scalar2ndarray( value, dtype, order ) {\n\tvar buf;\n\tvar set;\n\tvar dt;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tdt = resolveStr( dtype );\n\tif ( isComplexDataType( dt ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, value );\n\treturn new ndarray( dtype, buf, [], [ 0 ], 0, order );\n}\n\n\n// EXPORTS //\n\nexport default scalar2ndarray;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includesnd( x, 6.0 );\n* // returns true\n*\n* out = includesnd( x, 100.0 );\n* // returns false\n*/\nfunction includesnd( x, value ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includesnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includesnd( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includesnd( x, v );\n* // returns false\n*/\nfunction includesnd( x, value ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includesnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includesnd( x, 6.0 );\n* // returns true\n*\n* out = includesnd( x, 100.0 );\n* // returns false\n*/\nfunction includesnd( x, value ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includesnd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorincludes2d from './2d_blocked_accessors.js';\nimport blockedaccessorincludes3d from './3d_blocked_accessors.js';\nimport blockedaccessorincludes4d from './4d_blocked_accessors.js';\nimport blockedaccessorincludes5d from './5d_blocked_accessors.js';\nimport blockedaccessorincludes6d from './6d_blocked_accessors.js';\nimport blockedaccessorincludes7d from './7d_blocked_accessors.js';\nimport blockedaccessorincludes8d from './8d_blocked_accessors.js';\nimport blockedaccessorincludes9d from './9d_blocked_accessors.js';\nimport blockedaccessorincludes10d from './10d_blocked_accessors.js'; // eslint-disable-line id-length\nimport blockedcomplexincludes2d from './2d_blocked_complex.js';\nimport blockedcomplexincludes3d from './3d_blocked_complex.js';\nimport blockedcomplexincludes4d from './4d_blocked_complex.js';\nimport blockedcomplexincludes5d from './5d_blocked_complex.js';\nimport blockedcomplexincludes6d from './6d_blocked_complex.js';\nimport blockedcomplexincludes7d from './7d_blocked_complex.js';\nimport blockedcomplexincludes8d from './8d_blocked_complex.js';\nimport blockedcomplexincludes9d from './9d_blocked_complex.js';\nimport blockedcomplexincludes10d from './10d_blocked_complex.js';\nimport blockedincludes2d from './2d_blocked.js';\nimport blockedincludes3d from './3d_blocked.js';\nimport blockedincludes4d from './4d_blocked.js';\nimport blockedincludes5d from './5d_blocked.js';\nimport blockedincludes6d from './6d_blocked.js';\nimport blockedincludes7d from './7d_blocked.js';\nimport blockedincludes8d from './8d_blocked.js';\nimport blockedincludes9d from './9d_blocked.js';\nimport blockedincludes10d from './10d_blocked.js';\nimport accessorincludes0d from './0d_accessors.js';\nimport accessorincludes1d from './1d_accessors.js';\nimport accessorincludes2d from './2d_accessors.js';\nimport accessorincludes3d from './3d_accessors.js';\nimport accessorincludes4d from './4d_accessors.js';\nimport accessorincludes5d from './5d_accessors.js';\nimport accessorincludes6d from './6d_accessors.js';\nimport accessorincludes7d from './7d_accessors.js';\nimport accessorincludes8d from './8d_accessors.js';\nimport accessorincludes9d from './9d_accessors.js';\nimport accessorincludes10d from './10d_accessors.js';\nimport accessorincludesnd from './nd_accessors.js';\nimport complexincludes0d from './0d_complex.js';\nimport complexincludes1d from './1d_complex.js';\nimport complexincludes2d from './2d_complex.js';\nimport complexincludes3d from './3d_complex.js';\nimport complexincludes4d from './4d_complex.js';\nimport complexincludes5d from './5d_complex.js';\nimport complexincludes6d from './6d_complex.js';\nimport complexincludes7d from './7d_complex.js';\nimport complexincludes8d from './8d_complex.js';\nimport complexincludes9d from './9d_complex.js';\nimport complexincludes10d from './10d_complex.js';\nimport complexincludesnd from './nd_complex.js';\nimport includes0d from './0d.js';\nimport includes1d from './1d.js';\nimport includes2d from './2d.js';\nimport includes3d from './3d.js';\nimport includes4d from './4d.js';\nimport includes5d from './5d.js';\nimport includes6d from './6d.js';\nimport includes7d from './7d.js';\nimport includes8d from './8d.js';\nimport includes9d from './9d.js';\nimport includes10d from './10d.js';\nimport includesnd from './nd.js';\n\n\n// VARIABLES //\n\nvar INCLUDES = [\n\tincludes0d,\n\tincludes1d,\n\tincludes2d,\n\tincludes3d,\n\tincludes4d,\n\tincludes5d,\n\tincludes6d,\n\tincludes7d,\n\tincludes8d,\n\tincludes9d,\n\tincludes10d\n];\nvar ACCESSOR_INCLUDES = [\n\taccessorincludes0d,\n\taccessorincludes1d,\n\taccessorincludes2d,\n\taccessorincludes3d,\n\taccessorincludes4d,\n\taccessorincludes5d,\n\taccessorincludes6d,\n\taccessorincludes7d,\n\taccessorincludes8d,\n\taccessorincludes9d,\n\taccessorincludes10d\n];\nvar COMPLEX_INCLUDES = [\n\tcomplexincludes0d,\n\tcomplexincludes1d,\n\tcomplexincludes2d,\n\tcomplexincludes3d,\n\tcomplexincludes4d,\n\tcomplexincludes5d,\n\tcomplexincludes6d,\n\tcomplexincludes7d,\n\tcomplexincludes8d,\n\tcomplexincludes9d,\n\tcomplexincludes10d\n];\nvar BLOCKED_INCLUDES = [\n\tblockedincludes2d, // 0\n\tblockedincludes3d,\n\tblockedincludes4d,\n\tblockedincludes5d,\n\tblockedincludes6d,\n\tblockedincludes7d,\n\tblockedincludes8d,\n\tblockedincludes9d,\n\tblockedincludes10d // 8\n];\nvar BLOCKED_ACCESSOR_INCLUDES = [\n\tblockedaccessorincludes2d, // 0\n\tblockedaccessorincludes3d,\n\tblockedaccessorincludes4d,\n\tblockedaccessorincludes5d,\n\tblockedaccessorincludes6d,\n\tblockedaccessorincludes7d,\n\tblockedaccessorincludes8d,\n\tblockedaccessorincludes9d,\n\tblockedaccessorincludes10d // 8\n];\nvar BLOCKED_COMPLEX_INCLUDES = [\n\tblockedcomplexincludes2d, // 0\n\tblockedcomplexincludes3d,\n\tblockedcomplexincludes4d,\n\tblockedcomplexincludes5d,\n\tblockedcomplexincludes6d,\n\tblockedcomplexincludes7d,\n\tblockedcomplexincludes8d,\n\tblockedcomplexincludes9d,\n\tblockedcomplexincludes10d // 8\n];\nvar MAX_DIMS = INCLUDES.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and a zero-dimensional search element array\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create the search element ndarray-like object:\n* var searchElement = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 2.0 ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes( [ x, searchElement ] );\n* // returns true\n*/\nfunction includes( arrays ) {\n\tvar isCmplx;\n\tvar value;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tvalue = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the search element as a scalar:\n\tvalue = value.accessors[ 0 ]( value.data, value.offset );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tif ( !isBoolean( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tif ( !isComplexLike( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\t// TODO: consider adding something like `complex/base/complex2object` where we normalize a user-provided complex-like object to a standardized object shape\n\t\tvalue = {\n\t\t\t're': real( value ),\n\t\t\t'im': imag( value )\n\t\t};\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\treturn INCLUDES[ ndims ]( x, value );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\t// An empty array is a trivial case in which an array does not contain a search element:\n\t\treturn false;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\treturn INCLUDES[ ndims ]( x, value );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_INCLUDES[ 1 ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_INCLUDES[ 1 ]( x, value );\n\t\t}\n\t\treturn INCLUDES[ 1 ]( x, value );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_INCLUDES[ 1 ]( x, value );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_INCLUDES[ 1 ]( x, value );\n\t\t\t}\n\t\t\treturn INCLUDES[ 1 ]( x, value );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_INCLUDES[ ndims ]( x, value );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_INCLUDES[ ndims ]( x, value );\n\t\t\t}\n\t\t\treturn INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_INCLUDES[ ndims-2 ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_INCLUDES[ ndims-2 ]( x, value );\n\t\t}\n\t\treturn BLOCKED_INCLUDES[ ndims-2 ]( x, value );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorincludesnd( x, value );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexincludesnd( x, value );\n\t}\n\treturn includesnd( x, value );\n}\n\n\n// EXPORTS //\n\nexport default includes;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes0d( x, 2.0 );\n* // returns true\n*\n* out = includes0d( x, 100.0 );\n* // returns false\n*/\nfunction includes0d( x, value ) {\n\treturn ( x.data[ x.offset ] === value );\n}\n\n\n// EXPORTS //\n\nexport default includes0d;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes1d( x, 6.0 );\n* // returns true\n*\n* out = includes1d( x, 100.0 );\n* // returns false\n*/\nfunction includes1d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes2d( x, 6.0 );\n* // returns true\n*\n* out = includes2d( x, 100.0 );\n* // returns false\n*/\nfunction includes2d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes3d( x, 6.0 );\n* // returns true\n*\n* out = includes3d( x, 100.0 );\n* // returns false\n*/\nfunction includes3d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes4d( x, 6.0 );\n* // returns true\n*\n* out = includes4d( x, 100.0 );\n* // returns false\n*/\nfunction includes4d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes5d( x, 6.0 );\n* // returns true\n*\n* out = includes5d( x, 100.0 );\n* // returns false\n*/\nfunction includes5d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes6d( x, 6.0 );\n* // returns true\n*\n* out = includes6d( x, 100.0 );\n* // returns false\n*/\nfunction includes6d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes7d( x, 6.0 );\n* // returns true\n*\n* out = includes7d( x, 100.0 );\n* // returns false\n*/\nfunction includes7d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes8d( x, 6.0 );\n* // returns true\n*\n* out = includes8d( x, 100.0 );\n* // returns false\n*/\nfunction includes8d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes9d( x, 6.0 );\n* // returns true\n*\n* out = includes9d( x, 100.0 );\n* // returns false\n*/\nfunction includes9d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes10d( x, 6.0 );\n* // returns true\n*\n* out = includes10d( x, 100.0 );\n* // returns false\n*/\nfunction includes10d( x, value ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes10d;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes0d( x, 2.0 );\n* // returns true\n*\n* out = includes0d( x, 100.0 );\n* // returns false\n*/\nfunction includes0d( x, value ) {\n\treturn ( x.accessors[ 0 ]( x.data, x.offset ) === value );\n}\n\n\n// EXPORTS //\n\nexport default includes0d;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes1d( x, 6.0 );\n* // returns true\n*\n* out = includes1d( x, 100.0 );\n* // returns false\n*/\nfunction includes1d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes2d( x, 6.0 );\n* // returns true\n*\n* out = includes2d( x, 100.0 );\n* // returns false\n*/\nfunction includes2d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes3d( x, 6.0 );\n* // returns true\n*\n* out = includes3d( x, 100.0 );\n* // returns false\n*/\nfunction includes3d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes4d( x, 6.0 );\n* // returns true\n*\n* out = includes4d( x, 100.0 );\n* // returns false\n*/\nfunction includes4d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes5d( x, 6.0 );\n* // returns true\n*\n* out = includes5d( x, 100.0 );\n* // returns false\n*/\nfunction includes5d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes6d( x, 6.0 );\n* // returns true\n*\n* out = includes6d( x, 100.0 );\n* // returns false\n*/\nfunction includes6d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes7d( x, 6.0 );\n* // returns true\n*\n* out = includes7d( x, 100.0 );\n* // returns false\n*/\nfunction includes7d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes8d( x, 6.0 );\n* // returns true\n*\n* out = includes8d( x, 100.0 );\n* // returns false\n*/\nfunction includes8d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes9d( x, 6.0 );\n* // returns true\n*\n* out = includes9d( x, 100.0 );\n* // returns false\n*/\nfunction includes9d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes10d( x, 6.0 );\n* // returns true\n*\n* out = includes10d( x, 100.0 );\n* // returns false\n*/\nfunction includes10d( x, value ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes10d;\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* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 1.0,\n* 'im': 2.0\n* };\n* var out = includes0d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes0d( x, v );\n* // returns false\n*/\nfunction includes0d( x, value ) {\n\treturn ( x.data[ x.offset ] === value.re && x.data[ x.offset+1 ] === value.im ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default includes0d;\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* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes1d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes1d( x, v );\n* // returns false\n*/\nfunction includes1d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes2d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes2d( x, v );\n* // returns false\n*/\nfunction includes2d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes3d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes3d( x, v );\n* // returns false\n*/\nfunction includes3d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes3d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes4d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes4d( x, v );\n* // returns false\n*/\nfunction includes4d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes5d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes5d( x, v );\n* // returns false\n*/\nfunction includes5d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes6d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes6d( x, v );\n* // returns false\n*/\nfunction includes6d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes7d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes7d( x, v );\n* // returns false\n*/\nfunction includes7d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes8d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes8d( x, v );\n* // returns false\n*/\nfunction includes8d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes9d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes9d( x, v );\n* // returns false\n*/\nfunction includes9d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes10d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes10d( x, v );\n* // returns false\n*/\nfunction includes10d( x, value ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes2d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes2d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes2d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes3d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes3d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes3d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes4d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes4d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes4d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes5d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes5d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes5d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes6d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes6d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes6d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes7d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes7d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes7d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes8d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes8d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes8d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes9d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes9d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes9d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes10d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes10d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes10d( x, value ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes2d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes2d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes2d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes3d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes3d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes3d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes4d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes4d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes4d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes5d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes5d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes5d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes6d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes6d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes6d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes7d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes7d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes7d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes8d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes8d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes8d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes9d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes9d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes9d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes10d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes10d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes10d( x, value ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes2d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes2d( x, v );\n* // returns false\n*/\nfunction blockedincludes2d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes3d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes3d( x, v );\n* // returns false\n*/\nfunction blockedincludes3d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes4d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes4d( x, v );\n* // returns false\n*/\nfunction blockedincludes4d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes5d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes5d( x, v );\n* // returns false\n*/\nfunction blockedincludes5d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes6d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes6d( x, v );\n* // returns false\n*/\nfunction blockedincludes6d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes7d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes7d( x, v );\n* // returns false\n*/\nfunction blockedincludes7d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes8d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes8d( x, v );\n* // returns false\n*/\nfunction blockedincludes8d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes9d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes9d( x, v );\n* // returns false\n*/\nfunction blockedincludes9d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes10d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes10d( x, v );\n* // returns false\n*/\nfunction blockedincludes10d( x, value ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcast from '@stdlib/ndarray-base-broadcast-array';\nimport getShape from '@stdlib/ndarray-base-shape';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = maybeBroadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction maybeBroadcastArray( arr, shape ) {\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\n\t// Check whether we need to broadcast the input array...\n\tif ( sh.length === N ) {\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== shape[ i ] ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( arr, shape );\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( arr, shape );\n}\n\n\n// EXPORTS //\n\nexport default maybeBroadcastArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Canonical double-precision complex floating-point zero.\n*\n* @module @stdlib/constants-complex128-nan\n* @type {Complex128}\n*\n* @example\n* import COMPLEX128_NAN from '@stdlib/constants-complex128-nan';\n* // returns \n*/\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex-float64-ctor';\n\n\n// MAIN //\n\n/**\n* Canonical double-precision complex floating-point NaN.\n*\n* @constant\n* @type {Complex128}\n*/\nvar COMPLEX128_NAN = new Complex128( NaN, NaN );\n\n\n// EXPORTS //\n\nexport default COMPLEX128_NAN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the next Cartesian index (row-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction rowmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = ndims-1; i > dim; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i >= 0; i-- ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i -= 1; i >= 0; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Returns the next Cartesian index (column-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction columnmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = 0; i < dim; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i < ndims; i++ ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i += 1; i < ndims; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices) and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object|null)} output array (or null)\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0, [ 0 ] );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var out = [ 0, 0, 0 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1, out );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0, [] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10, [ 0 ] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10, [ 0 ] );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim, out ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn null;\n\t}\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\t// Out-of-bounds:\n\t\t\treturn null;\n\t\t}\n\t} else if ( dim >= ndims ) {\n\t\t// Out-of-bounds:\n\t\treturn null;\n\t}\n\tif ( order === ROW_MAJOR ) {\n\t\treturn rowmajor( ndims, shape, idx, dim, out );\n\t}\n\t// order === 'column-major'\n\treturn columnmajor( ndims, shape, idx, dim, out );\n}\n\n\n// EXPORTS //\n\nexport default nextCartesianIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @returns {(NonNegativeIntegerArray|null)} updated dimension indices\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0 );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10 );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim ) {\n\treturn assign( shape, order, idx, dim, zeros( shape.length ) );\n}\n\n\n// EXPORTS //\n\nexport default nextCartesianIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the next Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* @module @stdlib/ndarray-base-next-cartesian-index\n*\n* @example\n* import nextCartesianIndex from '@stdlib/ndarray-base-next-cartesian-index';\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tset( xbuf, ix, fcn() );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\txbuf[ ix ] = fcn();\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessornullary2d from './2d_blocked_accessors.js';\nimport blockedaccessornullary3d from './3d_blocked_accessors.js';\nimport blockedaccessornullary4d from './4d_blocked_accessors.js';\nimport blockedaccessornullary5d from './5d_blocked_accessors.js';\nimport blockedaccessornullary6d from './6d_blocked_accessors.js';\nimport blockedaccessornullary7d from './7d_blocked_accessors.js';\nimport blockedaccessornullary8d from './8d_blocked_accessors.js';\nimport blockedaccessornullary9d from './9d_blocked_accessors.js';\nimport blockedaccessornullary10d from './10d_blocked_accessors.js';\nimport blockednullary2d from './2d_blocked.js';\nimport blockednullary3d from './3d_blocked.js';\nimport blockednullary4d from './4d_blocked.js';\nimport blockednullary5d from './5d_blocked.js';\nimport blockednullary6d from './6d_blocked.js';\nimport blockednullary7d from './7d_blocked.js';\nimport blockednullary8d from './8d_blocked.js';\nimport blockednullary9d from './9d_blocked.js';\nimport blockednullary10d from './10d_blocked.js';\nimport accessornullary0d from './0d_accessors.js';\nimport accessornullary1d from './1d_accessors.js';\nimport accessornullary2d from './2d_accessors.js';\nimport accessornullary3d from './3d_accessors.js';\nimport accessornullary4d from './4d_accessors.js';\nimport accessornullary5d from './5d_accessors.js';\nimport accessornullary6d from './6d_accessors.js';\nimport accessornullary7d from './7d_accessors.js';\nimport accessornullary8d from './8d_accessors.js';\nimport accessornullary9d from './9d_accessors.js';\nimport accessornullary10d from './10d_accessors.js';\nimport accessornullarynd from './nd_accessors.js';\nimport nullary0d from './0d.js';\nimport nullary1d from './1d.js';\nimport nullary2d from './2d.js';\nimport nullary3d from './3d.js';\nimport nullary4d from './4d.js';\nimport nullary5d from './5d.js';\nimport nullary6d from './6d.js';\nimport nullary7d from './7d.js';\nimport nullary8d from './8d.js';\nimport nullary9d from './9d.js';\nimport nullary10d from './10d.js';\nimport nullarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar NULLARY = [\n\tnullary0d,\n\tnullary1d,\n\tnullary2d,\n\tnullary3d,\n\tnullary4d,\n\tnullary5d,\n\tnullary6d,\n\tnullary7d,\n\tnullary8d,\n\tnullary9d,\n\tnullary10d\n];\nvar ACCESSOR_NULLARY = [\n\taccessornullary0d,\n\taccessornullary1d,\n\taccessornullary2d,\n\taccessornullary3d,\n\taccessornullary4d,\n\taccessornullary5d,\n\taccessornullary6d,\n\taccessornullary7d,\n\taccessornullary8d,\n\taccessornullary9d,\n\taccessornullary10d\n];\nvar BLOCKED_NULLARY = [\n\tblockednullary2d, // 0\n\tblockednullary3d,\n\tblockednullary4d,\n\tblockednullary5d,\n\tblockednullary6d,\n\tblockednullary7d,\n\tblockednullary8d,\n\tblockednullary9d,\n\tblockednullary10d // 8\n];\nvar BLOCKED_ACCESSOR_NULLARY = [\n\tblockedaccessornullary2d, // 0\n\tblockedaccessornullary3d,\n\tblockedaccessornullary4d,\n\tblockedaccessornullary5d,\n\tblockedaccessornullary6d,\n\tblockedaccessornullary7d,\n\tblockedaccessornullary8d,\n\tblockedaccessornullary9d,\n\tblockedaccessornullary10d // 8\n];\nvar MAX_DIMS = NULLARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary( [ x ], fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ 1 ]( x, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_NULLARY[ ndims-2 ]( x, fcn );\n\t\t}\n\t\treturn BLOCKED_NULLARY[ ndims-2 ]( x, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessornullarynd( x, fcn );\n\t}\n\tnullarynd( x, fcn );\n}\n\n\n// EXPORTS //\n\nexport default nullary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 2 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0 ]\n*/\nfunction nullary0d( x, fcn ) {\n\tx.data[ x.offset ] = fcn();\n}\n\n\n// EXPORTS //\n\nexport default nullary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 0.0, 10.0, 0.0, 10.0, 0.0, 10.0 ]\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\txbuf[ ix ] = fcn();\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\txbuf[ ix ] = fcn();\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary10d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 4 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* var v = x.data.get( 1 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary0d( x, fcn ) {\n\tx.accessors[ 1 ]( x.data, x.offset, fcn() );\n}\n\n\n// EXPORTS //\n\nexport default nullary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( xbuf, ix, fcn() );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( xbuf, ix, fcn() );\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary10d( x, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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\nexport default 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* 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\nexport default 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} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} 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\nexport default 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} 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\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport strategy from './strategy.js';\nimport defaults from './defaults.js';\nimport validate from './validate.js';\nimport blockednullary2d from './2d_blocked.js';\nimport blockednullary3d from './3d_blocked.js';\nimport blockednullary4d from './4d_blocked.js';\nimport blockednullary5d from './5d_blocked.js';\nimport blockednullary6d from './6d_blocked.js';\nimport blockednullary7d from './7d_blocked.js';\nimport blockednullary8d from './8d_blocked.js';\nimport blockednullary9d from './9d_blocked.js';\nimport blockednullary10d from './10d_blocked.js';\nimport nullary0d from './0d.js';\nimport nullary1d from './1d.js';\nimport nullary2d from './2d.js';\nimport nullary3d from './3d.js';\nimport nullary4d from './4d.js';\nimport nullary5d from './5d.js';\nimport nullary6d from './6d.js';\nimport nullary7d from './7d.js';\nimport nullary8d from './8d.js';\nimport nullary9d from './9d.js';\nimport nullary10d from './10d.js';\nimport nullarynd from './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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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} 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\nexport default 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// 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} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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* 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\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@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\nexport default 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* 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} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} 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\nexport default 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\nimport factory from './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} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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/**\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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\n* import nullaryStrided1d from '@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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\n* import nullaryStrided1d from '@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 \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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport isFunction from '@stdlib/assert-is-function';\nimport mainFactory from './main_factory.js';\nimport main from './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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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 \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} 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} 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\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport contains from '@stdlib/array-base-assert-contains';\nimport nullaryStrided1d from '@stdlib/ndarray-base-nullary-strided1d';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for applying a strided function to an ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided functions which are specific to specialized output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported data types\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 an output ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {NullaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/blas-ext-base-ndarray-gsorthp';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = dtypes( 'all' );\n*\n* var table = {\n* 'default': base\n* };\n* var sorthp = new NullaryStrided1dDispatch( table, [ idt ], odt );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var order = scalar2ndarray( 1.0, {\n* 'dtype': 'generic'\n* });\n*\n* sorthp.assign( x, order );\n*\n* var arr = ndarray2array( x );\n* // returns [ -3.0, -1.0, 2.0 ]\n*/\nfunction NullaryStrided1dDispatch( table, idtypes, odtypes, options ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof NullaryStrided1dDispatch ) ) {\n\t\tif ( arguments.length > 3 ) {\n\t\t\treturn new NullaryStrided1dDispatch( table, idtypes, odtypes, options ); // eslint-disable-line max-len\n\t\t}\n\t\treturn new NullaryStrided1dDispatch( table, idtypes, odtypes );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An output ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tif ( arguments.length > 3 ) {\n\t\tthis._apply = nullaryStrided1d.factory( options ); // note: delegate options validation to factory method\n\t} else {\n\t\tthis._apply = nullaryStrided1d;\n\t}\n\treturn this;\n}\n\n/**\n* Applies a strided function and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof NullaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} out - output ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed output ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of output ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/blas-ext-base-ndarray-gsorthp';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = dtypes( 'all' );\n*\n* var table = {\n* 'default': base\n* };\n* var sorthp = new NullaryStrided1dDispatch( table, [ idt ], odt );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var order = scalar2ndarray( 1.0, {\n* 'dtype': 'generic'\n* });\n*\n* var out = sorthp.assign( x, order );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ -3.0, -1.0, 2.0 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nsetReadOnly( NullaryStrided1dDispatch.prototype, 'assign', function assign( out ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar odt;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( out ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', out ) );\n\t}\n\t// Validate the output ndarray data type...\n\todt = getDType( out );\n\tif ( !contains( this._odtypes, odt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._odtypes, '\", \"' ), odt ) );\n\t}\n\targs = [ out ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\tif ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Verify that additional ndarray arguments have expected dtypes...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i-1 ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i-1 ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( out );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, apply the strided function across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the lower-level strided function satisfying the output ndarray data type:\n\tdtypes = [ resolveEnum( odt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform operation:\n\tthis._apply( f, args, opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default NullaryStrided1dDispatch;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of ndarray dimensions\n* @param {Options} options - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'dims': [ 0 ]\n* };\n* var err = validate( opts, 3, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, options ) {\n\tvar tmp;\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, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getOrder from '@stdlib/ndarray-base-order';\nimport defaults from '@stdlib/ndarray-defaults';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Resolves the order (i.e. memory layout) of an output ndarray according to a list of input ndarrays.\n*\n* @param {ArrayLikeObject} arrays - list of input ndarrays\n* @returns {string} storage layout\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 2, 2 ] );\n* var y = zeros( [ 2, 2 ] );\n*\n* var order = outputOrder( [ x, y ] );\n* // returns \n*/\nfunction outputOrder( arrays ) {\n\tvar N;\n\tvar o;\n\tvar i;\n\n\tN = arrays.length;\n\tif ( N === 0 ) {\n\t\treturn DEFAULT_ORDER;\n\t}\n\t// Resolve the order of the first ndarray:\n\to = getOrder( arrays[ 0 ] );\n\n\t// If a subsequent input ndarray has a different order, return the default memory layout...\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( getOrder( arrays[ i ] ) !== o ) {\n\t\t\treturn DEFAULT_ORDER;\n\t\t}\n\t}\n\treturn o;\n}\n\n\n// EXPORTS //\n\nexport default outputOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport objectInverse from '@stdlib/object-inverse';\nimport { enum as enumeration } from '@stdlib/ndarray-output-dtype-policies';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with an output ndarray data type policy enumeration constant.\n*\n* @param {integer} policy - policy enumeration constant\n* @returns {(string|null)} policy string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n*\n* var v = str2enum( 'same' );\n* // returns \n*\n* var policy = enum2str( v );\n* // returns 'same'\n*/\nfunction enum2str( policy ) {\n\tvar v = hash[ policy ];\n\treturn ( isString( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { enum as enumeration } from '@stdlib/ndarray-output-dtype-policies';\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an output ndarray data type policy string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} policy - policy string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'same' );\n* // returns \n*/\nfunction str2enum( policy ) {\n\tvar v = ENUM[ policy ];\n\treturn ( isNumber( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport slice from '@stdlib/ndarray-base-slice';\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} start - starting indices (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 1, null ];\n* var y = sliceFrom( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceFrom( x, start, strict, writable ) {\n\tvar args;\n\tvar sh;\n\tvar s;\n\tvar i;\n\n\tsh = getShape( x );\n\targs = [];\n\tfor ( i = 0; i < start.length; i++ ) {\n\t\ts = start[ i ];\n\t\tif ( isNumber( s ) && s !== 0 ) { // note: a start value equal to 0 is equivalent to `null` (i.e., including all elements along a dimension)\n\t\t\tif ( s === sh[ i ] ) {\n\t\t\t\t// When a starting index is one more than the last index along a dimension, create a slice for returning an empty array...\n\t\t\t\ts -= 1;\n\t\t\t\targs.push( new Slice( s, s ) );\n\t\t\t} else {\n\t\t\t\targs.push( new Slice( s, null ) );\n\t\t\t}\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceFrom;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport slice from '@stdlib/ndarray-base-slice';\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} stop - ending indices (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 2, null ];\n* var y = sliceTo( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceTo( x, stop, strict, writable ) {\n\tvar args;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < stop.length; i++ ) {\n\t\tif ( isNumber( stop[ i ] ) ) {\n\t\t\targs.push( new Slice( stop[ i ] ) );\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceTo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reinterpret from '@stdlib/strided-base-reinterpret-complex128';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport gscal from '@stdlib/blas-base-gscal';\n\n\n// MAIN //\n\n/**\n* Reinterprets a double-precision complex floating-point ndarray as a real-valued double-precision floating-point ndarray containing interleaved real and imaginary components.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} double-precision floating-point ndarray view\n*\n* @example\n* import ones from '@stdlib/ndarray-base-ones';\n*\n* var x = ones( 'complex128', [ 2, 2 ], 'row-major' );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex128( x );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*/\nfunction reinterpretComplex128( x ) {\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\tndims = shape.length;\n\n\tgscal( ndims, 2, strides, 1 );\n\n\t// Append a trailing dimension where each element is the real and imaginary component for a corresponding element in the input ndarray...\n\tshape.push( 2 );\n\n\t// Augment the strides, assuming that real and imaginary components are adjacent in memory...\n\tif ( ndims === 0 ) {\n\t\tstrides[ 0 ] = 1;\n\t} else {\n\t\tstrides.push( 1 );\n\t}\n\treturn ndarray( 'float64', reinterpret( getData( x ), 0 ), shape, strides, getOffset( x ) * 2, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretComplex128;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reinterpret from '@stdlib/strided-base-reinterpret-complex64';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport gscal from '@stdlib/blas-base-gscal';\n\n\n// MAIN //\n\n/**\n* Reinterprets a single-precision complex floating-point ndarray as a real-valued single-precision floating-point ndarray containing interleaved real and imaginary components.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} single-precision floating-point ndarray view\n*\n* @example\n* import ones from '@stdlib/ndarray-base-ones';\n*\n* var x = ones( 'complex64', [ 2, 2 ], 'row-major' );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex64( x );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*/\nfunction reinterpretComplex64( x ) {\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\tndims = shape.length;\n\n\tgscal( ndims, 2, strides, 1 );\n\n\t// Append a trailing dimension where each element is the real and imaginary component for a corresponding element in the input ndarray...\n\tshape.push( 2 );\n\n\t// Augment the strides, assuming that real and imaginary components are adjacent in memory...\n\tif ( ndims === 0 ) {\n\t\tstrides[ 0 ] = 1;\n\t} else {\n\t\tstrides.push( 1 );\n\t}\n\treturn ndarray( 'float32', reinterpret( getData( x ), 0 ), shape, strides, getOffset( x ) * 2, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretComplex64;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport filled from '@stdlib/array-base-filled';\nimport slice from '@stdlib/ndarray-base-slice';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along each dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverse( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction reverse( x, writable ) {\n\tvar args = filled( new Slice( null, null, -1 ), ndims( x ) );\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nexport default reverse;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport slice from '@stdlib/ndarray-base-slice';\nimport nulls from '@stdlib/array-base-nulls';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along specified dimensions is reversed.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - indices of dimensions to reverse\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimensions( x, [ 0, 1 ], false );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction reverseDimensions( x, dims, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\t// Retrieve the number of array dimensions:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension indices...\n\td = toUniqueNormalizedIndices( dims, N-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', N, N-1, join( dims, ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = nulls( N );\n\tfor ( i = 0; i < d.length; i++ ) {\n\t\targs[ d[ i ] ] = new Slice( null, null, -1 );\n\t}\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nexport default reverseDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Rotates an ndarray 90 degrees in a specified plane.\n*\n* ## Notes\n*\n* - If `k > 0`, the function rotates the plane from the first specified dimension toward the second specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane counterclockwise.\n* - If `k < 0`, the function rotates the plane from the second specified dimension toward the first specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane clockwise.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @param {integer} k - number of times to rotate by 90 degrees\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rot90( x, [ 0, 1 ], 1, false );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction rot90( x, dims, k, writable ) {\n\tvar offset;\n\tvar sd0;\n\tvar sd1;\n\tvar sh;\n\tvar st;\n\tvar d0;\n\tvar d1;\n\tvar M;\n\tvar N;\n\tvar d;\n\n\tif ( dims.length !== 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Must provide exactly two dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\tsh = getShape( x, true );\n\tif ( sh.length < 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. First argument must be an ndarray having two or more dimensions. Number of dimensions: %d.', sh.length ) );\n\t}\n\tst = getStrides( x, true );\n\toffset = getOffset( x );\n\n\t// Resolve dimension indices...\n\td = toUniqueNormalizedIndices( dims, sh.length-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', sh.length, sh.length-1, join( dims, ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\td0 = d[ 0 ];\n\td1 = d[ 1 ];\n\n\t// Normalize `k` to the interval [0, 3]:\n\tk %= 4;\n\tif ( k < 0 ) {\n\t\tk += 4;\n\t}\n\t// Cache the original shape and stride values for the rotation plane:\n\tM = sh[ d0 ];\n\tN = sh[ d1 ];\n\tsd0 = st[ d0 ];\n\tsd1 = st[ d1 ];\n\n\t// Case: rotate 90 deg counterclockwise\n\tif ( k === 1 ) {\n\t\tsh[ d0 ] = N;\n\t\tsh[ d1 ] = M;\n\t\tst[ d0 ] = -sd1;\n\t\tst[ d1 ] = sd0;\n\t\toffset += ( N - 1 ) * sd1;\n\t}\n\t// Case: rotate 180 deg (i.e., reverse both dimensions in the rotation plane)\n\telse if ( k === 2 ) {\n\t\tst[ d0 ] = -sd0;\n\t\tst[ d1 ] = -sd1;\n\t\toffset += ( ( M - 1 ) * sd0 ) + ( ( N - 1 ) * sd1 );\n\t}\n\t// Case: rotate 270 deg counterclockwise (i.e., 90 deg clockwise)\n\telse if ( k === 3 ) {\n\t\tsh[ d0 ] = N;\n\t\tsh[ d1 ] = M;\n\t\tst[ d0 ] = sd1;\n\t\tst[ d1 ] = -sd0;\n\t\toffset += ( M - 1 ) * sd0;\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, offset, getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default rot90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rot90 from '@stdlib/ndarray-base-rot90';\n\n\n// MAIN //\n\n/**\n* Rotates an ndarray 180 degrees in a specified plane.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rot180( x, [ 0, 1 ], false );\n* // returns [ [ 4, 3 ], [ 2, 1 ] ]\n*/\nfunction rot180( x, dims, writable ) {\n\treturn rot90( x, dims, 2, writable );\n}\n\n\n// EXPORTS //\n\nexport default rot180;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Rotates a matrix (or a stack of matrices) 90 degrees clockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rotr90( x, 1, false );\n* // returns [ [ 3, 1 ], [ 4, 2 ] ]\n*/\nfunction rotr90( x, k, writable ) {\n\tvar offset;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar sn;\n\tvar M;\n\tvar N;\n\tvar d;\n\n\tsh = getShape( x, true );\n\td = sh.length;\n\tst = getStrides( x, true );\n\toffset = getOffset( x );\n\n\tif ( d >= 2 ) {\n\t\t// Normalize `k` to the interval [0, 3]:\n\t\tk %= 4;\n\t\tif ( k < 0 ) {\n\t\t\tk += 4;\n\t\t}\n\t\t// Cache the original shape and stride values for the last two dimensions:\n\t\tM = sh[ d-2 ];\n\t\tN = sh[ d-1 ];\n\t\tsm = st[ d-2 ];\n\t\tsn = st[ d-1 ];\n\n\t\t// Case: rotate 90 deg clockwise\n\t\tif ( k === 1 ) {\n\t\t\tsh[ d-2 ] = N;\n\t\t\tsh[ d-1 ] = M;\n\t\t\tst[ d-2 ] = sn;\n\t\t\tst[ d-1 ] = -sm;\n\t\t\toffset += ( M - 1 ) * sm;\n\t\t}\n\t\t// Case: rotate 180 deg clockwise (i.e., reverse both dimensions)\n\t\telse if ( k === 2 ) {\n\t\t\tst[ d-2 ] = -sm;\n\t\t\tst[ d-1 ] = -sn;\n\t\t\toffset += ( ( M - 1 ) * sm ) + ( ( N - 1 ) * sn );\n\t\t}\n\t\t// Case: rotate 270 deg clockwise\n\t\telse if ( k === 3 ) {\n\t\t\tsh[ d-2 ] = N;\n\t\t\tsh[ d-1 ] = M;\n\t\t\tst[ d-2 ] = -sn;\n\t\t\tst[ d-1 ] = sm;\n\t\t\toffset += ( N - 1 ) * sn;\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, offset, getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default rotr90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rotr90 from '@stdlib/ndarray-base-rotr90';\n\n\n// MAIN //\n\n/**\n* Rotates a matrix (or a stack of matrices) 90 degrees counterclockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rotl90( x, 1, false );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction rotl90( x, k, writable ) {\n\treturn rotr90( x, -k, writable );\n}\n\n\n// EXPORTS //\n\nexport default rotl90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport BigInt from '@stdlib/bigint-ctor';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x );\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( getOffset( x )*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default serialize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { assign as float64ToInt64Bytes } from '@stdlib/number-float64-base-to-int64-bytes';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport Uint8Array from '@stdlib/array-uint8';\nimport DataView from '@stdlib/array-dataview';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x);\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( getOffset( x )*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default serialize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serialize ndarray meta data.\n*\n* @module @stdlib/ndarray-base-serialize-meta-data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import serialize from '@stdlib/ndarray-base-serialize-meta-data';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\n\n// MODULES //\n\nimport hasBigIntSupport from '@stdlib/assert-has-bigint-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( hasBigIntSupport() ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default main;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = somend( x, 2 );\n* // returns true\n*/\nfunction somend( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = somend( x, 4 );\n* // returns true\n*/\nfunction somend( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = somend( x, 2 );\n* // returns true\n*/\nfunction somend( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorsome2d from './2d_blocked_accessors.js';\nimport blockedaccessorsome3d from './3d_blocked_accessors.js';\nimport blockedaccessorsome4d from './4d_blocked_accessors.js';\nimport blockedaccessorsome5d from './5d_blocked_accessors.js';\nimport blockedaccessorsome6d from './6d_blocked_accessors.js';\nimport blockedaccessorsome7d from './7d_blocked_accessors.js';\nimport blockedaccessorsome8d from './8d_blocked_accessors.js';\nimport blockedaccessorsome9d from './9d_blocked_accessors.js';\nimport blockedaccessorsome10d from './10d_blocked_accessors.js';\nimport blockedcomplexsome2d from './2d_blocked_complex.js';\nimport blockedcomplexsome3d from './3d_blocked_complex.js';\nimport blockedcomplexsome4d from './4d_blocked_complex.js';\nimport blockedcomplexsome5d from './5d_blocked_complex.js';\nimport blockedcomplexsome6d from './6d_blocked_complex.js';\nimport blockedcomplexsome7d from './7d_blocked_complex.js';\nimport blockedcomplexsome8d from './8d_blocked_complex.js';\nimport blockedcomplexsome9d from './9d_blocked_complex.js';\nimport blockedcomplexsome10d from './10d_blocked_complex.js';\nimport blockedsome2d from './2d_blocked.js';\nimport blockedsome3d from './3d_blocked.js';\nimport blockedsome4d from './4d_blocked.js';\nimport blockedsome5d from './5d_blocked.js';\nimport blockedsome6d from './6d_blocked.js';\nimport blockedsome7d from './7d_blocked.js';\nimport blockedsome8d from './8d_blocked.js';\nimport blockedsome9d from './9d_blocked.js';\nimport blockedsome10d from './10d_blocked.js';\nimport accessorsome0d from './0d_accessors.js';\nimport accessorsome1d from './1d_accessors.js';\nimport accessorsome2d from './2d_accessors.js';\nimport accessorsome3d from './3d_accessors.js';\nimport accessorsome4d from './4d_accessors.js';\nimport accessorsome5d from './5d_accessors.js';\nimport accessorsome6d from './6d_accessors.js';\nimport accessorsome7d from './7d_accessors.js';\nimport accessorsome8d from './8d_accessors.js';\nimport accessorsome9d from './9d_accessors.js';\nimport accessorsome10d from './10d_accessors.js';\nimport accessorsomend from './nd_accessors.js';\nimport complexsome0d from './0d_complex.js';\nimport complexsome1d from './1d_complex.js';\nimport complexsome2d from './2d_complex.js';\nimport complexsome3d from './3d_complex.js';\nimport complexsome4d from './4d_complex.js';\nimport complexsome5d from './5d_complex.js';\nimport complexsome6d from './6d_complex.js';\nimport complexsome7d from './7d_complex.js';\nimport complexsome8d from './8d_complex.js';\nimport complexsome9d from './9d_complex.js';\nimport complexsome10d from './10d_complex.js';\nimport complexsomend from './nd_complex.js';\nimport some0d from './0d.js';\nimport some1d from './1d.js';\nimport some2d from './2d.js';\nimport some3d from './3d.js';\nimport some4d from './4d.js';\nimport some5d from './5d.js';\nimport some6d from './6d.js';\nimport some7d from './7d.js';\nimport some8d from './8d.js';\nimport some9d from './9d.js';\nimport some10d from './10d.js';\nimport somend from './nd.js';\n\n\n// VARIABLES //\n\nvar SOME = [\n\tsome0d,\n\tsome1d,\n\tsome2d,\n\tsome3d,\n\tsome4d,\n\tsome5d,\n\tsome6d,\n\tsome7d,\n\tsome8d,\n\tsome9d,\n\tsome10d,\n\tsomend\n];\nvar ACCESSOR_SOME = [\n\taccessorsome0d,\n\taccessorsome1d,\n\taccessorsome2d,\n\taccessorsome3d,\n\taccessorsome4d,\n\taccessorsome5d,\n\taccessorsome6d,\n\taccessorsome7d,\n\taccessorsome8d,\n\taccessorsome9d,\n\taccessorsome10d,\n\taccessorsomend\n];\nvar COMPLEX_SOME = [\n\tcomplexsome0d,\n\tcomplexsome1d,\n\tcomplexsome2d,\n\tcomplexsome3d,\n\tcomplexsome4d,\n\tcomplexsome5d,\n\tcomplexsome6d,\n\tcomplexsome7d,\n\tcomplexsome8d,\n\tcomplexsome9d,\n\tcomplexsome10d,\n\tcomplexsomend\n];\nvar BLOCKED_SOME = [\n\tblockedsome2d, // 0\n\tblockedsome3d,\n\tblockedsome4d,\n\tblockedsome5d,\n\tblockedsome6d,\n\tblockedsome7d,\n\tblockedsome8d,\n\tblockedsome9d,\n\tblockedsome10d // 8\n];\nvar BLOCKED_ACCESSOR_SOME = [\n\tblockedaccessorsome2d, // 0\n\tblockedaccessorsome3d,\n\tblockedaccessorsome4d,\n\tblockedaccessorsome5d,\n\tblockedaccessorsome6d,\n\tblockedaccessorsome7d,\n\tblockedaccessorsome8d,\n\tblockedaccessorsome9d,\n\tblockedaccessorsome10d // 8\n];\nvar BLOCKED_COMPLEX_SOME = [\n\tblockedcomplexsome2d, // 0\n\tblockedcomplexsome3d,\n\tblockedcomplexsome4d,\n\tblockedcomplexsome5d,\n\tblockedcomplexsome6d,\n\tblockedcomplexsome7d,\n\tblockedcomplexsome8d,\n\tblockedcomplexsome9d,\n\tblockedcomplexsome10d // 8\n];\nvar MAX_DIMS = SOME.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray specifying the minimum number of elements in the input ndarray that must satisfy the predicate function\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Define the success criterion:\n* var n = scalar2ndarray( 3, {\n* 'dtype': 'generic'\n* });\n*\n* // Test elements:\n* var out = some( [ x, n ] );\n* // returns true\n*/\nfunction some( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar N;\n\tvar x;\n\tvar n;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tn = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the success criterion:\n\tN = n.accessors[ 0 ]( n.data, n.offset );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_SOME[ ndims ]( x, N );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_SOME[ ndims ]( x, N );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ 1 ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_SOME[ 1 ]( x, N );\n\t\t}\n\t\treturn SOME[ 1 ]( x, N );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_SOME[ 1 ]( x, N );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_SOME[ 1 ]( x, N );\n\t\t\t}\n\t\t\treturn SOME[ 1 ]( x, N );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_SOME[ ndims ]( x, N );\n\t\t\t}\n\t\t\treturn SOME[ ndims ]( x, N );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_SOME[ ndims-2 ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_SOME[ ndims-2 ]( x, N );\n\t\t}\n\t\treturn BLOCKED_SOME[ ndims-2 ]( x, N );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorsomend( x, N );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexsomend( x, N );\n\t}\n\treturn somend( x, N );\n}\n\n\n// EXPORTS //\n\nexport default some;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1 );\n* // returns true\n*/\nfunction some0d( x, n ) {\n\tif ( n <= 1 && x.data[ x.offset ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4 );\n* // returns true\n*/\nfunction some1d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4 );\n* // returns true\n*/\nfunction some2d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4 );\n* // returns true\n*/\nfunction some3d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4 );\n* // returns true\n*/\nfunction some4d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4 );\n* // returns true\n*/\nfunction some5d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4 );\n* // returns true\n*/\nfunction some6d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4 );\n* // returns true\n*/\nfunction some7d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4 );\n* // returns true\n*/\nfunction some8d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4 );\n* // returns true\n*/\nfunction some9d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4 );\n* // returns true\n*/\nfunction some10d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1 );\n* // returns true\n*/\nfunction some0d( x, n ) {\n\tif ( n <= 1 && x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4 );\n* // returns true\n*/\nfunction some1d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4 );\n* // returns true\n*/\nfunction some2d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4 );\n* // returns true\n*/\nfunction some3d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4 );\n* // returns true\n*/\nfunction some4d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4 );\n* // returns true\n*/\nfunction some5d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4 );\n* // returns true\n*/\nfunction some6d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4 );\n* // returns true\n*/\nfunction some7d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4 );\n* // returns true\n*/\nfunction some8d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4 );\n* // returns true\n*/\nfunction some9d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4 );\n* // returns true\n*/\nfunction some10d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1 );\n* // returns true\n*/\nfunction some0d( x, n ) {\n\tif ( n <= 1 && ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4 );\n* // returns true\n*/\nfunction some1d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4 );\n* // returns true\n*/\nfunction some2d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4 );\n* // returns true\n*/\nfunction some3d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4 );\n* // returns true\n*/\nfunction some4d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4 );\n* // returns true\n*/\nfunction some5d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4 );\n* // returns true\n*/\nfunction some6d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4 );\n* // returns true\n*/\nfunction some7d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4 );\n* // returns true\n*/\nfunction some8d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4 );\n* // returns true\n*/\nfunction some9d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4 );\n* // returns true\n*/\nfunction some10d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4 );\n* // returns true\n*/\nfunction blockedsome2d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4 );\n* // returns true\n*/\nfunction blockedsome3d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4 );\n* // returns true\n*/\nfunction blockedsome4d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4 );\n* // returns true\n*/\nfunction blockedsome5d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4 );\n* // returns true\n*/\nfunction blockedsome6d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4 );\n* // returns true\n*/\nfunction blockedsome7d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4 );\n* // returns true\n*/\nfunction blockedsome8d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4 );\n* // returns true\n*/\nfunction blockedsome9d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4 );\n* // returns true\n*/\nfunction blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4 );\n* // returns true\n*/\nfunction blockedsome2d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4 );\n* // returns true\n*/\nfunction blockedsome3d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4 );\n* // returns true\n*/\nfunction blockedsome4d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4 );\n* // returns true\n*/\nfunction blockedsome5d( x, n ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4 );\n* // returns true\n*/\nfunction blockedsome6d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4 );\n* // returns true\n*/\nfunction blockedsome7d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4 );\n* // returns true\n*/\nfunction blockedsome8d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4 );\n* // returns true\n*/\nfunction blockedsome9d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4 );\n* // returns true\n*/\nfunction blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4 );\n* // returns true\n*/\nfunction blockedsome2d( x, n ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4 );\n* // returns true\n*/\nfunction blockedsome3d( x, n ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4 );\n* // returns true\n*/\nfunction blockedsome4d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4 );\n* // returns true\n*/\nfunction blockedsome5d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4 );\n* // returns true\n*/\nfunction blockedsome6d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4 );\n* // returns true\n*/\nfunction blockedsome7d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4 );\n* // returns true\n*/\nfunction blockedsome8d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4 );\n* // returns true\n*/\nfunction blockedsome9d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4 );\n* // returns true\n*/\nfunction blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = somend( x, 2, predicate, {} );\n* // returns true\n*/\nfunction somend( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = somend( x, 2, predicate, {} );\n* // returns true\n*/\nfunction somend( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorsome2d from './2d_blocked_accessors.js';\nimport blockedaccessorsome3d from './3d_blocked_accessors.js';\nimport blockedaccessorsome4d from './4d_blocked_accessors.js';\nimport blockedaccessorsome5d from './5d_blocked_accessors.js';\nimport blockedaccessorsome6d from './6d_blocked_accessors.js';\nimport blockedaccessorsome7d from './7d_blocked_accessors.js';\nimport blockedaccessorsome8d from './8d_blocked_accessors.js';\nimport blockedaccessorsome9d from './9d_blocked_accessors.js';\nimport blockedaccessorsome10d from './10d_blocked_accessors.js';\nimport blockedsome2d from './2d_blocked.js';\nimport blockedsome3d from './3d_blocked.js';\nimport blockedsome4d from './4d_blocked.js';\nimport blockedsome5d from './5d_blocked.js';\nimport blockedsome6d from './6d_blocked.js';\nimport blockedsome7d from './7d_blocked.js';\nimport blockedsome8d from './8d_blocked.js';\nimport blockedsome9d from './9d_blocked.js';\nimport blockedsome10d from './10d_blocked.js';\nimport accessorsome0d from './0d_accessors.js';\nimport accessorsome1d from './1d_accessors.js';\nimport accessorsome2d from './2d_accessors.js';\nimport accessorsome3d from './3d_accessors.js';\nimport accessorsome4d from './4d_accessors.js';\nimport accessorsome5d from './5d_accessors.js';\nimport accessorsome6d from './6d_accessors.js';\nimport accessorsome7d from './7d_accessors.js';\nimport accessorsome8d from './8d_accessors.js';\nimport accessorsome9d from './9d_accessors.js';\nimport accessorsome10d from './10d_accessors.js';\nimport accessorsomend from './nd_accessors.js';\nimport some0d from './0d.js';\nimport some1d from './1d.js';\nimport some2d from './2d.js';\nimport some3d from './3d.js';\nimport some4d from './4d.js';\nimport some5d from './5d.js';\nimport some6d from './6d.js';\nimport some7d from './7d.js';\nimport some8d from './8d.js';\nimport some9d from './9d.js';\nimport some10d from './10d.js';\nimport somend from './nd.js';\n\n\n// VARIABLES //\n\nvar SOME = [\n\tsome0d,\n\tsome1d,\n\tsome2d,\n\tsome3d,\n\tsome4d,\n\tsome5d,\n\tsome6d,\n\tsome7d,\n\tsome8d,\n\tsome9d,\n\tsome10d\n];\nvar ACCESSOR_SOME = [\n\taccessorsome0d,\n\taccessorsome1d,\n\taccessorsome2d,\n\taccessorsome3d,\n\taccessorsome4d,\n\taccessorsome5d,\n\taccessorsome6d,\n\taccessorsome7d,\n\taccessorsome8d,\n\taccessorsome9d,\n\taccessorsome10d\n];\nvar BLOCKED_SOME = [\n\tblockedsome2d, // 0\n\tblockedsome3d,\n\tblockedsome4d,\n\tblockedsome5d,\n\tblockedsome6d,\n\tblockedsome7d,\n\tblockedsome8d,\n\tblockedsome9d,\n\tblockedsome10d // 8\n];\nvar BLOCKED_ACCESSOR_SOME = [\n\tblockedaccessorsome2d, // 0\n\tblockedaccessorsome3d,\n\tblockedaccessorsome4d,\n\tblockedaccessorsome5d,\n\tblockedaccessorsome6d,\n\tblockedaccessorsome7d,\n\tblockedaccessorsome8d,\n\tblockedaccessorsome9d,\n\tblockedaccessorsome10d // 8\n];\nvar MAX_DIMS = SOME.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray specifying the minimum number of elements in the input ndarray that must satisfy the predicate function\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Define the success criterion:\n* var n = scalar2ndarray( 3, {\n* 'dtype': 'generic'\n* });\n*\n* // Test elements:\n* var out = someBy( [ x, n ], predicate );\n* // returns true\n*/\nfunction someBy( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\tvar n;\n\tvar N;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tn = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the success criterion:\n\tN = n.accessors[ 0 ]( n.data, n.offset );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N, predicate, thisArg );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N, predicate, thisArg );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_SOME[ ndims-2 ]( x, N, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_SOME[ ndims-2 ]( x, N, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorsomend( x, N, predicate, thisArg );\n\t}\n\treturn somend( x, N, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default someBy;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1, predicate, {} );\n* // returns true\n*/\nfunction some0d( x, n, predicate, thisArg ) {\n\tif ( n === 1 && predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some1d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some2d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some3d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some4d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some5d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some6d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some7d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some8d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some9d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1, predicate, {} );\n* // returns true\n*/\nfunction some0d( x, n, predicate, thisArg ) {\n\tif ( n === 1 && predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some1d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some2d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some3d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some4d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some5d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some6d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some7d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some8d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some9d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome2d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome3d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome4d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome5d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome6d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome7d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome8d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome9d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome2d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome3d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome4d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome5d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome6d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome7d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome8d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome9d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: third input ndarray strides sorted in loop order.\n* - **sw**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - third input array stride lengths\n* @param {IntegerArray} sw - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, 4, 12 ]; // column-major\n* var sw = [ 1, -2, 6 ]; // column-major\n*\n* var o = ternaryLoopOrder( sh, sx, sy, sz, sw );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 2, 3, 4 ]\n*\n* var ssx = o.sx;\n* // returns [ 12, 4, 1 ]\n*\n* var ssy = o.sy;\n* // returns [ 24, 8, 1 ]\n*\n* var ssz = o.sz;\n* // returns [ 1, 4, 12 ]\n*\n* var ssw = o.sw;\n* // returns [ 1, -2, 6 ]\n*/\nfunction ternaryLoopOrder( sh, sx, sy, sz, sw ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz, sw ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ],\n\t\t'sw': tmp[ 4 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ternaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - third input array data type\n* @param {*} dtypeW - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = ternaryBlockSize( 'float64', 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction ternaryBlockSize( dtypeX, dtypeY, dtypeZ, dtypeW ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ, dtypeW ] );\n}\n\n\n// EXPORTS //\n\nexport default ternaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport anyIsEntryIn from '@stdlib/array-base-any-is-entry-in';\nimport format from '@stdlib/string-format';\nimport blockedaccessorternary2d from './2d_blocked_accessors.js';\nimport blockedaccessorternary3d from './3d_blocked_accessors.js';\nimport blockedaccessorternary4d from './4d_blocked_accessors.js';\nimport blockedaccessorternary5d from './5d_blocked_accessors.js';\nimport blockedaccessorternary6d from './6d_blocked_accessors.js';\nimport blockedaccessorternary7d from './7d_blocked_accessors.js';\nimport blockedaccessorternary8d from './8d_blocked_accessors.js';\nimport blockedaccessorternary9d from './9d_blocked_accessors.js';\nimport blockedaccessorternary10d from './10d_blocked_accessors.js';\nimport blockedternary2d from './2d_blocked.js';\nimport blockedternary3d from './3d_blocked.js';\nimport blockedternary4d from './4d_blocked.js';\nimport blockedternary5d from './5d_blocked.js';\nimport blockedternary6d from './6d_blocked.js';\nimport blockedternary7d from './7d_blocked.js';\nimport blockedternary8d from './8d_blocked.js';\nimport blockedternary9d from './9d_blocked.js';\nimport blockedternary10d from './10d_blocked.js';\nimport accessorternary0d from './0d_accessors.js';\nimport accessorternary1d from './1d_accessors.js';\nimport accessorternary2d from './2d_accessors.js';\nimport accessorternary3d from './3d_accessors.js';\nimport accessorternary4d from './4d_accessors.js';\nimport accessorternary5d from './5d_accessors.js';\nimport accessorternary6d from './6d_accessors.js';\nimport accessorternary7d from './7d_accessors.js';\nimport accessorternary8d from './8d_accessors.js';\nimport accessorternary9d from './9d_accessors.js';\nimport accessorternary10d from './10d_accessors.js';\nimport accessorternarynd from './nd_accessors.js';\nimport ternary0d from './0d.js';\nimport ternary1d from './1d.js';\nimport ternary2d from './2d.js';\nimport ternary3d from './3d.js';\nimport ternary4d from './4d.js';\nimport ternary5d from './5d.js';\nimport ternary6d from './6d.js';\nimport ternary7d from './7d.js';\nimport ternary8d from './8d.js';\nimport ternary9d from './9d.js';\nimport ternary10d from './10d.js';\nimport ternarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar TERNARY = [\n\tternary0d,\n\tternary1d,\n\tternary2d,\n\tternary3d,\n\tternary4d,\n\tternary5d,\n\tternary6d,\n\tternary7d,\n\tternary8d,\n\tternary9d,\n\tternary10d\n];\nvar ACCESSOR_TERNARY = [\n\taccessorternary0d,\n\taccessorternary1d,\n\taccessorternary2d,\n\taccessorternary3d,\n\taccessorternary4d,\n\taccessorternary5d,\n\taccessorternary6d,\n\taccessorternary7d,\n\taccessorternary8d,\n\taccessorternary9d,\n\taccessorternary10d\n];\nvar BLOCKED_TERNARY = [\n\tblockedternary2d, // 0\n\tblockedternary3d,\n\tblockedternary4d,\n\tblockedternary5d,\n\tblockedternary6d,\n\tblockedternary7d,\n\tblockedternary8d,\n\tblockedternary9d,\n\tblockedternary10d // 8\n];\nvar BLOCKED_ACCESSOR_TERNARY = [\n\tblockedaccessorternary2d, // 0\n\tblockedaccessorternary3d,\n\tblockedaccessorternary4d,\n\tblockedaccessorternary5d,\n\tblockedaccessorternary6d,\n\tblockedaccessorternary7d,\n\tblockedaccessorternary8d,\n\tblockedaccessorternary9d,\n\tblockedaccessorternary10d // 8\n];\nvar MAX_DIMS = TERNARY.length - 1;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if at least one ndarray data buffer implements the accessor protocol.\n*\n* @private\n* @param {ndarrayLike} x - first ndarray\n* @param {ndarrayLike} y - second ndarray\n* @param {ndarrayLike} z - third ndarray\n* @param {ndarrayLike} w - fourth ndarray\n* @returns {boolean} boolean indicating whether an ndarray data buffer implements the accessor protocol\n*/\nfunction hasAccessors( x, y, z, w ) {\n\treturn anyIsEntryIn( [ x, y, z, w ], 'accessorProtocol', true );\n}\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in input ndarrays and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing three input arrays and one output array\n* @param {Callback} fcn - ternary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getData from '@stdlib/ndarray-data-buffer';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n* var sz = [ 2, 2, 1 ];\n* var sw = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarrays:\n* var x = new ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' );\n* var y = new ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' );\n* var z = new ndarray( 'float64', zbuf, shape, sz, oz, 'row-major' );\n* var w = new ndarray( 'float64', wbuf, shape, sw, ow, 'row-major' );\n*\n* // Apply the ternary function:\n* ternary( [ x, y, z, w ], fcn );\n*\n* console.log( getData( w ) );\n* // => [ 2.5, 4.5, 6.5, 8.5, 10.5, 12.5 ]\n*/\nfunction ternary( arrays, fcn ) { // eslint-disable-line max-statements\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar wmmv;\n\tvar zmmv;\n\tvar shx;\n\tvar shy;\n\tvar shw;\n\tvar shz;\n\tvar iox;\n\tvar ioy;\n\tvar iow;\n\tvar ioz;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar sw;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar ow;\n\tvar oz;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar w;\n\tvar z;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\tz = ndarray2object( arrays[ 2 ] );\n\tw = ndarray2object( arrays[ 3 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tshz = z.shape;\n\tshw = w.shape;\n\tndims = shx.length;\n\tif (\n\t\tndims !== shy.length ||\n\t\tndims !== shz.length ||\n\t\tndims !== shw.length\n\t) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d. ndims(z) == %d. ndims(w) == %d.', ndims, shy.length, shz.length, shw.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\treturn ACCESSOR_TERNARY[ ndims ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn TERNARY[ ndims ]( x, y, z, w, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] || d !== shz[ i ] || d !== shw[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\treturn ACCESSOR_TERNARY[ ndims ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn TERNARY[ ndims ]( x, y, z, w, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\n\t// Determine whether the ndarrays have only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tz.shape = x.shape;\n\t\tw.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tz.strides = [ sz[i] ];\n\t\tw.strides = [ sw[i] ];\n\t\tif ( hasAccessors( x, y, w, z ) ) {\n\t\t\treturn ACCESSOR_TERNARY[ 1 ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn TERNARY[ 1 ]( x, y, z, w, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\tioz = iterationOrder( sz ); // +/-1\n\tiow = iterationOrder( sw ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif (\n\t\tiox !== 0 &&\n\t\tioy !== 0 &&\n\t\tioz !== 0 &&\n\t\tiow !== 0 &&\n\t\tord === strides2order( sy ) &&\n\t\tord === strides2order( sz ) &&\n\t\tord === strides2order( sw )\n\t) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\t\tzmmv = minmaxViewBufferIndex( shz, sz, z.offset );\n\t\twmmv = minmaxViewBufferIndex( shw, sw, w.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif (\n\t\t\tlen === ( xmmv[1]-xmmv[0]+1 ) &&\n\t\t\tlen === ( ymmv[1]-ymmv[0]+1 ) &&\n\t\t\tlen === ( zmmv[1]-zmmv[0]+1 ) &&\n\t\t\tlen === ( wmmv[1]-wmmv[0]+1 )\n\t\t) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioz === 1 ) {\n\t\t\t\toz = zmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toz = zmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( iow === 1 ) {\n\t\t\t\tow = wmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tow = wmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tz.shape = x.shape;\n\t\t\tw.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tz.strides = [ ioz ];\n\t\t\tw.strides = [ iow ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tz.offset = oz;\n\t\t\tw.offset = ow;\n\t\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\t\treturn ACCESSOR_TERNARY[ 1 ]( x, y, z, w, fcn );\n\t\t\t}\n\t\t\treturn TERNARY[ 1 ]( x, y, z, w, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\t\treturn ACCESSOR_TERNARY[ ndims ]( x, y, z, w, ord === 1, fcn );\n\t\t\t}\n\t\t\treturn TERNARY[ ndims ]( x, y, z, w, ord === 1, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\treturn BLOCKED_ACCESSOR_TERNARY[ ndims-2 ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn BLOCKED_TERNARY[ ndims-2 ]( x, y, z, w, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( hasAccessors( x, y, z, w ) ) {\n\t\treturn accessorternarynd( x, y, z, w, fcn );\n\t}\n\tternarynd( x, y, z, w, fcn );\n}\n\n\n// EXPORTS //\n\nexport default ternary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( [ 3.0 ] );\n* var zbuf = new Float64Array( [ 4.0 ] );\n* var wbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n* var sw = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary0d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 9.0 ]\n*/\nfunction ternary0d( x, y, z, w, fcn ) {\n\tw.data[ w.offset ] = fcn( x.data[ x.offset ], y.data[ y.offset ], z.data[ z.offset ] ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ternary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 5 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n* var sw = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary1d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5 ]\n*/\nfunction ternary1d( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx;\n\tvar dy;\n\tvar dz;\n\tvar dw;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\t// Note on variable naming convention: S#, where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx = x.strides[ 0 ];\n\tdy = y.strides[ 0 ];\n\tdz = z.strides[ 0 ];\n\tdw = w.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i = 0; i < S0; i++ ) {\n\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\tix += dx;\n\t\tiy += dy;\n\t\tiz += dz;\n\t\tiw += dw;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary2d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction ternary2d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t\tdw0 = sw[ 1 ];\n\t\tdw1 = sw[ 0 ] - ( S0*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t\tiw += dw0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t\tiw += dw1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary3d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction ternary3d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 2 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[2] );\n\t\tdw2 = sw[ 0 ] - ( S1*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t\tiw += dw0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t\tiw += dw1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t\tiw += dw2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n* var sw = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary4d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction ternary4d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dw#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t\tdw0 = sw[ 3 ];\n\t\tdw1 = sw[ 2 ] - ( S0*sw[3] );\n\t\tdw2 = sw[ 1 ] - ( S1*sw[2] );\n\t\tdw3 = sw[ 0 ] - ( S2*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t\tiw += dw2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t\tiw += dw3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary5d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary5d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t\tdw0 = sw[ 4 ];\n\t\tdw1 = sw[ 3 ] - ( S0*sw[4] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[3] );\n\t\tdw3 = sw[ 1 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 0 ] - ( S3*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t\tiw += dw1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t\tiw += dw2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t\tiw += dw3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t\tiw += dw4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary6d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary6d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t\tdw0 = sw[ 5 ];\n\t\tdw1 = sw[ 4 ] - ( S0*sw[5] );\n\t\tdw2 = sw[ 3 ] - ( S1*sw[4] );\n\t\tdw3 = sw[ 2 ] - ( S2*sw[3] );\n\t\tdw4 = sw[ 1 ] - ( S3*sw[2] );\n\t\tdw5 = sw[ 0 ] - ( S4*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t\tiw += dw3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t\tiw += dw4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t\tiw += dw5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary7d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary7d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t\tdw0 = sw[ 6 ];\n\t\tdw1 = sw[ 5 ] - ( S0*sw[6] );\n\t\tdw2 = sw[ 4 ] - ( S1*sw[5] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[4] );\n\t\tdw4 = sw[ 2 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 1 ] - ( S4*sw[2] );\n\t\tdw6 = sw[ 0 ] - ( S5*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t\tiw += dw3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t\tiw += dw4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t\tiw += dw5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t\tiw += dw6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary8d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary8d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t\tdw0 = sw[ 7 ];\n\t\tdw1 = sw[ 6 ] - ( S0*sw[7] );\n\t\tdw2 = sw[ 5 ] - ( S1*sw[6] );\n\t\tdw3 = sw[ 4 ] - ( S2*sw[5] );\n\t\tdw4 = sw[ 3 ] - ( S3*sw[4] );\n\t\tdw5 = sw[ 2 ] - ( S4*sw[3] );\n\t\tdw6 = sw[ 1 ] - ( S5*sw[2] );\n\t\tdw7 = sw[ 0 ] - ( S6*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t\tiw += dw4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t\tiw += dw5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t\tiw += dw6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t\tiw += dw7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary9d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary9d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t\tdw0 = sw[ 8 ];\n\t\tdw1 = sw[ 7 ] - ( S0*sw[8] );\n\t\tdw2 = sw[ 6 ] - ( S1*sw[7] );\n\t\tdw3 = sw[ 5 ] - ( S2*sw[6] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[5] );\n\t\tdw5 = sw[ 3 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 2 ] - ( S5*sw[3] );\n\t\tdw7 = sw[ 1 ] - ( S6*sw[2] );\n\t\tdw8 = sw[ 0 ] - ( S7*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t\tiw += dw5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t\tiw += dw6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t\tiw += dw7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t\tiw += dw8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary10d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary10d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t\tdw0 = sw[ 9 ];\n\t\tdw1 = sw[ 8 ] - ( S0*sw[9] );\n\t\tdw2 = sw[ 7 ] - ( S1*sw[8] );\n\t\tdw3 = sw[ 6 ] - ( S2*sw[7] );\n\t\tdw4 = sw[ 5 ] - ( S3*sw[6] );\n\t\tdw5 = sw[ 4 ] - ( S4*sw[5] );\n\t\tdw6 = sw[ 3 ] - ( S5*sw[4] );\n\t\tdw7 = sw[ 2 ] - ( S6*sw[3] );\n\t\tdw8 = sw[ 1 ] - ( S7*sw[2] );\n\t\tdw9 = sw[ 0 ] - ( S8*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t\tdw9 = sw[ 9 ] - ( S8*sw[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t\tiw += dw6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t\tiw += dw7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t\tiw += dw8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t\tiw += dw9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0 ] );\n* var ybuf = toAccessorArray( [ 2.0 ] );\n* var zbuf = toAccessorArray( [ 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n* var sw = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary0d( x, y, z, w, fcn );\n*\n* var v = w.data.get( 0 );\n* // returns 3.5\n*/\nfunction ternary0d( x, y, z, w, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\twset( w.data, w.offset, fcn( xget( x.data, x.offset ), yget( y.data, y.offset ), zget( z.data, z.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ternary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop interchange.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n* var sw = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary1d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5 ]\n*/\nfunction ternary1d( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx;\n\tvar dy;\n\tvar dz;\n\tvar dw;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\t// Note on variable naming convention: S#, where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx = x.strides[ 0 ];\n\tdy = y.strides[ 0 ];\n\tdz = z.strides[ 0 ];\n\tdw = w.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i = 0; i < S0; i++ ) {\n\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\tix += dx;\n\t\tiy += dy;\n\t\tiz += dz;\n\t\tiw += dw;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary2d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5 ]\n*/\nfunction ternary2d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t\tdw0 = sw[ 1 ];\n\t\tdw1 = sw[ 0 ] - ( S0*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t\tiw += dw0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t\tiw += dw1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary3d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary3d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 2 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[2] );\n\t\tdw2 = sw[ 0 ] - ( S1*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t\tiw += dw0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t\tiw += dw1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t\tiw += dw2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n* var sy = [ 8, 4, 2, 1 ];\n* var sz = [ 8, 4, 2, 1 ];\n* var sw = [ 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary4d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary4d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t\tdw0 = sw[ 3 ];\n\t\tdw1 = sw[ 2 ] - ( S0*sw[3] );\n\t\tdw2 = sw[ 1 ] - ( S1*sw[2] );\n\t\tdw3 = sw[ 0 ] - ( S2*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t\tiw += dw2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t\tiw += dw3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary5d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary5d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t\tdw0 = sw[ 4 ];\n\t\tdw1 = sw[ 3 ] - ( S0*sw[4] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[3] );\n\t\tdw3 = sw[ 1 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 0 ] - ( S3*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t\tiw += dw1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t\tiw += dw2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t\tiw += dw3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t\tiw += dw4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary6d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary6d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t\tdw0 = sw[ 5 ];\n\t\tdw1 = sw[ 4 ] - ( S0*sw[5] );\n\t\tdw2 = sw[ 3 ] - ( S1*sw[4] );\n\t\tdw3 = sw[ 2 ] - ( S2*sw[3] );\n\t\tdw4 = sw[ 1 ] - ( S3*sw[2] );\n\t\tdw5 = sw[ 0 ] - ( S4*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t\tiw += dw3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t\tiw += dw4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t\tiw += dw5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary7d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary7d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t\tdw0 = sw[ 6 ];\n\t\tdw1 = sw[ 5 ] - ( S0*sw[6] );\n\t\tdw2 = sw[ 4 ] - ( S1*sw[5] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[4] );\n\t\tdw4 = sw[ 2 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 1 ] - ( S4*sw[2] );\n\t\tdw6 = sw[ 0 ] - ( S5*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t\tiw += dw3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t\tiw += dw4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t\tiw += dw5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t\tiw += dw6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary8d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary8d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t\tdw0 = sw[ 7 ];\n\t\tdw1 = sw[ 6 ] - ( S0*sw[7] );\n\t\tdw2 = sw[ 5 ] - ( S1*sw[6] );\n\t\tdw3 = sw[ 4 ] - ( S2*sw[5] );\n\t\tdw4 = sw[ 3 ] - ( S3*sw[4] );\n\t\tdw5 = sw[ 2 ] - ( S4*sw[3] );\n\t\tdw6 = sw[ 1 ] - ( S5*sw[2] );\n\t\tdw7 = sw[ 0 ] - ( S6*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t\tiw += dw4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t\tiw += dw5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t\tiw += dw6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t\tiw += dw7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary9d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary9d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t\tdw0 = sw[ 8 ];\n\t\tdw1 = sw[ 7 ] - ( S0*sw[8] );\n\t\tdw2 = sw[ 6 ] - ( S1*sw[7] );\n\t\tdw3 = sw[ 5 ] - ( S2*sw[6] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[5] );\n\t\tdw5 = sw[ 3 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 2 ] - ( S5*sw[3] );\n\t\tdw7 = sw[ 1 ] - ( S6*sw[2] );\n\t\tdw8 = sw[ 0 ] - ( S7*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t\tiw += dw5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t\tiw += dw6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t\tiw += dw7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t\tiw += dw8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary10d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary10d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t\tdw0 = sw[ 9 ];\n\t\tdw1 = sw[ 8 ] - ( S0*sw[9] );\n\t\tdw2 = sw[ 7 ] - ( S1*sw[8] );\n\t\tdw3 = sw[ 6 ] - ( S2*sw[7] );\n\t\tdw4 = sw[ 5 ] - ( S3*sw[6] );\n\t\tdw5 = sw[ 4 ] - ( S4*sw[5] );\n\t\tdw6 = sw[ 3 ] - ( S5*sw[4] );\n\t\tdw7 = sw[ 2 ] - ( S6*sw[3] );\n\t\tdw8 = sw[ 1 ] - ( S7*sw[2] );\n\t\tdw9 = sw[ 0 ] - ( S8*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t\tdw9 = sw[ 9 ] - ( S8*sw[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = w.accessors[ 0 ];\n\twset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t\tiw += dw6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t\tiw += dw7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t\tiw += dw8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t\tiw += dw9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary2d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary2d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar ow1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tow1 = ow + ( j1*sw[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary3d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary3d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar ow1;\n\tvar ow2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tow2 = ow + ( j2*sw[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 6, 2, 2, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n* var sz = [ 6, 2, 2, 1 ];\n* var sw = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary4d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary4d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tow3 = ow + ( j3*sw[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\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\nexport default blockedternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary5d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary5d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tow4 = ow + ( j4*sw[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\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\nexport default blockedternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary6d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary6d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tow5 = ow + ( j5*sw[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\tiw += dw5;\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\nexport default blockedternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary7d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary7d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tow6 = ow + ( j6*sw[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\tiw += dw6;\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\nexport default blockedternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary8d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary8d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tow7 = ow + ( j7*sw[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\tiw += dw7;\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\nexport default blockedternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len, max-lines */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary9d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary9d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tow8 = ow + ( j8*sw[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\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\nexport default blockedternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary10d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary10d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar ow9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tow9 = ow + ( j9*sw[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tdw9 = sw[9] - ( s8*sw[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tow8 = ow9 + ( j8*sw[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw9;\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\nexport default blockedternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary2d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary2d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar ow1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tow1 = ow + ( j1*sw[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary3d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary3d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar ow1;\n\tvar ow2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tow2 = ow + ( j2*sw[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 6, 2, 2, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n* var sz = [ 6, 2, 2, 1 ];\n* var sw = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary4d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary4d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tow3 = ow + ( j3*sw[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\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\nexport default blockedternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary5d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary5d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tow4 = ow + ( j4*sw[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\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\nexport default blockedternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary6d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary6d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tow5 = ow + ( j5*sw[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\tiw += dw5;\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\nexport default blockedternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary7d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary7d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tow6 = ow + ( j6*sw[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\tiw += dw6;\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\nexport default blockedternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary8d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary8d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tow7 = ow + ( j7*sw[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\tiw += dw7;\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\nexport default blockedternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary9d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary9d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tow8 = ow + ( j8*sw[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\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\nexport default blockedternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary10d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary10d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar ow9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tow9 = ow + ( j9*sw[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tdw9 = sw[9] - ( s8*sw[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tow8 = ow9 + ( j8*sw[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw9;\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\nexport default blockedternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Recursively converts an ndarray to a generic array.\n*\n* @private\n* @param {Object} obj - array object\n* @param {(ArrayLikeObject|TypedArray|Buffer)} obj.data - data buffer\n* @param {Array} obj.accessors - element accessors\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {NonNegativeInteger} dim - dimension\n* @returns {(Array|Array)} output array\n*/\nfunction recurse( obj, shape, strides, offset, order, dim ) {\n\tvar stride;\n\tvar item;\n\tvar out;\n\tvar n;\n\tvar i;\n\n\tif ( dim >= shape.length ) {\n\t\treturn obj.accessors[ 0 ]( obj.data, offset );\n\t}\n\tout = [];\n\n\tn = shape[ dim ];\n\tstride = strides[ dim ];\n\n\tfor ( i = 0; i < n; i++ ) {\n\t\titem = recurse( obj, shape, strides, offset, order, dim+1 );\n\t\tout.push( item );\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default recurse;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Transpose a matrix (or a stack of matrices).\n*\n* @param {ndarray} x - input array\n* @throws {Error} must provide an array with two or more dimensions\n* @returns {ndarray} ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 3 ]\n*\n* var y = transpose( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* var bool = ( x.data === y.data );\n* // returns true\n*\n* bool = ( x.get( 0, 1 ) === y.get( 1, 0 ) );\n* // returns true\n*/\nfunction transpose( x ) {\n\tvar tmp;\n\tvar sh;\n\tvar st;\n\tvar N;\n\n\tsh = getShape( x, true );\n\tN = sh.length;\n\tif ( N < 2 ) {\n\t\tthrow new Error( 'invalid argument. Must provide an ndarray having two or more dimensions.' );\n\t}\n\tst = getStrides( x, true );\n\n\ttmp = sh[ N-2 ];\n\tsh[ N-2 ] = sh[ N-1 ];\n\tsh[ N-1 ] = tmp;\n\n\ttmp = st[ N-2 ];\n\tst[ N-2 ] = st[ N-1 ];\n\tst[ N-1 ] = tmp;\n\n\t// FIXME: handling of offset seems incorrect. Should also handle READ-ONLY arrays.\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, strides2offset( sh, st ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default transpose;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Expands a dimension over multiple dimensions.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to be unflattened\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @param {NonNegativeIntegerArray} out - output array\n* @throws {RangeError} second argument is out-of-bounds\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {NonNegativeIntegerArray} unflattened shape\n*\n* @example\n* var o = [ 0, 0, 0, 0 ];\n*\n* var out = unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ], o );\n* // returns [ 3, 2, 2, 1 ]\n*\n* var bool = ( out === o );\n* // returns true\n*/\nfunction unflattenShape( shape, dim, sizes, out ) {\n\tvar S1;\n\tvar S2;\n\tvar N;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tS1 = shape.length;\n\td = normalizeIndex( dim, S1-1 );\n\tif ( d < 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', S1, dim ) );\n\t}\n\tS2 = sizes.length;\n\tN = numel( sizes );\n\tif ( N !== shape[ d ] ) {\n\t\tthrow new RangeError( format( 'invalid argument. Product of the sizes must be equal to the size of the dimension to be unflattened. Dimension: %d. Size: %d. Value: `[%s]`.', d, shape[ d ], join( sizes, ', ' ) ) );\n\t}\n\tfor ( i = 0; i < d; i++ ) {\n\t\tout[ i ] = shape[ i ];\n\t}\n\tj = 0;\n\tfor ( ; i < d+S2; i++ ) {\n\t\tout[ i ] = sizes[ j ];\n\t\tj += 1;\n\t}\n\tj = d + 1;\n\tif ( j < S1 ) {\n\t\tfor ( ; i < S1+S2-1; i++ ) {\n\t\t\tout[ i ] = shape[ j ];\n\t\t\tj += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default unflattenShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Expands a dimension over multiple dimensions.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to be unflattened\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @throws {RangeError} second argument is out-of-bounds\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {NonNegativeIntegerArray} unflattened shape\n*\n* @example\n* var sh = unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ] );\n* // returns [ 3, 2, 2, 1 ]\n*/\nfunction unflattenShape( shape, dim, sizes ) {\n\tvar out = zeros( shape.length + sizes.length - 1 );\n\tassign( shape, dim, sizes, out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default unflattenShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isRowMajorString from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport unflattenShape from '@stdlib/ndarray-base-unflatten-shape';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which a specified dimension is expanded over multiple dimensions.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension index\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide a valid dimension index\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* // returns [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]\n*\n* var out = unflatten( x, 0, [ 2, 3 ], false );\n* // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ] ]\n*/\nfunction unflatten( x, dim, sizes, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar isrm;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar S2;\n\tvar o;\n\tvar d;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\to = strides2order( st );\n\tif ( o === 0 || o === 3 ) {\n\t\t// Fallback to stated layout when unable to infer the underlying physical layout:\n\t\tisrm = isRowMajorString( ord );\n\t} else {\n\t\tisrm = ( o === 1 );\n\t}\n\n\t// Normalize the dimension to be unflattened:\n\td = normalizeIndex( dim, sh.length-1 );\n\n\t// Compute the output shape:\n\tshape = unflattenShape( sh, d, sizes );\n\n\t// Resolve the output strides:\n\tstrides = [];\n\tS2 = sizes.length;\n\tfor ( i = 0; i < d; i++ ) {\n\t\tstrides.push( st[ i ] );\n\t}\n\tfor ( i = 0; i < S2; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\tfor ( i = d+1; i < sh.length; i++ ) {\n\t\tstrides.push( st[ i ] );\n\t}\n\t// Compute strides for the unflattened dimensions...\n\tif ( isrm ) {\n\t\tstrides[ d+S2-1 ] = st[ d ];\n\t\tfor ( i = S2-1; i > 0; i-- ) {\n\t\t\tstrides[ d+i-1 ] = strides[ d+i ] * sizes[ i ];\n\t\t}\n\t} else {\n\t\tstrides[ d ] = st[ d ];\n\t\tfor ( i = 0; i < S2-1; i++ ) {\n\t\t\tstrides[ d+i+1 ] = strides[ d+i ] * sizes[ i ];\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default unflatten;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Expand a dimension over multiple dimensions.\n*\n* @module @stdlib/ndarray-base-unflatten-shape\n*\n* @example\n* import unflattenShape from '@stdlib/ndarray-base-unflatten-shape';\n*\n* var sh = unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ] );\n* // returns [ 3, 2, 2, 1 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport format from '@stdlib/string-format';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - unary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d.', ndims, shy.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, ord === 1, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, ord === 1, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn );\n\t}\n\tunarynd( x, y, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.data[ y.offset ] = fcn( x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unary2d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary3d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary4d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary5d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary6d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary7d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary8d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary9d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary10d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 30.0, 40.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary2d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary3d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary4d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary5d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary6d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary7d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary8d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary9d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary10d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an n-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulatend( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulatend( x, initial, clbk ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar acc;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulatend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an n-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulatend( x, 0.0, add );\n* // returns 18.0\n*/\nfunction accumulatend( x, initial, clbk ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar acc;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulatend;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an input ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulateUnary( [ x ], 0.0, add );\n* // returns 39.0\n*/\nfunction accumulateUnary( arrays, initial, clbk ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, initial, clbk );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, initial, clbk );\n\t}\n\t// Determine the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, initial, clbk );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, initial, clbk );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, initial, clbk );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, initial, clbk );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, initial, clbk );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, initial, clbk );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, initial, clbk );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, initial, clbk );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, initial, clbk );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, initial, clbk );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorunarynd( x, initial, clbk );\n\t}\n\treturn unarynd( x, initial, clbk );\n}\n\n\n// EXPORTS //\n\nexport default accumulateUnary;\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* Performs a reduction over elements in a zero-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate0d( x, 0.0, add );\n* // returns 2.0\n*/\nfunction accumulate0d( x, initial, clbk ) {\n\treturn clbk( initial, x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default accumulate0d;\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* Performs a reduction over elements in a one-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate1d( x, 0.0, add );\n* // returns 20.0\n*/\nfunction accumulate1d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar acc;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\tix += dx0;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate2d( x, 0.0, add );\n* // returns 18.0\n*/\nfunction accumulate2d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate3d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate3d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate4d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate4d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate5d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate5d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate6d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate6d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate7d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate7d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate8d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate8d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate9d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate9d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate10d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate10d;\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* Performs a reduction over elements in a zero-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate0d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction accumulate0d( x, initial, clbk ) {\n\treturn clbk( initial, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default accumulate0d;\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* Performs a reduction over elements in a one-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate1d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate1d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar acc;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\tix += dx0;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate2d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate2d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate3d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate3d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate4d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate4d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate5d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate5d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate6d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate6d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate7d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate7d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate8d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate8d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate9d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate9d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate10d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate2d( x, 0.0, add );\n* // returns 18.0\n*/\nfunction blockedaccumulate2d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate3d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate3d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate4d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate4d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate5d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate5d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate6d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate6d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate7d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate7d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate8d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate8d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate9d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate9d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate10d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate2d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate2d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate3d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate3d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate4d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate4d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate5d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate5d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate6d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate6d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate7d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate7d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate8d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate8d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate9d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate9d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate10d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport MAX from '@stdlib/constants-array-max-typed-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is typed-array-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is typed-array-like\n*\n* @example\n* var arr = {\n* 'BYTES_PER_ELEMENT': 8,\n* 'length': 10,\n* 'byteOffset': 0,\n* 'byteLength': 10\n* };\n* var val = isTypedArrayLike( arr );\n* // returns true\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var val = isTypedArrayLike( new Int8Array( 4 ) );\n* // returns true\n*\n* @example\n* var val = isTypedArrayLike( [] );\n* // returns false\n*\n* @example\n* var val = isTypedArrayLike( {} );\n* // returns false\n*\n* @example\n* var val = isTypedArrayLike( null );\n* // returns false\n*\n* @example\n* var val = isTypedArrayLike( 'beep' );\n* // returns false\n*/\nfunction isTypedArrayLike( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object' &&\n\t\tisNonNegativeInteger( value.length ) &&\n\t\tvalue.length <= MAX &&\n\t\ttypeof value.BYTES_PER_ELEMENT === 'number' &&\n\t\ttypeof value.byteOffset === 'number' &&\n\t\ttypeof value.byteLength === 'number'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isTypedArrayLike;\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\nimport isFunction from '@stdlib/assert-is-function';\nimport isTypedArrayLike from '@stdlib/assert-is-typed-array-like';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport reinterpretComplex64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpretComplex128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport serialize from '@stdlib/ndarray-base-serialize-meta-data';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolveEnum( 'complex64' );\nvar COMPLEX128 = resolveEnum( 'complex128' );\nvar BOOLEAN = resolveEnum( 'bool' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a unary function to an input ndarray.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( x, y )\n* ```\n*\n* where\n*\n* - **x**: input ndarray.\n* - **y**: output ndarray.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( xbuf, metaX, ybuf, metaY )\n* ```\n*\n* where\n*\n* - **xbuf**: input ndarray data buffer.\n* - **metaX**: serialized input ndarray meta data.\n* - **ybuf**: output array data buffer.\n* - **metaY**: serialized output ndarray meta data.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( x, y )\n* ```\n*\n* where\n*\n* - **x**: input ndarray.\n* - **y**: output ndarray.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* function addon( x, metaX, y, metaY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( x, y ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with ndarray arguments:\n* var x = array( [ [ 1, 2], [ 3, 4 ] ] );\n* var y = zeros( [ 2, 2 ] );\n* f( x, y );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {ndarray} x - input array\n\t* @param {ndarray} y - output array\n\t* @throws {TypeError} unable to resolve an ndarray function supporting the provided argument data types\n\t* @returns {ndarray} output array\n\t*/\n\tfunction dispatcher( x, y ) {\n\t\tvar dtypeX;\n\t\tvar dtypeY;\n\t\tvar dataX;\n\t\tvar dataY;\n\t\tvar viewX;\n\t\tvar viewY;\n\n\t\tdataX = getData( x );\n\t\tdataY = getData( y );\n\n\t\t// WARNING: we assume that, if we're provided something which has a data buffer resembling a typed array, we're provided an ndarray with a typed array buffer; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( dataX ) || !isTypedArrayLike( dataY ) ) {\n\t\t\tfallback( x, y );\n\t\t\treturn y;\n\t\t}\n\t\tdtypeX = resolveEnum( getDType( x ) );\n\t\tdtypeY = resolveEnum( getDType( y ) );\n\t\tif ( dtypeX === null || dtypeY === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve an ndarray function supporting the provided argument data types.' );\n\t\t}\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( dataX, 0 );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( dataX, 0 );\n\t\t} else if ( dtypeX === BOOLEAN ) {\n\t\t\tviewX = reinterpretBoolean( dataX, 0 );\n\t\t} else {\n\t\t\tviewX = dataX;\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( dataY, 0 );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( dataY, 0 );\n\t\t} else if ( dtypeY === BOOLEAN ) {\n\t\t\tviewY = reinterpretBoolean( dataY, 0 );\n\t\t} else {\n\t\t\tviewY = dataY;\n\t\t}\n\t\taddon( viewX, serialize( x ), viewY, serialize( y ) );\n\t\treturn y;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default dispatch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an input ndarray according to a callback function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unaryBy( [ x, y ], scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unaryBy( arrays, fcn, clbk, thisArg ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, ord === 1, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, ord === 1, fcn, clbk, thisArg );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn, clbk, thisArg );\n\t}\n\tunarynd( x, y, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default unaryBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0 ]\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.data[ ox ], 0, [ ox, oy ], [ x, y ] );\n\tif ( v !== void 0 ) {\n\t\ty.data[ oy ] = fcn( v );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40, 80, 120, 160 ]\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unary2d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary3d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/* eslint-disable max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary4d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/* eslint-disable max-depth, max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary5d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary6d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary7d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary8d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary9d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary10d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.accessors[ 0 ]( x.data, ox ), 0, [ ox, oy ], [ x, y ] ); // eslint-disable-line max-len\n\tif ( v !== void 0 ) {\n\t\ty.accessors[ 1 ]( y.data, oy, fcn( v ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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 id-length */\n\n'use strict';\n\n// MODULES //\n\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport promotionRules from '@stdlib/ndarray-promotion-rules';\nimport defaults from '@stdlib/ndarray-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_SIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.signed_integer' );\nvar DEFAULT_UNSIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.unsigned_integer' );\nvar DEFAULT_REAL_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.real_floating_point' );\n\n\n// MAIN //\n\n/**\n* Resolves the input ndarray casting data type for a unary function.\n*\n* @param {string} idtype - input ndarray data type\n* @param {string} odtype - output ndarray data type\n* @param {string} policy - input ndarray data type casting policy\n* @throws {TypeError} third argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} data type\n*\n* @example\n* var dt = resolve( 'float32', 'float64', 'none' );\n* // returns \n*/\nfunction resolve( idtype, odtype, policy ) {\n\tvar dt;\n\tif ( policy === 'none' ) {\n\t\treturn idtype;\n\t}\n\tif ( policy === 'output' ) {\n\t\treturn odtype;\n\t}\n\tif ( policy === 'promoted' ) {\n\t\tdt = promotionRules( idtype, odtype );\n\t\tif ( dt === -1 ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unable to promote the input and output data types. Input data type: %s. Output data type: %s.', idtype, odtype ) );\n\t\t}\n\t\treturn dt;\n\t}\n\tif ( policy === 'accumulation' ) {\n\t\t// If the input data type is floating-point, allow accumulation in that data type as overflow/underflow is handled naturally as a built-in feature of that data type...\n\t\tif ( isFloatingPointDataType( idtype ) || idtype === 'generic' ) { // NOTE: we may want to revisit this in the future for float16/complex32, where the value range is much more limited\n\t\t\treturn idtype;\n\t\t}\n\t\t// Unless the input data type value range is larger than the default un/signed integer data type, accumulate in the default un/signed integer data type, as accumulating in smaller range integer data types (e.g., `int8`) are at high risk for overflow, especially for ndarrays containing many elements...\n\t\tif ( isUnsignedIntegerDataType( idtype ) ) {\n\t\t\treturn promotionRules( idtype, DEFAULT_UNSIGNED_INTEGER_DTYPE );\n\t\t}\n\t\tif ( isSignedIntegerDataType( idtype ) ) {\n\t\t\treturn promotionRules( idtype, DEFAULT_SIGNED_INTEGER_DTYPE );\n\t\t}\n\t\t// For all other input data types, accumulate in the default real-valued floating-point data type...\n\t\treturn DEFAULT_REAL_FLOATING_POINT_DTYPE;\n\t}\n\t// Check for an explicit data type...\n\tif ( isDataType( policy ) ) {\n\t\treturn policy;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Third argument must be a supported casting policy. Value: `%s`.', policy ) );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a unary function.\n*\n* @param {*} dtype - input ndarray data type\n* @param {(string|*)} policy - output ndarray data type policy\n* @throws {TypeError} second argument must be a recognized data type policy\n* @returns {DataType} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( dtype, policy ) {\n\treturn outputDataType( [ dtype ], policy );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unarynd( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unarynd( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tset( ybuf, io[1], fcn( v, opts ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unarynd( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unarynd( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tybuf[ io[1] ] = fcn( v, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [ 0, 1, 2, 3 ] );\n*\n* var v = y.data;\n* // returns [ 78.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.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 unaryReduceStrided1d( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\tvar strategy;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input array prior to performing a reduction:\n\tstrategy = reshapeStrategy( views[ 0 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, opts );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, strategy, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tsy = y.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tsl = [ sl[i] ];\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( fcn, arr, views, sl, strategy, opts );\n\t\t}\n\t\treturn UNARY[ 1 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, ord === 1, strategy, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, ord === 1, strategy, opts );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, views, sl, strategy, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, views, sl, strategy, opts );\n\t}\n\tunarynd( fcn, arr, views, sl, strategy, opts );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceStrided1d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary0d( wrapper, [ x, y ], strategy, {} );\n*\n* var v = y.data;\n* // returns [ 10.0 ]\n*/\nfunction unary0d( fcn, arrays, strategy, opts ) {\n\tarrays[ 0 ] = strategy( arrays[ 0 ] );\n\tarrays[ 1 ].data[ arrays[ 1 ].offset ] = fcn( without( arrays, 1 ), opts );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary1d( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unary1d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tybuf[ iv[1] ] = fcn( v, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary2d( wrapper, [ x, y ], views, [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tybuf[ iv[1] ] = fcn( v, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary10d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary0d( wrapper, [ x, y ], strategy, {} );\n*\n* var v = y.data.get( 0 );\n* // returns 10.0\n*/\nfunction unary0d( fcn, arrays, strategy, opts ) {\n\tvar y = arrays[ 1 ];\n\tarrays[ 0 ] = strategy( arrays[ 0 ] );\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( without( arrays, 1 ), opts ) );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary1d( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unary1d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tset( ybuf, iv[1], fcn( v, opts ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary2d( wrapper, [ x, y ], views, [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2]) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary2d( wrapper, [ x, y ], views, [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary2d( wrapper, [ x, y ], views, [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-strided1d\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var sum = unaryReduceStrided1d.factory( wrapper );\n* // returns \n*\n* // Perform a reduction:\n* sum( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var sum = factory( wrapper );\n* // returns \n*\n* // Perform a reduction:\n* sum( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unarynd( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ , , ]\n*/\nfunction unarynd( fcn, arrays, views, strides, strategy, opts ) {\n\tvar len;\n\tvar arr;\n\tvar sh;\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// Resolve the output ndarray and associated shape:\n\tsh = arrays[ 1 ].shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tfcn( v, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [ 0, 1, 2, 3 ] );\n*\n* var v = y.data.get( 0 );\n* // returns \n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 12 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ , ], [ , ] ], [ [ , ], [ , ] ], [ [ , ], [ , ] ] ]\n*/\nfunction unaryReduceStrided1d( fcn, arrays, dims, options ) {\n\tvar strategy;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input array prior to performing a reduction:\n\tstrategy = reshapeStrategy( views[ 0 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\treturn UNARY[ K ]( fcn, arr, strategy, opts );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tsy = y.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tsl = [ sl[i] ];\n\t\treturn UNARY[ 1 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\treturn UNARY[ K ]( fcn, arr, views, sl, ord === 1, strategy, opts );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tunarynd( fcn, arr, views, sl, strategy, opts );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceStrided1d;\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* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new ResultsArray( 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary0d( ztest, [ x, y, alternative, alpha, mu, sigma ], strategy, {} );\n*\n* var v = y.data.get( 0 );\n* // returns \n*/\nfunction unary0d( fcn, arrays, strategy, opts ) {\n\tarrays[ 0 ] = strategy( arrays[ 0 ] );\n\tfcn( arrays, opts );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary1d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ , , ]\n*/\nfunction unary1d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar dv0;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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 non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tfcn( v, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary2d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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 non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tfcn( v, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary3d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ , , ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tfcn( v, opts );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary4d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ , , ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tfcn( v, opts );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary5d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ , , ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary6d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ , , ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary7d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ , , ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary8d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, strategy, 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 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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary9d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, strategy, 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 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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary10d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, strategy, 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 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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary2d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, strategy, opts ) {\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tfcn( v, opts );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary3d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ , , ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, strategy, opts ) {\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary4d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ , , ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, strategy, opts ) {\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary5d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ , , ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary6d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ , , ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary7d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ , , ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary8d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary9d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary10d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( 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\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\nexport default blockedunary10d;\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* Initialize ndarray-like objects for representing zero-dimensional sub-array views of the output and 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} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} 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\nexport default 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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-strided1d-assign-struct\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import base from '@stdlib/stats-base-ndarray-ztest';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var ztest = unaryReduceStrided1d.factory( base );\n* // returns \n*\n* // Perform a reduction:\n* ztest( [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import base from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var ztest = factory( base );\n* // returns \n*\n* // Perform a reduction:\n* ztest( [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', ... ]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array boolean data type.\n*\n* @name isBooleanDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'complex64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'complex128' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nvar isBooleanDataType = contains( dtypes( 'boolean' ) );\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `BooleanArray` as a `Uint8Array`.\n*\n* @param {BooleanArray} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Uint8Array} `Uint8Array` view\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var x = new BooleanArray( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Uint8Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport { factory as ind } from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Replaces elements in an indexed array with provided values.\n*\n* @private\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = [ 5, 6, 7, 8 ];\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = indexed( x, indices, values, 1, getIndex, x.length-1 );\n* // returns [ 8, 6, 7, 5 ]\n*/\nfunction indexed( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tiv = 0;\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tj = getIndex( indices[ i ], maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces specified elements of an accessor array with provided values.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Object} indices - index object\n* @param {Object} values - values object\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var indices = toAccessorArray( [ 1, 2 ] );\n* var values = toAccessorArray( [ 20, 30 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = accessors( arraylike2object( x ), arraylike2object( indices ), arraylike2object( values ), 1, getIndex, x.length-1 );\n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* v = x.get( 1 );\n* // returns 20\n*/\nfunction accessors( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar xdata;\n\tvar idata;\n\tvar vdata;\n\tvar xset;\n\tvar iget;\n\tvar vget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\txdata = x.data;\n\tidata = indices.data;\n\tvdata = values.data;\n\n\txset = x.accessors[ 1 ];\n\tiget = indices.accessors[ 0 ];\n\tvget = values.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\txset( xdata, j, vget( vdata, iv ) );\n\t\tiv += stride;\n\t}\n\treturn xdata;\n}\n\n/**\n* Replaces elements in a complex array with provided values.\n*\n* @private\n* @param {Collection} x - real-valued floating-point input array view\n* @param {Object} indices - index array object\n* @param {Collection} values - real-valued floating-point values array view\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array view\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* var indices = [ 0, 2 ];\n* var values = new Float64Array( [ 10.0, 20.0, 50.0, 60.0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = complex( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 10.0, 20.0, 3.0, 4.0, 50.0, 60.0, 7.0, 8.0 ]\n*/\nfunction complex( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar sv;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tsv = stride * 2; // note: multiply by 2, as real-valued values array consists of interleaved real and imaginary components\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tk = j * 2;\n\t\tx[ k ] = values[ iv ];\n\t\tx[ k+1 ] = values[ iv+1 ];\n\t\tiv += sv;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces elements in a boolean array with provided values.\n*\n* @private\n* @param {Uint8Array} x - input array\n* @param {Object} indices - index array object\n* @param {Uint8Array} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Uint8Array} input array\n*\n* @example\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import Uint8Array from '@stdlib/array-uint8';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Uint8Array( [ 1, 0, 0, 1 ] );\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = new Uint8Array( [ 0, 1, 1, 0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = boolean( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 0, 1, 1, 0 ]\n*/\nfunction boolean( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Replaces specified elements of an array with provided values.\n*\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {string} mode - index mode\n* @throws {Error} third argument must be broadcast compatible with the second argument\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 20, 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 20, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 30, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction put( x, indices, values, mode ) {\n\tvar getIndex;\n\tvar stride;\n\tvar max;\n\tvar xo;\n\tvar io;\n\tvar vo;\n\n\t// Broadcast the `values` array...\n\tif ( indices.length > 0 ) { // note: this allows `indices` to be empty and `values` to be non-empty (and not broadcast compatible with `indices`) to allow the potential use case where having an empty `indices` array is expected behavior and you don't want to trigger an exception simply because `values` has elements\n\t\t// Note that this effectively in-lines logic from `@stdlib/array/base/broadcast-array` in order to avoid unnecessary object creation...\n\t\tif ( values.length === indices.length ) {\n\t\t\tstride = 1;\n\t\t} else if ( values.length === 1 ) {\n\t\t\tstride = 0;\n\t\t} else {\n\t\t\tthrow new Error( format( 'invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).', values.length, indices.length ) );\n\t\t}\n\t}\n\t// Resolve a function for returning an index according to the specified index mode:\n\tgetIndex = ind( mode );\n\n\t// Resolve the maximum index:\n\tmax = x.length - 1;\n\n\txo = arraylike2object( x );\n\tio = arraylike2object( indices );\n\tvo = arraylike2object( values );\n\tif (\n\t\txo.accessorProtocol ||\n\t\tio.accessorProtocol ||\n\t\tvo.accessorProtocol\n\t) {\n\t\t// Note: we only explicitly support select dtype pairs, as this function should not be concerned with casting rules, etc. That is left to userland...\n\t\tif ( isComplexDataType( xo.dtype ) && isComplexDataType( vo.dtype ) ) {\n\t\t\tcomplex( reinterpretComplex( x, 0 ), io, reinterpretComplex( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\tif ( isBooleanDataType( xo.dtype ) && isBooleanDataType( vo.dtype ) ) {\n\t\t\tboolean( reinterpretBoolean( x, 0 ), io, reinterpretBoolean( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\taccessors( xo, io, vo, stride, getIndex, max );\n\t\treturn x;\n\t}\n\tindexed( x, indices, values, stride, getIndex, max );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default put;\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\nimport put from '@stdlib/array-base-put';\nimport { assign as ind2sub } from '@stdlib/ndarray-base-ind2sub';\nimport zeros from '@stdlib/array-base-zeros';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Wraps a provided callback function.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {ndarray} view - reduced view of the input ndarray\n* @param {NonNegativeIntegerArray} idx - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - loop dimensions\n* @param {NonNegativeIntegerArray} lidx - current loop iteration indices\n* @param {NonNegativeIntegerArray} cdims - core dimensions\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {Function} callback wrapper\n*/\nfunction wrap( arr, view, idx, ldims, lidx, cdims, clbk, thisArg ) {\n\tvar cidx = zeros( cdims.length ); // workspace for storing core iteration indices\n\tput( idx, ldims, lidx, MODE );\n\treturn wrapper;\n\n\t/**\n\t* Invokes a callback function.\n\t*\n\t* @private\n\t* @param {*} v - value\n\t* @param {NonNegativeInteger} aidx - current array element index\n\t* @returns {*} result\n\t*/\n\tfunction wrapper( v, aidx ) {\n\t\tind2sub( view.shape, view.strides, view.offset, view.order, aidx, MODE, cidx ); // eslint-disable-line max-len\n\t\tput( idx, cdims, cidx, MODE );\n\t\treturn clbk.call( thisArg, v, idx.slice(), arr );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unarynd( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 6.0, 14.0, 22.0 ] ]\n*/\nfunction unarynd( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar sub;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar f;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tset( ybuf, io[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unarynd( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction unarynd( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar sub;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar f;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tybuf[ io[1] ] = ( hasOpts ) ? fcn( v, f, opts ) : fcn( v, f );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport zeros from '@stdlib/array-base-zeros';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function accepting a callback and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n* @param {Options} [options] - function options\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the expected number of dimensions\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( maxBy, [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( maxBy, [ x, y ], [ 0, 1, 2, 3 ], clbk );\n*\n* var v = y.data;\n* // returns [ 24.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( maxBy, [ x, y ], [], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 2.0, 4.0 ], [ 6.0, 8.0 ] ], [ [ 10.0, 12.0 ], [ 14.0, 16.0 ] ], [ [ 18.0, 20.0 ], [ 22.0, 24.0 ] ] ]\n*/\nfunction unaryReduceStrided1dBy( fcn, arrays, dims, options, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar workspace;\n\tvar strategy;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar nargs;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar FLG;\n\tvar ctx;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar cb;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tFLG = false;\n\n\t// Case: ( fcn, arrays, dims, clbk )\n\tif ( nargs < 5 ) {\n\t\topts = {};\n\t\tcb = options;\n\t}\n\t// Case: ( fcn, arrays, dims, options, clbk, thisArg )\n\telse if ( nargs > 5 ) {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t\tctx = thisArg;\n\t}\n\t// Case: ( fcn, arrays, dims, clbk, thisArg )\n\telse if ( isFunction( options ) ) {\n\t\topts = {};\n\t\tcb = options;\n\t\tctx = clbk;\n\t}\n\t// Case: ( fcn, arrays, dims, options, clbk )\n\telse {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Initialize a workspace for storing iteration indices:\n\tworkspace = zeros( ndims );\n\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input array prior to performing a reduction:\n\tstrategy = reshapeStrategy( views[ 0 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, workspace, ldims, d, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, workspace, ldims, d, opts, FLG, cb, ctx );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, workspace, views, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tsy = y.strides;\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) {\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tunarynd( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceStrided1dBy;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( maxBy, [ x, y ], strategy, ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data;\n* // returns [ 8.0 ]\n*/\nfunction unary0d( fcn, arrays, strategy, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar arr;\n\tvar x;\n\tvar y;\n\tvar f;\n\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\n\tf = wrap( x.ref, x, ibuf, ldims, [], cdims, clbk, thisArg );\n\n\tarr = without( arrays, 1 );\n\tarr[ 0 ] = strategy( x );\n\n\ty.data[ y.offset ] = ( hasOpts ) ? fcn( arr, opts, f ) : fcn( arr, f );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 8.0, 16.0, 24.0 ]\n*/\nfunction unary1d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction unary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i1, i0 ], cdims, clbk, thisArg );\n\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\n\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv1 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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, dv3 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary5d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary6d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary7d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary8d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary9d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( maxBy, [ x, y ], strategy, ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data.get( 0 );\n* // returns 8.0\n*/\nfunction unary0d( fcn, arrays, strategy, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar arr;\n\tvar x;\n\tvar y;\n\tvar f;\n\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\n\tf = wrap( x.ref, x, ibuf, ldims, [], cdims, clbk, thisArg );\n\n\tarr = without( arrays, 1 );\n\tarr[ 0 ] = strategy( x );\n\n\tif ( hasOpts ) {\n\t\ty.accessors[ 1 ]( y.data, y.offset, fcn( arr, opts, f ) );\n\t} else {\n\t\ty.accessors[ 1 ]( y.data, y.offset, fcn( arr, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 8.0, 16.0, 24.0 ]\n*/\nfunction unary1d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ): fcn( v, f ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 6.0, 14.0, 22.0 ] ]\n*/\nfunction unary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar set;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i1, i0 ], cdims, clbk, thisArg );\n\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\n\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv1 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar set;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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, dv3 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary5d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary6d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary7d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary8d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary9d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary2d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary3d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary4d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary5d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary6d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary7d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary8d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary9d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 6.0, 14.0, 22.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary2d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar ov1;\n\tvar ov2;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary3d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary4d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary5d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary6d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary7d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary8d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary9d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function accepting a callback and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-strided1d-by\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n* import unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( wrapper, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n* import unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var max = unaryReduceStrided1dBy.factory( maxBy );\n* // returns \n*\n* // Perform a reduction:\n* max( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function accepting a callback and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var max = factory( maxBy );\n* // returns \n*\n* // Perform a reduction:\n* max( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function according to a callback function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @param {Function} clbk - callback function\n\t* @param {thisArg} [thisArg] - callback execution context\n\t* @returns {void}\n\t*/\n\tfunction reducer( arrays, dims, options, clbk, thisArg ) {\n\t\tvar nargs = arguments.length;\n\t\tif ( nargs < 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options );\n\t\t}\n\t\tif ( nargs === 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options, clbk );\n\t\t}\n\t\treturn reduce( fcn, arrays, dims, options, clbk, thisArg );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport ndarrayAssign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nfunction UnaryStrided1dDispatch( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatch ) ) {\n\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'apply', function apply( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = max.assign( x, y );\n* // returns \n*\n* var v = out.get();\n* // returns 2.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'assign', function assign( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting ); // eslint-disable-line max-len\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatch;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray according to a callback function.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatchBy} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nfunction UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatchBy ) ) {\n\t\treturn new UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'apply', function apply( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar flg;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// Check whether we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-3 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Case: ( ... )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var out = maxBy.assign( x, y, clbk );\n* // returns \n*\n* var v = out.get();\n* // returns 4.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'assign', function assign( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// Case: ( ..., out )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., out, options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., out, clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatchBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray data types.\n*\n* @module @stdlib/ndarray-dtypes\n*\n* @example\n* import dtypes from '@stdlib/ndarray-dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport castReturn from '@stdlib/complex-base-cast-return';\nimport complexCtors from '@stdlib/complex-ctors';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast)...\n\tif ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( y.dtype ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray according to a callback function.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatchBy} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nfunction UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatchBy ) ) {\n\t\treturn new UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'apply', function apply( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar flg;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// Check whether we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-3 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Case: ( ... )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var out = maxBy.assign( x, y, clbk );\n* // returns \n*\n* var v = out.get();\n* // returns 4.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'assign', function assign( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// Case: ( ..., out )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., out, options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., out, clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatchBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray data types.\n*\n* @module @stdlib/ndarray-dtypes\n*\n* @example\n* import dtypes from '@stdlib/ndarray-dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport castReturn from '@stdlib/complex-base-cast-return';\nimport complexCtors from '@stdlib/complex-ctors';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast)...\n\tif ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( y.dtype ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport ndarrayAssign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nfunction UnaryStrided1dDispatch( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatch ) ) {\n\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'apply', function apply( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = max.assign( x, y );\n* // returns \n*\n* var v = out.get();\n* // returns 2.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'assign', function assign( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting ); // eslint-disable-line max-len\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatch;\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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tset( ybuf, io[1], fcn( views, opts ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tybuf[ io[1] ] = fcn( views, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = [ false ];\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [ 0, 1, 2, 3 ] );\n*\n* var v = y.data;\n* // returns [ true ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 12 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, true ], [ true, true ] ], [ [ true, false ], [ true, true ] ], [ [ true, true ], [ true, true ] ] ]\n*/\nfunction unaryReduceSubarray( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, opts );\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, opts );\n\t}\n\tsy = y.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tsl = [ sl[i] ];\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( fcn, arr, views, sl, opts );\n\t\t}\n\t\treturn UNARY[ 1 ]( fcn, arr, views, sl, opts );\n\t}\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, ord === 1, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, ord === 1, opts );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, views, sl, opts );\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, sl, opts );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, views, sl, opts );\n\t}\n\tunarynd( fcn, arr, views, sl, opts );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceSubarray;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], {} );\n*\n* var v = y.data;\n* // returns [ true ]\n*/\nfunction unary0d( fcn, arrays, opts ) {\n\tarrays[1].data[ arrays[1].offset ] = fcn( without( arrays, 1 ), opts );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tybuf[ iv[1] ] = fcn( views, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, [ 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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\tybuf[ iv[1] ] = fcn( views, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, [ 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary3d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary4d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary5d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary6d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary7d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary8d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary9d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary10d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 1 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], {} );\n*\n* var v = y.data.get( 0 );\n* // returns true\n*/\nfunction unary0d( fcn, arrays, opts ) {\n\tvar y = arrays[ 1 ];\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( without( arrays, 1 ), opts ) );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tset( ybuf, iv[1], fcn( views, opts ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, [ 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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\tset( ybuf, iv[1], fcn( views, opts ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, [ 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary3d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2]) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary4d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary5d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary6d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary7d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary8d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary9d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, [ 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, [ 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, [ 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, [ 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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// 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-subarray\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n* import unaryReduceSubarray from '@stdlib/ndarray-base-unary-reduce-subarray';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n* import unaryReduceSubarray from '@stdlib/ndarray-base-unary-reduce-subarray';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var every = unaryReduceSubarray.factory( base );\n* // returns \n*\n* // Perform a reduction:\n* every( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction over a list of specified dimensions in an input ndarray and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var every = factory( base );\n* // returns \n*\n* // Perform a reduction:\n* every( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', ... ]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array boolean data type.\n*\n* @name isBooleanDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'complex64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'complex128' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nvar isBooleanDataType = contains( dtypes( 'boolean' ) );\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `BooleanArray` as a `Uint8Array`.\n*\n* @param {BooleanArray} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Uint8Array} `Uint8Array` view\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var x = new BooleanArray( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Uint8Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport { factory as ind } from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Replaces elements in an indexed array with provided values.\n*\n* @private\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = [ 5, 6, 7, 8 ];\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = indexed( x, indices, values, 1, getIndex, x.length-1 );\n* // returns [ 8, 6, 7, 5 ]\n*/\nfunction indexed( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tiv = 0;\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tj = getIndex( indices[ i ], maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces specified elements of an accessor array with provided values.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Object} indices - index object\n* @param {Object} values - values object\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var indices = toAccessorArray( [ 1, 2 ] );\n* var values = toAccessorArray( [ 20, 30 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = accessors( arraylike2object( x ), arraylike2object( indices ), arraylike2object( values ), 1, getIndex, x.length-1 );\n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* v = x.get( 1 );\n* // returns 20\n*/\nfunction accessors( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar xdata;\n\tvar idata;\n\tvar vdata;\n\tvar xset;\n\tvar iget;\n\tvar vget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\txdata = x.data;\n\tidata = indices.data;\n\tvdata = values.data;\n\n\txset = x.accessors[ 1 ];\n\tiget = indices.accessors[ 0 ];\n\tvget = values.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\txset( xdata, j, vget( vdata, iv ) );\n\t\tiv += stride;\n\t}\n\treturn xdata;\n}\n\n/**\n* Replaces elements in a complex array with provided values.\n*\n* @private\n* @param {Collection} x - real-valued floating-point input array view\n* @param {Object} indices - index array object\n* @param {Collection} values - real-valued floating-point values array view\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array view\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* var indices = [ 0, 2 ];\n* var values = new Float64Array( [ 10.0, 20.0, 50.0, 60.0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = complex( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 10.0, 20.0, 3.0, 4.0, 50.0, 60.0, 7.0, 8.0 ]\n*/\nfunction complex( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar sv;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tsv = stride * 2; // note: multiply by 2, as real-valued values array consists of interleaved real and imaginary components\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tk = j * 2;\n\t\tx[ k ] = values[ iv ];\n\t\tx[ k+1 ] = values[ iv+1 ];\n\t\tiv += sv;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces elements in a boolean array with provided values.\n*\n* @private\n* @param {Uint8Array} x - input array\n* @param {Object} indices - index array object\n* @param {Uint8Array} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Uint8Array} input array\n*\n* @example\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import Uint8Array from '@stdlib/array-uint8';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Uint8Array( [ 1, 0, 0, 1 ] );\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = new Uint8Array( [ 0, 1, 1, 0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = boolean( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 0, 1, 1, 0 ]\n*/\nfunction boolean( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Replaces specified elements of an array with provided values.\n*\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {string} mode - index mode\n* @throws {Error} third argument must be broadcast compatible with the second argument\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 20, 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 20, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 30, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction put( x, indices, values, mode ) {\n\tvar getIndex;\n\tvar stride;\n\tvar max;\n\tvar xo;\n\tvar io;\n\tvar vo;\n\n\t// Broadcast the `values` array...\n\tif ( indices.length > 0 ) { // note: this allows `indices` to be empty and `values` to be non-empty (and not broadcast compatible with `indices`) to allow the potential use case where having an empty `indices` array is expected behavior and you don't want to trigger an exception simply because `values` has elements\n\t\t// Note that this effectively in-lines logic from `@stdlib/array/base/broadcast-array` in order to avoid unnecessary object creation...\n\t\tif ( values.length === indices.length ) {\n\t\t\tstride = 1;\n\t\t} else if ( values.length === 1 ) {\n\t\t\tstride = 0;\n\t\t} else {\n\t\t\tthrow new Error( format( 'invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).', values.length, indices.length ) );\n\t\t}\n\t}\n\t// Resolve a function for returning an index according to the specified index mode:\n\tgetIndex = ind( mode );\n\n\t// Resolve the maximum index:\n\tmax = x.length - 1;\n\n\txo = arraylike2object( x );\n\tio = arraylike2object( indices );\n\tvo = arraylike2object( values );\n\tif (\n\t\txo.accessorProtocol ||\n\t\tio.accessorProtocol ||\n\t\tvo.accessorProtocol\n\t) {\n\t\t// Note: we only explicitly support select dtype pairs, as this function should not be concerned with casting rules, etc. That is left to userland...\n\t\tif ( isComplexDataType( xo.dtype ) && isComplexDataType( vo.dtype ) ) {\n\t\t\tcomplex( reinterpretComplex( x, 0 ), io, reinterpretComplex( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\tif ( isBooleanDataType( xo.dtype ) && isBooleanDataType( vo.dtype ) ) {\n\t\t\tboolean( reinterpretBoolean( x, 0 ), io, reinterpretBoolean( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\taccessors( xo, io, vo, stride, getIndex, max );\n\t\treturn x;\n\t}\n\tindexed( x, indices, values, stride, getIndex, max );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default put;\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\nimport put from '@stdlib/array-base-put';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Wraps a provided callback function.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {NonNegativeIntegerArray} idx - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - loop dimensions\n* @param {NonNegativeIntegerArray} lidx - current loop iteration indices\n* @param {NonNegativeIntegerArray} cdims - core dimensions\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {Function} callback wrapper\n*/\nfunction wrap( arr, idx, ldims, lidx, cdims, clbk, thisArg ) {\n\tput( idx, ldims, lidx, MODE );\n\treturn wrapper;\n\n\t/**\n\t* Invokes a callback function.\n\t*\n\t* @private\n\t* @param {*} v - value\n\t* @param {NonNegativeIntegerArray} cidx - current core iteration indices\n\t* @returns {*} result\n\t*/\n\tfunction wrapper( v, cidx ) {\n\t\tput( idx, cdims, cidx, MODE );\n\t\treturn clbk.call( thisArg, v, idx.slice(), arr );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar sub;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar x;\n\tvar y;\n\tvar f;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tset( ybuf, io[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar sub;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar x;\n\tvar y;\n\tvar f;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tybuf[ io[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport zeros from '@stdlib/array-base-zeros';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n* @param {Options} [options] - function options\n* @param {Function} clbk - callback function\n* @param {thisArg} [thisArg] - callback execution context\n* @throws {Error} arrays must have the expected number of dimensions\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = [ false ];\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 0, 1, 2, 3 ], clbk );\n*\n* var v = y.data;\n* // returns [ true ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 12 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, true ], [ true, true ] ], [ [ true, false ], [ true, true ] ], [ [ true, true ], [ true, true ] ] ]\n*/\nfunction unaryReduceSubarrayBy( fcn, arrays, dims, options, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar workspace;\n\tvar nargs;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar ctx;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar FLG;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar cb;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tFLG = false;\n\n\t// Case: (fcn, arrays, dims, clbk)\n\tif ( nargs < 5 ) {\n\t\topts = {};\n\t\tcb = options;\n\t}\n\t// Case: (fcn, arrays, dims, options, clbk, thisArg)\n\telse if ( nargs > 5 ) {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t\tctx = thisArg;\n\t}\n\t// Case: (fcn, arrays, dims, clbk, thisArg)\n\telse if ( isFunction( options ) ) {\n\t\topts = {};\n\t\tcb = options;\n\t\tctx = clbk;\n\t}\n\t// Case: (fcn, arrays, dims, options, clbk)\n\telse {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Initialize a workspace for storing iteration indices:\n\tworkspace = zeros( ndims );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, workspace, [], d, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, workspace, [], d, opts, FLG, cb, ctx );\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tsy = y.strides;\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) {\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tunarynd( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceSubarrayBy;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data;\n* // returns [ true ]\n*/\nfunction unary0d( fcn, arrays, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar arr;\n\tvar y;\n\tvar f;\n\n\ty = arrays[ 1 ];\n\tybuf = y.data;\n\n\tf = wrap( arrays[ 0 ].ref, ibuf, ldims, [], cdims, clbk, thisArg );\n\tarr = without( arrays, 1 );\n\tybuf[ y.offset ] = ( hasOpts ) ? fcn( arr, opts, f ) : fcn( arr, f );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tf = wrap( x.ref, ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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\tf = wrap( x.ref, ibuf, ldims, take( [ i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary5d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary7d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary8d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary9d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 1 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data.get( 0 );\n* // returns true\n*/\nfunction unary0d( fcn, arrays, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar arr;\n\tvar y;\n\tvar f;\n\n\ty = arrays[ 1 ];\n\tybuf = y.data;\n\n\tf = wrap( arrays[ 0 ].ref, ibuf, ldims, [], cdims, clbk, thisArg );\n\tarr = without( arrays, 1 );\n\tif ( hasOpts ) {\n\t\ty.accessors[ 1 ]( ybuf, y.offset, fcn( arr, opts, f ) );\n\t} else {\n\t\ty.accessors[ 1 ]( ybuf, y.offset, fcn( arr, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tf = wrap( x.ref, ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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\tf = wrap( x.ref, ibuf, ldims, take( [ i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary5d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary7d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary8d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary9d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary2d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary3d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary4d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*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\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary5d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary7d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary8d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary9d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary2d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary3d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary4d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*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\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary5d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary7d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary8d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary9d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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\nexport default 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* 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\nexport default 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} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} 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\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray according to a callback function and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-subarray-by\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n* import unaryReduceSubarrayBy from '@stdlib/ndarray-base-unary-reduce-subarray-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n* import unaryReduceSubarrayBy from '@stdlib/ndarray-base-unary-reduce-subarray-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var everyBy = unaryReduceSubarrayBy.factory( base );\n* // returns \n*\n* // Perform a reduction:\n* everyBy( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var everyBy = factory( base );\n* // returns \n*\n* // Perform a reduction:\n* everyBy( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @param {Function} clbk - callback function\n\t* @param {thisArg} [thisArg] - callback execution context\n\t* @returns {void}\n\t*/\n\tfunction reducer( arrays, dims, options, clbk, thisArg ) {\n\t\tvar nargs = arguments.length;\n\t\tif ( nargs < 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options );\n\t\t}\n\t\tif ( nargs === 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options, clbk );\n\t\t}\n\t\treturn reduce( fcn, arrays, dims, options, clbk, thisArg );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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 input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unarynd( wrapper, [ x, y, initial ], views, [ 3 ], [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ]\n*/\nfunction unarynd( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, opts ) { // eslint-disable-line max-len\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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\tfcn( v, opts );\n\t\tstrategyY.output( views[ 1 ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport strategy from './strategy.js';\nimport defaults from './defaults.js';\nimport validate from './validate.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar MAX_DIMS = UNARY.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 input ndarray and assigning results to a provided output 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 an input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, y, initial ], [ 0, 1, 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 15.0, 21.0 ], [ 28.0, 36.0 ] ], [ [ 45.0, 55.0 ], [ 66.0, 78.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3, 2, 2 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, y, initial ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.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 unaryStrided1d;\n\n\t/**\n\t* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {Function} fcn - wrapper for a one-dimensional strided array function\n\t* @param {ArrayLikeObject} 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 input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input 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 unaryStrided1d( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\t\tvar strategyX;\n\t\tvar strategyY;\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 ioy;\n\t\tvar scx;\n\t\tvar scy;\n\t\tvar slx;\n\t\tvar sly;\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 y;\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 references to the input and output arrays:\n\t\tx = arr[ 0 ];\n\t\ty = arr[ 1 ];\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 = 2; 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 two arrays 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// Verify that the input and output arrays have the same shape...\n\t\tif ( ndims !== y.shape.length ) {\n\t\t\tthrow new Error( 'invalid arguments. Input and output arrays must have the same shape.' );\n\t\t}\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== y.shape[ i ] ) {\n\t\t\t\tthrow new Error( 'invalid arguments. Input and output arrays must have the same shape.' );\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\tsly = takeIndexed( y.strides, ldims );\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\tscy = takeIndexed( y.strides, d );\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\t{\n\t\t\t\t'dtype': y.dtype,\n\t\t\t\t'data': y.data,\n\t\t\t\t'shape': shc,\n\t\t\t\t'strides': scy,\n\t\t\t\t'offset': y.offset,\n\t\t\t\t'order': y.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 and output arrays before and after performing an operation:\n\t\tstrategyX = strategy( views[ 0 ] );\n\t\tstrategyY = strategy( views[ 1 ] );\n\n\t\t// Determine whether we can avoid iteration altogether...\n\t\tif ( K === 0 ) {\n\t\t\treturn UNARY[ K ]( fcn, arr, strategyX, strategyY, 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 UNARY[ K ]( fcn, arr, views, shl, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\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\tsly = [ sly[i] ];\n\t\t\treturn UNARY[ 1 ]( fcn, arr, views, [ shl[i] ], slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\tiox = iterationOrder( slx ); // +/-1\n\t\tioy = iterationOrder( sly ); // +/-1\n\n\t\t// Determine whether we can avoid blocked iteration...\n\t\tord = strides2order( slx );\n\t\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sly ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\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 UNARY[ K ]( fcn, arr, views, shl, slx, sly, ord === 1, strategyX, strategyY, 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 input 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 UNARY[ K ]( fcn, arr, views, shl, slx, sly, ord === 1, strategyX, strategyY, 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_UNARY[ K-2 ]( fcn, arr, views, shl, slx, sly, strategyX, strategyY, 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\tunarynd( fcn, arr, views, shl, slx, sly, strategyX, strategyY, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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* unary0d( wrapper, [ x, y, initial ], strategy, strategy, {} );\n*\n* var v = y.data;\n* // returns [ 1.0, 3.0, 6.0, 10.0 ]\n*/\nfunction unary0d( fcn, arrays, strategyX, strategyY, opts ) {\n\tarrays[ 0 ] = strategyX.input( arrays[ 0 ] );\n\tarrays[ 1 ] = strategyY.input( arrays[ 1 ] );\n\tfcn( arrays, opts );\n\tstrategyY.output( arrays[ 1 ] );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary1d( wrapper, [ x, y, initial ], views, [ 3 ], [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ]\n*/\nfunction unary1d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, opts ) { // eslint-disable-line max-len\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\tstridesY[0]\n\t];\n\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\tfcn( v, opts );\n\t\tstrategyY.output( views[ 1 ] );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary2d( wrapper, [ x, y, initial ], views, [ 1, 3 ], [ 12, 4 ], [ 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\nfunction unary2d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] ),\n\t\t\tstridesY[0] - ( S0*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\tfcn( v, opts );\n\t\t\tstrategyY.output( views[ 1 ] );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 3 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary3d( wrapper, [ x, y, initial ], views, [ 1, 1, 3 ], [ 12, 12, 4 ], [ 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] ),\n\t\t\tstridesY[1] - ( S0*stridesY[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] ),\n\t\t\tstridesY[0] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\tfcn( v, opts );\n\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary4d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 3 ], [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] ),\n\t\t\tstridesY[2] - ( S0*stridesY[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] ),\n\t\t\tstridesY[1] - ( S1*stridesY[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] ),\n\t\t\tstridesY[0] - ( S2*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary5d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] ),\n\t\t\tstridesY[3] - ( S0*stridesY[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] ),\n\t\t\tstridesY[2] - ( S1*stridesY[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] ),\n\t\t\tstridesY[1] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] ),\n\t\t\tstridesY[0] - ( S3*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\tstrategyY.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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary6d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] ),\n\t\t\tstridesY[4] - ( S0*stridesY[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] ),\n\t\t\tstridesY[3] - ( S1*stridesY[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] ),\n\t\t\tstridesY[2] - ( S2*stridesY[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] ),\n\t\t\tstridesY[1] - ( S3*stridesY[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] ),\n\t\t\tstridesY[0] - ( S4*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary7d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] ),\n\t\t\tstridesY[5] - ( S0*stridesY[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] ),\n\t\t\tstridesY[4] - ( S1*stridesY[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] ),\n\t\t\tstridesY[3] - ( S2*stridesY[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] ),\n\t\t\tstridesY[2] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] ),\n\t\t\tstridesY[1] - ( S4*stridesY[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] ),\n\t\t\tstridesY[0] - ( S5*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary8d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] ),\n\t\t\tstridesY[6] - ( S0*stridesY[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] ),\n\t\t\tstridesY[5] - ( S1*stridesY[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] ),\n\t\t\tstridesY[4] - ( S2*stridesY[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] ),\n\t\t\tstridesY[3] - ( S3*stridesY[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] ),\n\t\t\tstridesY[2] - ( S4*stridesY[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] ),\n\t\t\tstridesY[1] - ( S5*stridesY[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] ),\n\t\t\tstridesY[0] - ( S6*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary9d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] ),\n\t\t\tstridesY[7] - ( S0*stridesY[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] ),\n\t\t\tstridesY[6] - ( S1*stridesY[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] ),\n\t\t\tstridesY[5] - ( S2*stridesY[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] ),\n\t\t\tstridesY[4] - ( S3*stridesY[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] ),\n\t\t\tstridesY[3] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] ),\n\t\t\tstridesY[2] - ( S5*stridesY[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] ),\n\t\t\tstridesY[1] - ( S6*stridesY[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] ),\n\t\t\tstridesY[0] - ( S7*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary10d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) { // eslint-disable-line max-statements, max-lines-per-function\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\tstridesY[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] ),\n\t\t\tstridesY[8] - ( S0*stridesY[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] ),\n\t\t\tstridesY[7] - ( S1*stridesY[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] ),\n\t\t\tstridesY[6] - ( S2*stridesY[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] ),\n\t\t\tstridesY[5] - ( S3*stridesY[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] ),\n\t\t\tstridesY[4] - ( S4*stridesY[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] ),\n\t\t\tstridesY[3] - ( S5*stridesY[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] ),\n\t\t\tstridesY[2] - ( S6*stridesY[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] ),\n\t\t\tstridesY[1] - ( S7*stridesY[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] ),\n\t\t\tstridesY[0] - ( S8*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] ),\n\t\t\tstridesY[9] - ( S8*stridesY[8] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary2d( wrapper, [ x, y, initial ], views, [ 1, 3 ], [ 12, 4 ], [ 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 3 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary3d( wrapper, [ x, y, initial ], views, [ 1, 1, 3 ], [ 12, 12, 4 ], [ 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary4d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 3 ], [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary5d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary6d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary7d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary8d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary9d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary10d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary10d;\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 an input ndarray:\n\t\t'strictTraversalOrder': false\n\t};\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@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\nexport default 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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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\nimport factory from './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 input ndarray and assigns results to a provided output ndarray.\n*\n* @name unaryStrided1d\n* @type {Function}\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {ArrayLikeObject} 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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [ 0, 1, 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 15.0, 21.0 ], [ 28.0, 36.0 ] ], [ [ 45.0, 55.0 ], [ 66.0, 78.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3, 2, 2 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.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 unaryStrided1d = factory();\n\n\n// EXPORTS //\n\nexport default unaryStrided1d;\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 input ndarray and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-strided1d\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n* import unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n* import unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for applying a strided function:\n* var cusum = unaryStrided1d.factory( wrapper );\n* // returns \n*\n* // Apply strided function:\n* cusum( [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport isFunction from '@stdlib/assert-is-function';\nimport mainFactory from './main_factory.js';\nimport main from './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 input ndarray and assigning results to a provided output 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 an input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for applying a strided function:\n* var cusum = factory( wrapper );\n* // returns \n*\n* // Apply strided function:\n* cusum( [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\nfunction factory() {\n\tvar nargs;\n\tvar unary;\n\tvar fcn;\n\tvar f;\n\n\tnargs = arguments.length;\n\n\t// Case: factory()\n\tif ( nargs === 0 ) {\n\t\tunary = main;\n\t\tf = wrap;\n\t}\n\t// Case: factory( fcn, opts )\n\telse if ( nargs > 1 ) {\n\t\tunary = 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\tunary = main;\n\t\tfcn = arguments[ 0 ];\n\t\tf = apply;\n\t}\n\t// Case: factory( opts )\n\telse {\n\t\tunary = 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 input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} 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 unary( 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 input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {Function} fcn - wrapper for a one-dimensional strided array function\n\t* @param {ArrayLikeObject} 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 unary( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'dims': [ 0 ]\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for applying a strided function to an input ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided functions which are specific to specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\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 an input ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {UnaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = cumax.apply( x );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*/\nfunction UnaryStrided1dDispatch( table, idtypes, odtypes, policies, options ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatch ) ) {\n\t\tif ( arguments.length > 4 ) {\n\t\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies, options ); // eslint-disable-line max-len\n\t\t}\n\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length*2 ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. A pair of input and output ndarray data types must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\tif ( arguments.length > 4 ) {\n\t\tthis._apply = unaryStrided1d.factory( options ); // note: delegate options validation to factory method\n\t} else {\n\t\tthis._apply = unaryStrided1d;\n\t}\n\treturn this;\n}\n\n/**\n* Applies a strided function to a provided input ndarray.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @param {string} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = cumax.apply( x );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'apply', function apply( x ) {\n\tvar options;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar shx;\n\tvar arr;\n\tvar xdt;\n\tvar ydt;\n\tvar tmp;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, apply the strided function across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Initialize an output array whose shape and memory layout matches the input array:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shx, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input and output ndarray data types:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform operation:\n\tthis._apply( f, insertAt( args, 1, y ), opts.dims );\n\n\treturn y;\n});\n\n/**\n* Applies a strided function to a provided input ndarray and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0, 0.0, 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var out = cumax.assign( x, y );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'assign', function assign( x ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar ydt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, apply the strided function across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tydt = getDType( y );\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input and output ndarray data types:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform operation:\n\tthis._apply( f, insertAt( args, 1, y ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatch;\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\nimport setNonEnumerableReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadWriteAccessor from '@stdlib/utils-define-read-write-accessor';\nimport copy from '@stdlib/array-base-copy';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport numel from '@stdlib/ndarray-numel';\n\n\n// FUNCTIONS //\n\n/**\n* Returns an accessor for returning the value associated with a label.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {Function} accessor\n*/\nfunction getValue( arr ) {\n\treturn get;\n\n\t/**\n\t* Returns the value associated with a label.\n\t*\n\t* @private\n\t* @returns {*} result\n\t*/\n\tfunction get() {\n\t\treturn arr.get( this._i ); // eslint-disable-line no-invalid-this\n\t}\n}\n\n/**\n* Returns an accessor for setting the value associated with a label.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {Function} accessor\n*/\nfunction setValue( arr ) {\n\treturn set;\n\n\t/**\n\t* Sets the value associated with a label.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t*/\n\tfunction set( value ) {\n\t\tarr.set( this._i, value ); // eslint-disable-line no-invalid-this\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Zips one or more one-dimensional ndarrays to an array of composite views.\n*\n* ## Notes\n*\n* - The function assumes that the list of ndarrays to be zipped all have the same length.\n* - The list of provided labels should equal the number of ndarrays to be zipped.\n* - Each view in the returned array shares the same memory as the corresponding elements in the input ndarrays. Accordingly, mutation of either an input ndarray or a view will mutate the other.\n*\n* @param {ArrayLikeObject} arrays - list of ndarrays to be zipped\n* @param {ArrayLikeObject} labels - list of labels\n* @returns {Array} output array\n*\n* @example\n* import array2ndarray from '@stdlib/ndarray-base-from-array';\n*\n* var x = array2ndarray( [ 1, 2, 3 ], 'row-major' );\n* var y = array2ndarray( [ 'a', 'b', 'c' ], 'row-major' );\n*\n* var labels = [ 'x', 'y' ];\n*\n* var z = zip2views1d( [ x, y ], labels );\n* // returns [ , , ]\n*\n* var v0 = z[ 0 ].toJSON();\n* // returns { 'x': 1, 'y': 'a' }\n*\n* var v1 = z[ 1 ].toJSON();\n* // returns { 'x': 2, 'y': 'b' }\n*\n* var v2 = z[ 2 ].toJSON();\n* // returns { 'x': 3, 'y': 'c' }\n*\n* // Mutate one of the input arrays:\n* x.set( 0, 5 );\n*\n* v0 = z[ 0 ].toJSON();\n* // returns { 'x': 5, 'y': 'a' }\n*\n* // Set a view property:\n* z[ 1 ].y = 'beep';\n*\n* v1 = z[ 1 ].toJSON();\n* // returns { 'x': 2, 'y': 'beep' }\n*\n* var v = y.get( 1 );\n* // returns 'beep'\n*/\nfunction zip2views1d( arrays, labels ) {\n\tvar getter;\n\tvar setter;\n\tvar list;\n\tvar keys;\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar i;\n\n\tM = arrays.length;\n\tif ( M < 1 ) {\n\t\treturn [];\n\t}\n\tlist = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tlist.push( ndarraylike2ndarray( arrays[ i ] ) );\n\t}\n\tN = numel( list[ 0 ] );\n\tif ( N < 1 ) {\n\t\treturn [];\n\t}\n\t// Create a copy of provided labels to prevent external mutation:\n\tkeys = copy( labels );\n\n\t// eslint-disable-next-line stdlib/jsdoc-typedef-typos\n\t/**\n\t* Constructor for creating a composite view of zipped elements.\n\t*\n\t* @private\n\t* @constructor\n\t* @param {NonNegativeInteger} i - element index\n\t* @returns {Datum} datum instance\n\t*/\n\tfunction Datum( i ) { // eslint-disable-line stdlib/no-unnecessary-nested-functions\n\t\tsetNonEnumerableReadOnly( this, '_i', i );\n\t\treturn this;\n\t}\n\n\t// Define read/write accessors for each label...\n\tfor ( i = 0; i < M; i++ ) {\n\t\tgetter = getValue( list[ i ] );\n\t\tsetter = setValue( list[ i ] );\n\t\tsetReadWriteAccessor( Datum.prototype, keys[ i ], getter, setter );\n\t}\n\t// Ensure that the returned array correctly serializes to JSON:\n\tsetNonEnumerableReadOnly( Datum.prototype, 'toJSON', toJSON );\n\n\t// Create a list of composite views...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( new Datum( i ) );\n\t}\n\treturn out;\n\n\t/**\n\t* Serializes a datum to JSON.\n\t*\n\t* @private\n\t* @returns {Object} JSON object\n\t*/\n\tfunction toJSON() {\n\t\tvar out;\n\t\tvar k;\n\t\tvar i;\n\n\t\tout = {};\n\t\tfor ( i = 0; i < M; i++ ) {\n\t\t\tk = keys[ i ];\n\t\t\tout[ k ] = this[ k ]; // eslint-disable-line no-invalid-this\n\t\t}\n\t\treturn out;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default zip2views1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: function-object, napi, unary\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name any\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/any}\n*/\nimport any from '@stdlib/ndarray-base-any';\nsetReadOnly( ns, 'any', any );\n\n/**\n* @name anyBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/any-by}\n*/\nimport anyBy from '@stdlib/ndarray-base-any-by';\nsetReadOnly( ns, 'anyBy', anyBy );\n\n/**\n* @name appendSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/append-singleton-dimensions}\n*/\nimport appendSingletonDimensions from '@stdlib/ndarray-base-append-singleton-dimensions';\nsetReadOnly( ns, 'appendSingletonDimensions', appendSingletonDimensions );\n\n/**\n* @name assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base/assert}\n*/\nimport assert from '@stdlib/ndarray-base-assert';\nsetReadOnly( ns, 'assert', assert );\n\n/**\n* @name assign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign}\n*/\nimport assign from '@stdlib/ndarray-base-assign';\nsetReadOnly( ns, 'assign', assign );\n\n/**\n* @name assignDiagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign-diagonal}\n*/\nimport assignDiagonal from '@stdlib/ndarray-base-assign-diagonal';\nsetReadOnly( ns, 'assignDiagonal', assignDiagonal );\n\n/**\n* @name assignScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign-scalar}\n*/\nimport assignScalar from '@stdlib/ndarray-base-assign-scalar';\nsetReadOnly( ns, 'assignScalar', assignScalar );\n\n/**\n* @name atleast1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast1d}\n*/\nimport atleast1d from '@stdlib/ndarray-base-atleast1d';\nsetReadOnly( ns, 'atleast1d', atleast1d );\n\n/**\n* @name atleast2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast2d}\n*/\nimport atleast2d from '@stdlib/ndarray-base-atleast2d';\nsetReadOnly( ns, 'atleast2d', atleast2d );\n\n/**\n* @name atleast3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast3d}\n*/\nimport atleast3d from '@stdlib/ndarray-base-atleast3d';\nsetReadOnly( ns, 'atleast3d', atleast3d );\n\n/**\n* @name atleastnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleastnd}\n*/\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\nsetReadOnly( ns, 'atleastnd', atleastnd );\n\n/**\n* @name binary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary}\n*/\nimport binary from '@stdlib/ndarray-base-binary';\nsetReadOnly( ns, 'binary', binary );\n\n/**\n* @name binaryInputCastingDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-input-casting-dtype}\n*/\nimport binaryInputCastingDataType from '@stdlib/ndarray-base-binary-input-casting-dtype';\nsetReadOnly( ns, 'binaryInputCastingDataType', binaryInputCastingDataType );\n\n/**\n* @name binaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-loop-interchange-order}\n*/\nimport binaryLoopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nsetReadOnly( ns, 'binaryLoopOrder', binaryLoopOrder );\n\n/**\n* @name binaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-output-dtype}\n*/\nimport binaryOutputDataType from '@stdlib/ndarray-base-binary-output-dtype';\nsetReadOnly( ns, 'binaryOutputDataType', binaryOutputDataType );\n\n/**\n* @name binaryReduceStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d}\n*/\nimport binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\nsetReadOnly( ns, 'binaryReduceStrided1d', binaryReduceStrided1d );\n\n/**\n* @name binaryReduceStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch}\n*/\nimport binaryReduceStrided1dDispatch from '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch';\nsetReadOnly( ns, 'binaryReduceStrided1dDispatch', binaryReduceStrided1dDispatch );\n\n/**\n* @name binaryReduceStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch-factory}\n*/\nimport binaryReduceStrided1dDispatchFactory from '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory';\nsetReadOnly( ns, 'binaryReduceStrided1dDispatchFactory', binaryReduceStrided1dDispatchFactory );\n\n/**\n* @name binaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-tiling-block-size}\n*/\nimport binaryBlockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nsetReadOnly( ns, 'binaryBlockSize', binaryBlockSize );\n\n/**\n* @name bind2vind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bind2vind}\n*/\nimport bind2vind from '@stdlib/ndarray-base-bind2vind';\nsetReadOnly( ns, 'bind2vind', bind2vind );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array}\n*/\nimport broadcastArray from '@stdlib/ndarray-base-broadcast-array';\nsetReadOnly( ns, 'broadcastArray', broadcastArray );\n\n/**\n* @name broadcastArrayExceptDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array-except-dimensions}\n*/\nimport broadcastArrayExceptDimensions from '@stdlib/ndarray-base-broadcast-array-except-dimensions';\nsetReadOnly( ns, 'broadcastArrayExceptDimensions', broadcastArrayExceptDimensions );\n\n/**\n* @name broadcastArrays\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-arrays}\n*/\nimport broadcastArrays from '@stdlib/ndarray-base-broadcast-arrays';\nsetReadOnly( ns, 'broadcastArrays', broadcastArrays );\n\n/**\n* @name broadcastScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar}\n*/\nimport broadcastScalar from '@stdlib/ndarray-base-broadcast-scalar';\nsetReadOnly( ns, 'broadcastScalar', broadcastScalar );\n\n/**\n* @name broadcastScalarLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar-like}\n*/\nimport broadcastScalarLike from '@stdlib/ndarray-base-broadcast-scalar-like';\nsetReadOnly( ns, 'broadcastScalarLike', broadcastScalarLike );\n\n/**\n* @name broadcastShapes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-shapes}\n*/\nimport broadcastShapes from '@stdlib/ndarray-base-broadcast-shapes';\nsetReadOnly( ns, 'broadcastShapes', broadcastShapes );\n\n/**\n* @name buffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer}\n*/\nimport buffer from '@stdlib/ndarray-base-buffer';\nsetReadOnly( ns, 'buffer', buffer );\n\n/**\n* @name bufferCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-ctors}\n*/\nimport bufferCtors from '@stdlib/ndarray-base-buffer-ctors';\nsetReadOnly( ns, 'bufferCtors', bufferCtors );\n\n/**\n* @name bufferDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype}\n*/\nimport bufferDataType from '@stdlib/ndarray-base-buffer-dtype';\nsetReadOnly( ns, 'bufferDataType', bufferDataType );\n\n/**\n* @name bufferDataTypeEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype-enum}\n*/\nimport bufferDataTypeEnum from '@stdlib/ndarray-base-buffer-dtype-enum';\nsetReadOnly( ns, 'bufferDataTypeEnum', bufferDataTypeEnum );\n\n/**\n* @name bytesPerElement\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bytes-per-element}\n*/\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nsetReadOnly( ns, 'bytesPerElement', bytesPerElement );\n\n/**\n* @name char2dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/char2dtype}\n*/\nimport char2dtype from '@stdlib/ndarray-base-char2dtype';\nsetReadOnly( ns, 'char2dtype', char2dtype );\n\n/**\n* @name clampIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clamp-index}\n*/\nimport clampIndex from '@stdlib/ndarray-base-clamp-index';\nsetReadOnly( ns, 'clampIndex', clampIndex );\n\n/**\n* @name clipIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clip-index}\n*/\nimport clipIndex from '@stdlib/ndarray-base-clip-index';\nsetReadOnly( ns, 'clipIndex', clipIndex );\n\n/**\n* @name complementShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/complement-shape}\n*/\nimport complementShape from '@stdlib/ndarray-base-complement-shape';\nsetReadOnly( ns, 'complementShape', complementShape );\n\n/**\n* @name consensusOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/consensus-order}\n*/\nimport consensusOrder from '@stdlib/ndarray-base-consensus-order';\nsetReadOnly( ns, 'consensusOrder', consensusOrder );\n\n/**\n* @name copy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/copy}\n*/\nimport copy from '@stdlib/ndarray-base-copy';\nsetReadOnly( ns, 'copy', copy );\n\n/**\n* @name countFalsy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-falsy}\n*/\nimport countFalsy from '@stdlib/ndarray-base-count-falsy';\nsetReadOnly( ns, 'countFalsy', countFalsy );\n\n/**\n* @name countIf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-if}\n*/\nimport countIf from '@stdlib/ndarray-base-count-if';\nsetReadOnly( ns, 'countIf', countIf );\n\n/**\n* @name countTruthy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-truthy}\n*/\nimport countTruthy from '@stdlib/ndarray-base-count-truthy';\nsetReadOnly( ns, 'countTruthy', countTruthy );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ctor}\n*/\nimport ndarray from '@stdlib/ndarray-base-ctor';\nsetReadOnly( ns, 'ndarray', ndarray );\n\n/**\n* @name data\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/data-buffer}\n*/\nimport data from '@stdlib/ndarray-base-data-buffer';\nsetReadOnly( ns, 'data', data );\n\n/**\n* @name descriptor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/descriptor}\n*/\nimport descriptor from '@stdlib/ndarray-base-descriptor';\nsetReadOnly( ns, 'descriptor', descriptor );\n\n/**\n* @name diagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/diagonal}\n*/\nimport diagonal from '@stdlib/ndarray-base-diagonal';\nsetReadOnly( ns, 'diagonal', diagonal );\n\n/**\n* @name dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype}\n*/\nimport dtype from '@stdlib/ndarray-base-dtype';\nsetReadOnly( ns, 'dtype', dtype );\n\n/**\n* @name dtypeAlignment\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-alignment}\n*/\nimport dtypeAlignment from '@stdlib/ndarray-base-dtype-alignment';\nsetReadOnly( ns, 'dtypeAlignment', dtypeAlignment );\n\n/**\n* @name dtypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-char}\n*/\nimport dtypeChar from '@stdlib/ndarray-base-dtype-char';\nsetReadOnly( ns, 'dtypeChar', dtypeChar );\n\n/**\n* @name dtypeChars\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-chars}\n*/\nimport dtypeChars from '@stdlib/ndarray-base-dtype-chars';\nsetReadOnly( ns, 'dtypeChars', dtypeChars );\n\n/**\n* @name dtypeDesc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-desc}\n*/\nimport dtypeDesc from '@stdlib/ndarray-base-dtype-desc';\nsetReadOnly( ns, 'dtypeDesc', dtypeDesc );\n\n/**\n* @name dtypeEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enum2str}\n*/\nimport dtypeEnum2Str from '@stdlib/ndarray-base-dtype-enum2str';\nsetReadOnly( ns, 'dtypeEnum2Str', dtypeEnum2Str );\n\n/**\n* @name dtypeEnums\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enums}\n*/\nimport dtypeEnums from '@stdlib/ndarray-base-dtype-enums';\nsetReadOnly( ns, 'dtypeEnums', dtypeEnums );\n\n/**\n* @name dtypeObjects\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-objects}\n*/\nimport dtypeObjects from '@stdlib/ndarray-base-dtype-objects';\nsetReadOnly( ns, 'dtypeObjects', dtypeObjects );\n\n/**\n* @name dtypeResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-enum}\n*/\nimport dtypeResolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nsetReadOnly( ns, 'dtypeResolveEnum', dtypeResolveEnum );\n\n/**\n* @name dtypeResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-str}\n*/\nimport dtypeResolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nsetReadOnly( ns, 'dtypeResolveStr', dtypeResolveStr );\n\n/**\n* @name dtypeStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-str2enum}\n*/\nimport dtypeStr2Enum from '@stdlib/ndarray-base-dtype-str2enum';\nsetReadOnly( ns, 'dtypeStr2Enum', dtypeStr2Enum );\n\n/**\n* @name dtypeStrings\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-strings}\n*/\nimport dtypeStrings from '@stdlib/ndarray-base-dtype-strings';\nsetReadOnly( ns, 'dtypeStrings', dtypeStrings );\n\n/**\n* @name dtype2c\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype2c}\n*/\nimport dtype2c from '@stdlib/ndarray-base-dtype2c';\nsetReadOnly( ns, 'dtype2c', dtype2c );\n\n/**\n* @name dtypes2enums\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2enums}\n*/\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nsetReadOnly( ns, 'dtypes2enums', dtypes2enums );\n\n/**\n* @name dtypes2signatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2signatures}\n*/\nimport dtypes2signatures from '@stdlib/ndarray-base-dtypes2signatures';\nsetReadOnly( ns, 'dtypes2signatures', dtypes2signatures );\n\n/**\n* @name dtypes2strings\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2strings}\n*/\nimport dtypes2strings from '@stdlib/ndarray-base-dtypes2strings';\nsetReadOnly( ns, 'dtypes2strings', dtypes2strings );\n\n/**\n* @name empty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty}\n*/\nimport empty from '@stdlib/ndarray-base-empty';\nsetReadOnly( ns, 'empty', empty );\n\n/**\n* @name emptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty-like}\n*/\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nsetReadOnly( ns, 'emptyLike', emptyLike );\n\n/**\n* @name every\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/every}\n*/\nimport every from '@stdlib/ndarray-base-every';\nsetReadOnly( ns, 'every', every );\n\n/**\n* @name everyBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/every-by}\n*/\nimport everyBy from '@stdlib/ndarray-base-every-by';\nsetReadOnly( ns, 'everyBy', everyBy );\n\n/**\n* @name expandDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/expand-dimensions}\n*/\nimport expandDimensions from '@stdlib/ndarray-base-expand-dimensions';\nsetReadOnly( ns, 'expandDimensions', expandDimensions );\n\n/**\n* @name falses\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/falses}\n*/\nimport falses from '@stdlib/ndarray-base-falses';\nsetReadOnly( ns, 'falses', falses );\n\n/**\n* @name falsesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/falses-like}\n*/\nimport falsesLike from '@stdlib/ndarray-base-falses-like';\nsetReadOnly( ns, 'falsesLike', falsesLike );\n\n/**\n* @name fill\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill}\n*/\nimport fill from '@stdlib/ndarray-base-fill';\nsetReadOnly( ns, 'fill', fill );\n\n/**\n* @name fillBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill-by}\n*/\nimport fillBy from '@stdlib/ndarray-base-fill-by';\nsetReadOnly( ns, 'fillBy', fillBy );\n\n/**\n* @name fillDiagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill-diagonal}\n*/\nimport fillDiagonal from '@stdlib/ndarray-base-fill-diagonal';\nsetReadOnly( ns, 'fillDiagonal', fillDiagonal );\n\n/**\n* @name find\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/find}\n*/\nimport find from '@stdlib/ndarray-base-find';\nsetReadOnly( ns, 'find', find );\n\n/**\n* @name flag\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flag}\n*/\nimport flag from '@stdlib/ndarray-base-flag';\nsetReadOnly( ns, 'flag', flag );\n\n/**\n* @name flags\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flags}\n*/\nimport flags from '@stdlib/ndarray-base-flags';\nsetReadOnly( ns, 'flags', flags );\n\n/**\n* @name flattenShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flatten-shape}\n*/\nimport flattenShape from '@stdlib/ndarray-base-flatten-shape';\nsetReadOnly( ns, 'flattenShape', flattenShape );\n\n/**\n* @name flattenShapeFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flatten-shape-from}\n*/\nimport flattenShapeFrom from '@stdlib/ndarray-base-flatten-shape-from';\nsetReadOnly( ns, 'flattenShapeFrom', flattenShapeFrom );\n\n/**\n* @name fliplr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fliplr}\n*/\nimport fliplr from '@stdlib/ndarray-base-fliplr';\nsetReadOnly( ns, 'fliplr', fliplr );\n\n/**\n* @name flipud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flipud}\n*/\nimport flipud from '@stdlib/ndarray-base-flipud';\nsetReadOnly( ns, 'flipud', flipud );\n\n/**\n* @name forEach\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/for-each}\n*/\nimport forEach from '@stdlib/ndarray-base-for-each';\nsetReadOnly( ns, 'forEach', forEach );\n\n/**\n* @name array2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-array}\n*/\nimport array2ndarray from '@stdlib/ndarray-base-from-array';\nsetReadOnly( ns, 'array2ndarray', array2ndarray );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar}\n*/\nimport scalar2ndarray from '@stdlib/ndarray-base-from-scalar';\nsetReadOnly( ns, 'scalar2ndarray', scalar2ndarray );\n\n/**\n* @name scalar2ndarrayLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar-like}\n*/\nimport scalar2ndarrayLike from '@stdlib/ndarray-base-from-scalar-like';\nsetReadOnly( ns, 'scalar2ndarrayLike', scalar2ndarrayLike );\n\n/**\n* @name full\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/full}\n*/\nimport full from '@stdlib/ndarray-base-full';\nsetReadOnly( ns, 'full', full );\n\n/**\n* @name fullBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/full-by}\n*/\nimport fullBy from '@stdlib/ndarray-base-full-by';\nsetReadOnly( ns, 'fullBy', fullBy );\n\n/**\n* @name includes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/includes}\n*/\nimport includes from '@stdlib/ndarray-base-includes';\nsetReadOnly( ns, 'includes', includes );\n\n/**\n* @name ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind}\n*/\nimport ind from '@stdlib/ndarray-base-ind';\nsetReadOnly( ns, 'ind', ind );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind2sub}\n*/\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nsetReadOnly( ns, 'ind2sub', ind2sub );\n\n/**\n* @name iterationOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/iteration-order}\n*/\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nsetReadOnly( ns, 'iterationOrder', iterationOrder );\n\n/**\n* @name loopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/loop-interchange-order}\n*/\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\nsetReadOnly( ns, 'loopOrder', loopOrder );\n\n/**\n* @name map\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/map}\n*/\nimport map from '@stdlib/ndarray-base-map';\nsetReadOnly( ns, 'map', map );\n\n/**\n* @name maxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/max-view-buffer-index}\n*/\nimport maxViewBufferIndex from '@stdlib/ndarray-base-max-view-buffer-index';\nsetReadOnly( ns, 'maxViewBufferIndex', maxViewBufferIndex );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array}\n*/\nimport maybeBroadcastArray from '@stdlib/ndarray-base-maybe-broadcast-array';\nsetReadOnly( ns, 'maybeBroadcastArray', maybeBroadcastArray );\n\n/**\n* @name maybeBroadcastArrayExceptDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array-except-dimensions}\n*/\nimport maybeBroadcastArrayExceptDimensions from '@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions';\nsetReadOnly( ns, 'maybeBroadcastArrayExceptDimensions', maybeBroadcastArrayExceptDimensions );\n\n/**\n* @name maybeBroadcastArrays\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-arrays}\n*/\nimport maybeBroadcastArrays from '@stdlib/ndarray-base-maybe-broadcast-arrays';\nsetReadOnly( ns, 'maybeBroadcastArrays', maybeBroadcastArrays );\n\n/**\n* @name metaDataProps\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/meta-data-props}\n*/\nimport metaDataProps from '@stdlib/ndarray-base-meta-data-props';\nsetReadOnly( ns, 'metaDataProps', metaDataProps );\n\n/**\n* @name minSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-signed-integer-dtype}\n*/\nimport minSignedIntegerDataType from '@stdlib/ndarray-base-min-signed-integer-dtype';\nsetReadOnly( ns, 'minSignedIntegerDataType', minSignedIntegerDataType );\n\n/**\n* @name minUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-unsigned-integer-dtype}\n*/\nimport minUnsignedIntegerDataType from '@stdlib/ndarray-base-min-unsigned-integer-dtype';\nsetReadOnly( ns, 'minUnsignedIntegerDataType', minUnsignedIntegerDataType );\n\n/**\n* @name minViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-view-buffer-index}\n*/\nimport minViewBufferIndex from '@stdlib/ndarray-base-min-view-buffer-index';\nsetReadOnly( ns, 'minViewBufferIndex', minViewBufferIndex );\n\n/**\n* @name minmaxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/minmax-view-buffer-index}\n*/\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nsetReadOnly( ns, 'minmaxViewBufferIndex', minmaxViewBufferIndex );\n\n/**\n* @name nans\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nans}\n*/\nimport nans from '@stdlib/ndarray-base-nans';\nsetReadOnly( ns, 'nans', nans );\n\n/**\n* @name nansLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nans-like}\n*/\nimport nansLike from '@stdlib/ndarray-base-nans-like';\nsetReadOnly( ns, 'nansLike', nansLike );\n\n/**\n* @name ndarraylike2descriptor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2descriptor}\n*/\nimport ndarraylike2descriptor from '@stdlib/ndarray-base-ndarraylike2descriptor';\nsetReadOnly( ns, 'ndarraylike2descriptor', ndarraylike2descriptor );\n\n/**\n* @name ndarraylike2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2ndarray}\n*/\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nsetReadOnly( ns, 'ndarraylike2ndarray', ndarraylike2ndarray );\n\n/**\n* @name ndarraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2object}\n*/\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nsetReadOnly( ns, 'ndarraylike2object', ndarraylike2object );\n\n/**\n* @name ndarraylike2scalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2scalar}\n*/\nimport ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\nsetReadOnly( ns, 'ndarraylike2scalar', ndarraylike2scalar );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndims}\n*/\nimport ndims from '@stdlib/ndarray-base-ndims';\nsetReadOnly( ns, 'ndims', ndims );\n\n/**\n* @name nextCartesianIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/next-cartesian-index}\n*/\nimport nextCartesianIndex from '@stdlib/ndarray-base-next-cartesian-index';\nsetReadOnly( ns, 'nextCartesianIndex', nextCartesianIndex );\n\n/**\n* @name nonsingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nonsingleton-dimensions}\n*/\nimport nonsingletonDimensions from '@stdlib/ndarray-base-nonsingleton-dimensions';\nsetReadOnly( ns, 'nonsingletonDimensions', nonsingletonDimensions );\n\n/**\n* @name normalizeIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-index}\n*/\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nsetReadOnly( ns, 'normalizeIndex', normalizeIndex );\n\n/**\n* @name normalizeIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-indices}\n*/\nimport normalizeIndices from '@stdlib/ndarray-base-normalize-indices';\nsetReadOnly( ns, 'normalizeIndices', normalizeIndices );\n\n/**\n* @name nullary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary}\n*/\nimport nullary from '@stdlib/ndarray-base-nullary';\nsetReadOnly( ns, 'nullary', nullary );\n\n/**\n* @name nullaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-loop-interchange-order}\n*/\nimport nullaryLoopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nsetReadOnly( ns, 'nullaryLoopOrder', nullaryLoopOrder );\n\n/**\n* @name nullaryStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d}\n*/\nimport nullaryStrided1d from '@stdlib/ndarray-base-nullary-strided1d';\nsetReadOnly( ns, 'nullaryStrided1d', nullaryStrided1d );\n\n/**\n* @name nullaryStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch}\n*/\nimport nullaryStrided1dDispatch from '@stdlib/ndarray-base-nullary-strided1d-dispatch';\nsetReadOnly( ns, 'nullaryStrided1dDispatch', nullaryStrided1dDispatch );\n\n/**\n* @name nullaryStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch-factory}\n*/\nimport nullaryStrided1dDispatchFactory from '@stdlib/ndarray-base-nullary-strided1d-dispatch-factory';\nsetReadOnly( ns, 'nullaryStrided1dDispatchFactory', nullaryStrided1dDispatchFactory );\n\n/**\n* @name nullaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-tiling-block-size}\n*/\nimport nullaryBlockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nsetReadOnly( ns, 'nullaryBlockSize', nullaryBlockSize );\n\n/**\n* @name nulls\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nulls}\n*/\nimport nulls from '@stdlib/ndarray-base-nulls';\nsetReadOnly( ns, 'nulls', nulls );\n\n/**\n* @name nullsLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nulls-like}\n*/\nimport nullsLike from '@stdlib/ndarray-base-nulls-like';\nsetReadOnly( ns, 'nullsLike', nullsLike );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel}\n*/\nimport numel from '@stdlib/ndarray-base-numel';\nsetReadOnly( ns, 'numel', numel );\n\n/**\n* @name numelDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel-dimension}\n*/\nimport numelDimension from '@stdlib/ndarray-base-numel-dimension';\nsetReadOnly( ns, 'numelDimension', numelDimension );\n\n/**\n* @name offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offset}\n*/\nimport offset from '@stdlib/ndarray-base-offset';\nsetReadOnly( ns, 'offset', offset );\n\n/**\n* @name offsets\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offsets}\n*/\nimport offsets from '@stdlib/ndarray-base-offsets';\nsetReadOnly( ns, 'offsets', offsets );\n\n/**\n* @name ones\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ones}\n*/\nimport ones from '@stdlib/ndarray-base-ones';\nsetReadOnly( ns, 'ones', ones );\n\n/**\n* @name onesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ones-like}\n*/\nimport onesLike from '@stdlib/ndarray-base-ones-like';\nsetReadOnly( ns, 'onesLike', onesLike );\n\n/**\n* @name order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/order}\n*/\nimport order from '@stdlib/ndarray-base-order';\nsetReadOnly( ns, 'order', order );\n\n/**\n* @name outputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-dtype}\n*/\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\nsetReadOnly( ns, 'outputDataType', outputDataType );\n\n/**\n* @name outputOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-order}\n*/\nimport outputOrder from '@stdlib/ndarray-base-output-order';\nsetReadOnly( ns, 'outputOrder', outputOrder );\n\n/**\n* @name outputPolicyEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-enum2str}\n*/\nimport outputPolicyEnum2Str from '@stdlib/ndarray-base-output-policy-enum2str';\nsetReadOnly( ns, 'outputPolicyEnum2Str', outputPolicyEnum2Str );\n\n/**\n* @name outputPolicyResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-enum}\n*/\nimport outputPolicyResolveEnum from '@stdlib/ndarray-base-output-policy-resolve-enum';\nsetReadOnly( ns, 'outputPolicyResolveEnum', outputPolicyResolveEnum );\n\n/**\n* @name outputPolicyResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-str}\n*/\nimport outputPolicyResolveStr from '@stdlib/ndarray-base-output-policy-resolve-str';\nsetReadOnly( ns, 'outputPolicyResolveStr', outputPolicyResolveStr );\n\n/**\n* @name outputPolicyStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-str2enum}\n*/\nimport outputPolicyStr2Enum from '@stdlib/ndarray-base-output-policy-str2enum';\nsetReadOnly( ns, 'outputPolicyStr2Enum', outputPolicyStr2Enum );\n\n/**\n* @name pop\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/pop}\n*/\nimport pop from '@stdlib/ndarray-base-pop';\nsetReadOnly( ns, 'pop', pop );\n\n/**\n* @name prependSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/prepend-singleton-dimensions}\n*/\nimport prependSingletonDimensions from '@stdlib/ndarray-base-prepend-singleton-dimensions';\nsetReadOnly( ns, 'prependSingletonDimensions', prependSingletonDimensions );\n\n/**\n* @name promoteDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/promote-dtypes}\n*/\nimport promoteDataTypes from '@stdlib/ndarray-base-promote-dtypes';\nsetReadOnly( ns, 'promoteDataTypes', promoteDataTypes );\n\n/**\n* @name quaternaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quaternary-loop-interchange-order}\n*/\nimport quaternaryLoopOrder from '@stdlib/ndarray-base-quaternary-loop-interchange-order';\nsetReadOnly( ns, 'quaternaryLoopOrder', quaternaryLoopOrder );\n\n/**\n* @name quaternaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quaternary-tiling-block-size}\n*/\nimport quaternaryBlockSize from '@stdlib/ndarray-base-quaternary-tiling-block-size';\nsetReadOnly( ns, 'quaternaryBlockSize', quaternaryBlockSize );\n\n/**\n* @name quinaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quinary-loop-interchange-order}\n*/\nimport quinaryLoopOrder from '@stdlib/ndarray-base-quinary-loop-interchange-order';\nsetReadOnly( ns, 'quinaryLoopOrder', quinaryLoopOrder );\n\n/**\n* @name quinaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quinary-tiling-block-size}\n*/\nimport quinaryBlockSize from '@stdlib/ndarray-base-quinary-tiling-block-size';\nsetReadOnly( ns, 'quinaryBlockSize', quinaryBlockSize );\n\n/**\n* @name reinterpretBoolean\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-boolean}\n*/\nimport reinterpretBoolean from '@stdlib/ndarray-base-reinterpret-boolean';\nsetReadOnly( ns, 'reinterpretBoolean', reinterpretBoolean );\n\n/**\n* @name reinterpretComplex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex}\n*/\nimport reinterpretComplex from '@stdlib/ndarray-base-reinterpret-complex';\nsetReadOnly( ns, 'reinterpretComplex', reinterpretComplex );\n\n/**\n* @name reinterpretComplex64\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex64}\n*/\nimport reinterpretComplex64 from '@stdlib/ndarray-base-reinterpret-complex64';\nsetReadOnly( ns, 'reinterpretComplex64', reinterpretComplex64 );\n\n/**\n* @name reinterpretComplex128\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex128}\n*/\nimport reinterpretComplex128 from '@stdlib/ndarray-base-reinterpret-complex128';\nsetReadOnly( ns, 'reinterpretComplex128', reinterpretComplex128 );\n\n/**\n* @name removeSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/remove-singleton-dimensions}\n*/\nimport removeSingletonDimensions from '@stdlib/ndarray-base-remove-singleton-dimensions';\nsetReadOnly( ns, 'removeSingletonDimensions', removeSingletonDimensions );\n\n/**\n* @name reverse\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse}\n*/\nimport reverse from '@stdlib/ndarray-base-reverse';\nsetReadOnly( ns, 'reverse', reverse );\n\n/**\n* @name reverseDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimension}\n*/\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nsetReadOnly( ns, 'reverseDimension', reverseDimension );\n\n/**\n* @name reverseDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimensions}\n*/\nimport reverseDimensions from '@stdlib/ndarray-base-reverse-dimensions';\nsetReadOnly( ns, 'reverseDimensions', reverseDimensions );\n\n/**\n* @name rot90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rot90}\n*/\nimport rot90 from '@stdlib/ndarray-base-rot90';\nsetReadOnly( ns, 'rot90', rot90 );\n\n/**\n* @name rot180\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rot180}\n*/\nimport rot180 from '@stdlib/ndarray-base-rot180';\nsetReadOnly( ns, 'rot180', rot180 );\n\n/**\n* @name rotl90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rotl90}\n*/\nimport rotl90 from '@stdlib/ndarray-base-rotl90';\nsetReadOnly( ns, 'rotl90', rotl90 );\n\n/**\n* @name rotr90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rotr90}\n*/\nimport rotr90 from '@stdlib/ndarray-base-rotr90';\nsetReadOnly( ns, 'rotr90', rotr90 );\n\n/**\n* @name serializeMetaData\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/serialize-meta-data}\n*/\nimport serializeMetaData from '@stdlib/ndarray-base-serialize-meta-data';\nsetReadOnly( ns, 'serializeMetaData', serializeMetaData );\n\n/**\n* @name setDescriptorOffsets\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/set-descriptor-offsets}\n*/\nimport setDescriptorOffsets from '@stdlib/ndarray-base-set-descriptor-offsets';\nsetReadOnly( ns, 'setDescriptorOffsets', setDescriptorOffsets );\n\n/**\n* @name shape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape}\n*/\nimport shape from '@stdlib/ndarray-base-shape';\nsetReadOnly( ns, 'shape', shape );\n\n/**\n* @name shape2strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape2strides}\n*/\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nsetReadOnly( ns, 'shape2strides', shape2strides );\n\n/**\n* @name shift\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shift}\n*/\nimport shift from '@stdlib/ndarray-base-shift';\nsetReadOnly( ns, 'shift', shift );\n\n/**\n* @name singletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/singleton-dimensions}\n*/\nimport singletonDimensions from '@stdlib/ndarray-base-singleton-dimensions';\nsetReadOnly( ns, 'singletonDimensions', singletonDimensions );\n\n/**\n* @name slice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice}\n*/\nimport slice from '@stdlib/ndarray-base-slice';\nsetReadOnly( ns, 'slice', slice );\n\n/**\n* @name sliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-assign}\n*/\nimport sliceAssign from '@stdlib/ndarray-base-slice-assign';\nsetReadOnly( ns, 'sliceAssign', sliceAssign );\n\n/**\n* @name sliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension}\n*/\nimport sliceDimension from '@stdlib/ndarray-base-slice-dimension';\nsetReadOnly( ns, 'sliceDimension', sliceDimension );\n\n/**\n* @name sliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-from}\n*/\nimport sliceDimensionFrom from '@stdlib/ndarray-base-slice-dimension-from';\nsetReadOnly( ns, 'sliceDimensionFrom', sliceDimensionFrom );\n\n/**\n* @name sliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-to}\n*/\nimport sliceDimensionTo from '@stdlib/ndarray-base-slice-dimension-to';\nsetReadOnly( ns, 'sliceDimensionTo', sliceDimensionTo );\n\n/**\n* @name sliceFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-from}\n*/\nimport sliceFrom from '@stdlib/ndarray-base-slice-from';\nsetReadOnly( ns, 'sliceFrom', sliceFrom );\n\n/**\n* @name sliceTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-to}\n*/\nimport sliceTo from '@stdlib/ndarray-base-slice-to';\nsetReadOnly( ns, 'sliceTo', sliceTo );\n\n/**\n* @name some\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/some}\n*/\nimport some from '@stdlib/ndarray-base-some';\nsetReadOnly( ns, 'some', some );\n\n/**\n* @name someBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/some-by}\n*/\nimport someBy from '@stdlib/ndarray-base-some-by';\nsetReadOnly( ns, 'someBy', someBy );\n\n/**\n* @name spreadDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/spread-dimensions}\n*/\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nsetReadOnly( ns, 'spreadDimensions', spreadDimensions );\n\n/**\n* @name stride\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/stride}\n*/\nimport stride from '@stdlib/ndarray-base-stride';\nsetReadOnly( ns, 'stride', stride );\n\n/**\n* @name strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides}\n*/\nimport strides from '@stdlib/ndarray-base-strides';\nsetReadOnly( ns, 'strides', strides );\n\n/**\n* @name strides2offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2offset}\n*/\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nsetReadOnly( ns, 'strides2offset', strides2offset );\n\n/**\n* @name strides2order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2order}\n*/\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nsetReadOnly( ns, 'strides2order', strides2order );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/sub2ind}\n*/\nimport sub2ind from '@stdlib/ndarray-base-sub2ind';\nsetReadOnly( ns, 'sub2ind', sub2ind );\n\n/**\n* @name ternary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary}\n*/\nimport ternary from '@stdlib/ndarray-base-ternary';\nsetReadOnly( ns, 'ternary', ternary );\n\n/**\n* @name ternaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-loop-interchange-order}\n*/\nimport ternaryLoopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nsetReadOnly( ns, 'ternaryLoopOrder', ternaryLoopOrder );\n\n/**\n* @name ternaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-output-dtype}\n*/\nimport ternaryOutputDataType from '@stdlib/ndarray-base-ternary-output-dtype';\nsetReadOnly( ns, 'ternaryOutputDataType', ternaryOutputDataType );\n\n/**\n* @name ternaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-tiling-block-size}\n*/\nimport ternaryBlockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\nsetReadOnly( ns, 'ternaryBlockSize', ternaryBlockSize );\n\n/**\n* @name tile\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/tile}\n*/\nimport tile from '@stdlib/ndarray-base-tile';\nsetReadOnly( ns, 'tile', tile );\n\n/**\n* @name blockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/tiling-block-size}\n*/\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\nsetReadOnly( ns, 'blockSize', blockSize );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-array}\n*/\nimport ndarray2array from '@stdlib/ndarray-base-to-array';\nsetReadOnly( ns, 'ndarray2array', ndarray2array );\n\n/**\n* @name toFlippedlr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-flippedlr}\n*/\nimport toFlippedlr from '@stdlib/ndarray-base-to-flippedlr';\nsetReadOnly( ns, 'toFlippedlr', toFlippedlr );\n\n/**\n* @name toFlippedud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-flippedud}\n*/\nimport toFlippedud from '@stdlib/ndarray-base-to-flippedud';\nsetReadOnly( ns, 'toFlippedud', toFlippedud );\n\n/**\n* @name toNormalizedIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-normalized-indices}\n*/\nimport toNormalizedIndices from '@stdlib/ndarray-base-to-normalized-indices';\nsetReadOnly( ns, 'toNormalizedIndices', toNormalizedIndices );\n\n/**\n* @name toReversed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed}\n*/\nimport toReversed from '@stdlib/ndarray-base-to-reversed';\nsetReadOnly( ns, 'toReversed', toReversed );\n\n/**\n* @name toReversedDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed-dimension}\n*/\nimport toReversedDimension from '@stdlib/ndarray-base-to-reversed-dimension';\nsetReadOnly( ns, 'toReversedDimension', toReversedDimension );\n\n/**\n* @name toReversedDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed-dimensions}\n*/\nimport toReversedDimensions from '@stdlib/ndarray-base-to-reversed-dimensions';\nsetReadOnly( ns, 'toReversedDimensions', toReversedDimensions );\n\n/**\n* @name toRot90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rot90}\n*/\nimport toRot90 from '@stdlib/ndarray-base-to-rot90';\nsetReadOnly( ns, 'toRot90', toRot90 );\n\n/**\n* @name toRot180\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rot180}\n*/\nimport toRot180 from '@stdlib/ndarray-base-to-rot180';\nsetReadOnly( ns, 'toRot180', toRot180 );\n\n/**\n* @name toRotl90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rotl90}\n*/\nimport toRotl90 from '@stdlib/ndarray-base-to-rotl90';\nsetReadOnly( ns, 'toRotl90', toRotl90 );\n\n/**\n* @name toRotr90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rotr90}\n*/\nimport toRotr90 from '@stdlib/ndarray-base-to-rotr90';\nsetReadOnly( ns, 'toRotr90', toRotr90 );\n\n/**\n* @name toTransposed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-transposed}\n*/\nimport toTransposed from '@stdlib/ndarray-base-to-transposed';\nsetReadOnly( ns, 'toTransposed', toTransposed );\n\n/**\n* @name toUnflattened\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-unflattened}\n*/\nimport toUnflattened from '@stdlib/ndarray-base-to-unflattened';\nsetReadOnly( ns, 'toUnflattened', toUnflattened );\n\n/**\n* @name toUniqueNormalizedIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-unique-normalized-indices}\n*/\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nsetReadOnly( ns, 'toUniqueNormalizedIndices', toUniqueNormalizedIndices );\n\n/**\n* @name transpose\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/transpose}\n*/\nimport transpose from '@stdlib/ndarray-base-transpose';\nsetReadOnly( ns, 'transpose', transpose );\n\n/**\n* @name trues\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/trues}\n*/\nimport trues from '@stdlib/ndarray-base-trues';\nsetReadOnly( ns, 'trues', trues );\n\n/**\n* @name truesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/trues-like}\n*/\nimport truesLike from '@stdlib/ndarray-base-trues-like';\nsetReadOnly( ns, 'truesLike', truesLike );\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary}\n*/\nimport unary from '@stdlib/ndarray-base-unary';\nsetReadOnly( ns, 'unary', unary );\n\n/**\n* @name unaryAccumulate\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-accumulate}\n*/\nimport unaryAccumulate from '@stdlib/ndarray-base-unary-accumulate';\nsetReadOnly( ns, 'unaryAccumulate', unaryAccumulate );\n\n/**\n* @name unaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-addon-dispatch}\n*/\nimport unaryAddonDispatch from '@stdlib/ndarray-base-unary-addon-dispatch';\nsetReadOnly( ns, 'unaryAddonDispatch', unaryAddonDispatch );\n\n/**\n* @name unaryBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-by}\n*/\nimport unaryBy from '@stdlib/ndarray-base-unary-by';\nsetReadOnly( ns, 'unaryBy', unaryBy );\n\n/**\n* @name unaryInputCastingDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-input-casting-dtype}\n*/\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nsetReadOnly( ns, 'unaryInputCastingDataType', unaryInputCastingDataType );\n\n/**\n* @name unaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-loop-interchange-order}\n*/\nimport unaryLoopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nsetReadOnly( ns, 'unaryLoopOrder', unaryLoopOrder );\n\n/**\n* @name unaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-output-dtype}\n*/\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nsetReadOnly( ns, 'unaryOutputDataType', unaryOutputDataType );\n\n/**\n* @name unaryReduceStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d}\n*/\nimport unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\nsetReadOnly( ns, 'unaryReduceStrided1d', unaryReduceStrided1d );\n\n/**\n* @name unaryReduceStrided1dAssignStruct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-assign-struct}\n*/\nimport unaryReduceStrided1dAssignStruct from '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct';\nsetReadOnly( ns, 'unaryReduceStrided1dAssignStruct', unaryReduceStrided1dAssignStruct );\n\n/**\n* @name unaryReduceStrided1dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-by}\n*/\nimport unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\nsetReadOnly( ns, 'unaryReduceStrided1dBy', unaryReduceStrided1dBy );\n\n/**\n* @name unaryReduceStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch}\n*/\nimport unaryReduceStrided1dDispatch from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatch', unaryReduceStrided1dDispatch );\n\n/**\n* @name unaryReduceStrided1dDispatchBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by}\n*/\nimport unaryReduceStrided1dDispatchBy from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchBy', unaryReduceStrided1dDispatchBy );\n\n/**\n* @name unaryReduceStrided1dDispatchByFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by-factory}\n*/\nimport unaryReduceStrided1dDispatchByFactory from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchByFactory', unaryReduceStrided1dDispatchByFactory );\n\n/**\n* @name unaryReduceStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-factory}\n*/\nimport unaryReduceStrided1dDispatchFactory from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchFactory', unaryReduceStrided1dDispatchFactory );\n\n/**\n* @name unaryReduceSubarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray}\n*/\nimport unaryReduceSubarray from '@stdlib/ndarray-base-unary-reduce-subarray';\nsetReadOnly( ns, 'unaryReduceSubarray', unaryReduceSubarray );\n\n/**\n* @name unaryReduceSubarrayBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray-by}\n*/\nimport unaryReduceSubarrayBy from '@stdlib/ndarray-base-unary-reduce-subarray-by';\nsetReadOnly( ns, 'unaryReduceSubarrayBy', unaryReduceSubarrayBy );\n\n/**\n* @name unaryStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d}\n*/\nimport unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\nsetReadOnly( ns, 'unaryStrided1d', unaryStrided1d );\n\n/**\n* @name unaryStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch}\n*/\nimport unaryStrided1dDispatch from '@stdlib/ndarray-base-unary-strided1d-dispatch';\nsetReadOnly( ns, 'unaryStrided1dDispatch', unaryStrided1dDispatch );\n\n/**\n* @name unaryStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch-factory}\n*/\nimport unaryStrided1dDispatchFactory from '@stdlib/ndarray-base-unary-strided1d-dispatch-factory';\nsetReadOnly( ns, 'unaryStrided1dDispatchFactory', unaryStrided1dDispatchFactory );\n\n/**\n* @name unaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-tiling-block-size}\n*/\nimport unaryBlockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nsetReadOnly( ns, 'unaryBlockSize', unaryBlockSize );\n\n/**\n* @name unflatten\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unflatten}\n*/\nimport unflatten from '@stdlib/ndarray-base-unflatten';\nsetReadOnly( ns, 'unflatten', unflatten );\n\n/**\n* @name unflattenShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unflatten-shape}\n*/\nimport unflattenShape from '@stdlib/ndarray-base-unflatten-shape';\nsetReadOnly( ns, 'unflattenShape', unflattenShape );\n\n/**\n* @name vind2bind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/vind2bind}\n*/\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nsetReadOnly( ns, 'vind2bind', vind2bind );\n\n/**\n* @name wrapIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/wrap-index}\n*/\nimport wrapIndex from '@stdlib/ndarray-base-wrap-index';\nsetReadOnly( ns, 'wrapIndex', wrapIndex );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros}\n*/\nimport zeros from '@stdlib/ndarray-base-zeros';\nsetReadOnly( ns, 'zeros', zeros );\n\n/**\n* @name zerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros-like}\n*/\nimport zerosLike from '@stdlib/ndarray-base-zeros-like';\nsetReadOnly( ns, 'zerosLike', zerosLike );\n\n/**\n* @name zip2views1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zip2views1d}\n*/\nimport zip2views1d from '@stdlib/ndarray-base-zip2views1d';\nsetReadOnly( ns, 'zip2views1d', zip2views1d );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Returns an array with a specified number of appended singleton dimensions.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeInteger} n - number of singleton dimensions to append\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = appendSingletonDimensions( x, 3, false );\n* // returns [ [ [ [ [ 1 ] ] ], [ [ [ 2 ] ] ] ], [ [ [ [ 3 ] ] ], [ [ [ 4 ] ] ] ] ]\n*/\nfunction appendSingletonDimensions( x, n, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar s;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Copy existing dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\t// Append singleton dimensions...\n\ts = ( N > 0 ) ? st[ N-1 ] : st[ 0 ];\n\tfor ( i = 0; i < n; i++ ) {\n\t\tshape.push( 1 );\n\t\tstrides.push( s );\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default appendSingletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcast from '@stdlib/ndarray-base-broadcast-array';\nimport diagonal from '@stdlib/ndarray-base-diagonal';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Assigns elements from a broadcasted input ndarray to a specified diagonal of an output ndarray.\n*\n* ## Notes\n*\n* - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n* - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function assigns to the main diagonal; when `k > 0`, the function assigns to a diagonal above the main diagonal; and when `k < 0`, the function assigns to a diagonal below the main diagonal.\n* - The input ndarray must be broadcast compatible with the output ndarray view defined by the specified diagonal.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {IntegerArray} dims - dimension indices defining the plane in which to assign elements to the diagonal\n* @param {integer} k - diagonal offset\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} output ndarray must have at least two dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @throws {Error} input ndarray must be broadcast compatible with the output ndarray diagonal view\n* @returns {ndarray} output ndarray\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var y = zeros( [ 3, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ]\n*\n* var out = assignDiagonal( [ x, y ], [ 0, 1 ], 0 );\n* // returns [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction assignDiagonal( arrays, dims, k ) {\n\tvar view;\n\tvar x;\n\n\t// Create a writable output array view of the specified diagonal:\n\tview = diagonal( arrays[ 1 ], dims, k, true );\n\n\t// Broadcast the input array to the diagonal view shape:\n\tx = broadcast( arrays[ 0 ], getShape( view, false ) );\n\n\t// Assign elements from the broadcasted input array to the output array view:\n\tassign( [ x, view ] );\n\n\t// Return the original output ndarray:\n\treturn arrays[ 1 ];\n}\n\n\n// EXPORTS //\n\nexport default assignDiagonal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least one dimension.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = scalar2ndarray( 3.14 );\n* // returns [ 3.14 ]\n*\n* var out = atleast1d( [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleast1d( arrays ) {\n\treturn atleastnd( 1, arrays );\n}\n\n\n// EXPORTS //\n\nexport default atleast1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least two dimensions.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = scalar2ndarray( 3.14 );\n* // returns [ 3.14 ]\n*\n* var out = atleast2d( [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleast2d( arrays ) {\n\treturn atleastnd( 2, arrays );\n}\n\n\n// EXPORTS //\n\nexport default atleast2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least three dimensions.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = scalar2ndarray( 3.14 );\n* // returns [ 3.14 ]\n*\n* var out = atleast3d( [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleast3d( arrays ) {\n\treturn atleastnd( 3, arrays );\n}\n\n\n// EXPORTS //\n\nexport default atleast3d;\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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport BinaryStrided1dDispatch from '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction on two input ndarrays.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {ArrayLikeObject} [table.types] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {ArrayLikeObject} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {Function} function for performing a reduction on two ndarrays\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = factory( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var z = dot( x, y );\n* // returns [ -5.0 ]\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = factory( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var zbuf = [ 0.0 ];\n* var z = new ndarray( 'generic', zbuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = dot.assign( x, y, z );\n* // returns [ -5.0 ]\n*\n* var bool = ( out === z );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies ) {\n\tvar f = new BinaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Performs a reduction on two provided input ndarrays.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - first input ndarray\n\t* @param {ndarrayLike} y - second input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n\t* @param {*} [options.dtype] - output ndarray data type\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} second argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Performs a reduction on two provided input ndarrays and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - first input ndarray\n\t* @param {ndarrayLike} y - second input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} second argument must be an ndarray\n\t* @throws {TypeError} second argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport trunc from '@stdlib/math-base-special-trunc';\nimport abs from '@stdlib/math-base-special-abs';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an underlying data buffer to a linear index in an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an underlying data buffer\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an array view\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = bind2vind( shape, strides, offset, order, 7, mode );\n* // returns 1\n*/\nfunction bind2vind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a buffer index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the array view (i.e., where all strides are positive and offset is 0)...\n\tind = 0;\n\tif ( isColumnMajor( order ) ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tk += shape[ i ] - 1;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t}\n\t\t\tind += k * abs( s );\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tk += shape[ i ] - 1;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t}\n\t\tind += k * abs( s );\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nexport default bind2vind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcastShapes from '@stdlib/ndarray-base-broadcast-shapes';\nimport broadcastArray from '@stdlib/ndarray-base-broadcast-array';\nimport getShape from '@stdlib/ndarray-base-shape';\n\n\n// MAIN //\n\n/**\n* Broadcasts ndarrays to a common shape.\n*\n* ## Notes\n*\n* - The returned arrays are views on their respective underlying data buffers. The views are typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to one of the returned arrays, copy the array before performing operations which may mutate elements.\n*\n* @param {ArrayLikeObject} arrays - list of input arrays\n* @throws {Error} input arrays must be broadcast compatible\n* @returns {Array} broadcasted arrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x1.shape;\n* // returns [ 2, 2 ]\n*\n* var y1 = zeros( [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y1.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var out = broadcastArrays( [ x1, y1 ] );\n* // returns [ , ]\n*\n* var x2 = out[ 0 ];\n* // returns \n*\n* var y2 = out[ 1 ];\n* // returns \n*\n* shx = x2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* shy = y2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = x2.get( 0, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 0, 0, 1 );\n* // returns 2\n*\n* v = x2.get( 1, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 1, 1, 0 );\n* // returns 3\n*\n* v = x2.get( 2, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zeros( [ 4, 2 ] );\n* // returns \n*\n* var out = broadcastArrays( [ x, y ] );\n* // throws \n*/\nfunction broadcastArrays( arrays ) {\n\tvar shapes;\n\tvar out;\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = arrays.length;\n\n\t// Resolve the list of shapes...\n\tshapes = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshapes.push( getShape( arrays[ i ], false ) );\n\t}\n\t// Broadcast the shapes to a common shape:\n\tsh = broadcastShapes( shapes );\n\tif ( sh === null ) {\n\t\tthrow new Error( 'invalid arguments. Input arrays must be broadcast compatible.' );\n\t}\n\t// Broadcast each array to the common shape...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( broadcastArray( arrays[ i ], sh ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default broadcastArrays;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport azeros from '@stdlib/array-base-zeros';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts a scalar value to an ndarray having the same shape and data type as a provided input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {*} value - scalar value\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]\n*\n* var y = broadcastScalarLike( x, 1.0 );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction broadcastScalarLike( x, value ) {\n\tvar buf;\n\tvar set;\n\tvar sh;\n\tvar dt;\n\tvar N;\n\n\tdt = resolveStr( getDType( x ) );\n\tbuf = buffer( dt, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dt ) );\n\t}\n\tif ( isComplexDataType( dt ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, value );\n\tsh = getShape( x, true );\n\tN = sh.length || 1;\n\treturn new x.constructor( dt, buf, sh, azeros( N ), 0, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default broadcastScalarLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtype from '@stdlib/ndarray-base-buffer-dtype';\n\n\n// MAIN //\n\n/**\n* Returns the data type enumeration constant for a provided ndarray data buffer.\n*\n* @param {Collection} arr - ndarray data buffer\n* @returns {(integer|null)} data type enumeration constant or null\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var x = new Float64Array( 10 );\n*\n* var c = dtypeEnum( x );\n* // returns \n*/\nfunction dtypeEnum( arr ) {\n\tvar dt = dtype( arr );\n\tif ( dt ) {\n\t\treturn resolveEnum( dt );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeEnum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Clips an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clipIndex( -2, 10 );\n* // returns 8\n*\n* idx = clipIndex( 15, 10 );\n* // returns 10\n*\n* idx = clipIndex( 5, 10 );\n* // returns 5\n*/\nfunction clipIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max;\n\t\tif ( idx < 0 ) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default clipIndex;\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\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the shape defined by the dimensions which are **not** included in a list of dimensions.\n*\n* @param {NonNegativeIntegerArray} shape - input shape\n* @param {IntegerArray} dims - list of dimensions\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* var sh = complementShape( [ 3, 2 ], [ 0 ] );\n* // returns [ 2 ]\n*/\nfunction complementShape( shape, dims ) {\n\tvar ind = normalizeIndices( dims, shape.length-1 );\n\tif ( ind === null ) {\n\t\t// Note: this is an error condition, as `null` is returned when provided out-of-bounds indices...\n\t\treturn [];\n\t}\n\treturn takeIndexed( shape, indicesComplement( shape.length, ind ) );\n}\n\n\n// EXPORTS //\n\nexport default complementShape;\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\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Copies an input ndarray to a new ndarray having the same shape and data type.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} output ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n*\n* var x = zeros( 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = copy( x );\n* // returns \n*/\nfunction copy( x ) {\n\tvar out = emptyLike( x );\n\tassign( [ x, out ] );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a plain object describing how to interpret a data buffer as an n-dimensional array.\n*\n* @param {*} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} ndarray descriptor\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = descriptor( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns {...}\n*/\nfunction descriptor( dtype, buffer, shape, strides, offset, order ) {\n\treturn {\n\t\t'dtype': dtype,\n\t\t'data': buffer,\n\t\t'shape': shape,\n\t\t'strides': strides,\n\t\t'offset': offset,\n\t\t'order': order\n\t};\n}\n\n\n// EXPORTS //\n\nexport default descriptor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport TABLE from './table.json';\n\n\n// MAIN //\n\n/**\n* Returns the C data type associated with a provided data type string.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} C data type\n*\n* @example\n* var out = dtype2c( 'float64' );\n* // returns 'double'\n*\n* out = dtype2c( 'generic' );\n* // returns null\n*/\nfunction dtype2c( dtype ) {\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype2c;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Expands the shape of an array by inserting a new dimension of size one at a specified dimension index.\n*\n* ## Notes\n*\n* - A provided dimension index must reside on the interval `[-N-1, N]`, where `N` is the rank (i.e., number of dimensions) of the provided input array. If provided a negative dimension index, the position at which to insert a singleton dimension is computed as `N + dim + 1`. Hence, if provided `-1`, the resolved position is `N` (i.e., a singleton dimension is appended to the input array).\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension index at which to insert a singleton dimension\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide a valid dimension index\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = expandDimensions( x, 1, false );\n* // returns [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ]\n*/\nfunction expandDimensions( x, dim, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar isrm;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\n\tisrm = isRowMajor( ord );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\td = normalizeIndex( dim, N );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `%d`.', N+1, N, dim ) );\n\t}\n\tif ( d === 0 ) {\n\t\t// Prepend singleton dimension...\n\t\tshape.push( 1 );\n\t\tif ( isrm ) {\n\t\t\tstrides.push( sh[ 0 ] * st[ 0 ] );\n\t\t} else {\n\t\t\tstrides.push( st[ 0 ] );\n\t\t}\n\t\t// Copy remaining dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t} else if ( d === N ) {\n\t\t// Copy dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t\t// Append singleton dimension...\n\t\tshape.push( 1 );\n\t\tif ( isrm ) {\n\t\t\tstrides.push( st[ N-1 ] );\n\t\t} else {\n\t\t\tstrides.push( sh[ N-1 ] * st[ N-1 ] );\n\t\t}\n\t} else {\n\t\t// Insert a singleton dimension...\n\t\tfor ( i = 0; i < N+1; i++ ) {\n\t\t\tif ( i === d ) {\n\t\t\t\tshape.push( 1 );\n\t\t\t\tif ( isrm ) {\n\t\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t\t} else { // ord === 'column-major'\n\t\t\t\t\tstrides.push( st[ i ] );\n\t\t\t\t}\n\t\t\t} else if ( i < d ) {\n\t\t\t\tshape.push( sh[ i ] );\n\t\t\t\tstrides.push( st[ i ] );\n\t\t\t} else { // i > d\n\t\t\t\tshape.push( sh[ i-1 ] );\n\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t}\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default expandDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `false` values and having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = falses( 'bool', [ 2, 2 ], 'row-major' );\n* // returns [ [ false, false ], [ false, false ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'bool'\n*/\nfunction falses( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), false );\n}\n\n\n// EXPORTS //\n\nexport default falses;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `false` values and having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import empty from '@stdlib/ndarray-empty';\n*\n* var x = empty( [ 2, 2 ], {\n* 'dtype': 'bool'\n* });\n* // returns \n*\n* var y = falsesLike( x );\n* // returns [ [ false, false ], [ false, false ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'bool'\n*/\nfunction falsesLike( x ) {\n\treturn fill( emptyLike( x ), false );\n}\n\n\n// EXPORTS //\n\nexport default falsesLike;\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\nimport map from '@stdlib/ndarray-base-map';\n\n\n// MAIN //\n\n/**\n* Fills an input ndarray according to a callback function.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {ndarrayLike} input ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]\n*\n* var out = fillBy( x, fcn );\n* // returns [ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fillBy( x, fcn, thisArg ) {\n\tmap( [ x, x ], fcn, thisArg );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default fillBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport diagonal from '@stdlib/ndarray-base-diagonal';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Fills a specified diagonal of a matrix (or stack of matrices) with a scalar value.\n*\n* ## Notes\n*\n* - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n* - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function fills the main diagonal; when `k > 0`, the function fills the diagonal above the main diagonal; and when `k < 0`, the function fills the diagonal below the main diagonal.\n* - The function mutates the input ndarray in-place.\n*\n* @param {ndarray} x - input array\n* @param {*} value - scalar value\n* @param {IntegerArray} dims - dimension indices defining the plane in which to fill the diagonal\n* @param {integer} k - diagonal offset\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @throws {TypeError} second argument cannot be safely cast to the input array data type\n* @returns {ndarray} input ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ]\n*\n* var out = fillDiagonal( x, 1.0, [ 0, 1 ], 0 );\n* // returns [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fillDiagonal( x, value, dims, k ) {\n\tfill( diagonal( x, dims, k, true ), value );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default fillDiagonal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MultiSlice from '@stdlib/slice-multi';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport slice from '@stdlib/ndarray-base-slice';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getShape from '@stdlib/ndarray-shape';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var sh = getShape( x );\n* // returns [ 3, 2 ]\n*\n* var y = fliplr( x, false );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ]\n*\n* sh = getShape( y );\n* // returns [ 3, 2 ]\n*/\nfunction fliplr( x, writable ) {\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( ndims( x ) === 0 ) {\n\t\t// Nothing to reverse so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\treturn reverseDimension( x, -1, writable );\n}\n\n\n// EXPORTS //\n\nexport default fliplr;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MultiSlice from '@stdlib/slice-multi';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport slice from '@stdlib/ndarray-base-slice';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getShape from '@stdlib/ndarray-shape';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var sh = getShape( x );\n* // returns [ 3, 2 ]\n*\n* var y = flipud( x, false );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*\n* sh = getShape( y );\n* // returns [ 3, 2 ]\n*/\nfunction flipud( x, writable ) {\n\tvar N = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\t// Nothing to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\t// Check whether we were provided a one-dimensional array...\n\tif ( N === 1 ) {\n\t\t// No second-to-last dimension to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice( null ), true, writable );\n\t}\n\treturn reverseDimension( x, -2, writable );\n}\n\n\n// EXPORTS //\n\nexport default flipud;\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\nimport dtype from '@stdlib/ndarray-base-buffer-dtype';\nimport ndarray from '@stdlib/ndarray-base-ctor';\n\n\n// MAIN //\n\n/**\n* Converts an array to a one-dimensional ndarray.\n*\n* @param {Collection} buf - input array\n* @param {string} order - memory layout (either 'row-major' or 'column-major')\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = [ 1, 2, 3 ];\n*\n* var x = array2ndarray( arr, 'row-major' );\n* // returns \n*\n* var dt = String( getDType( x ) );\n* // returns 'generic'\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1.0, 2.0, 3.0 ] );\n*\n* var x = array2ndarray( arr, 'row-major' );\n* // returns \n*\n* var dt = String( getDType( x ) );\n* // returns 'float64'\n*/\nfunction array2ndarray( buf, order ) {\n\tvar dt = dtype( buf ) || 'generic';\n\treturn new ndarray( dt, buf, [ buf.length ], [ 1 ], 0, order );\n}\n\n\n// EXPORTS //\n\nexport default array2ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value and having the same data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {*} value - scalar value\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = scalar2ndarrayLike( x, 1.0 );\n* // returns \n*\n* var sh = y.shape;\n* // returns []\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*\n* var v = y.get();\n* // returns 1.0\n*/\nfunction scalar2ndarrayLike( x, value ) {\n\tvar buf;\n\tvar set;\n\tvar dt;\n\n\tdt = getDType( x );\n\tif ( dt === 'binary' ) {\n\t\tbuf = allocUnsafe( 1 );\n\t} else {\n\t\tbuf = emptyArray( 1, dt );\n\t}\n\tif ( /^complex/.test( dt ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, value );\n\treturn new x.constructor( dt, buf, [], [ 0 ], 0, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default scalar2ndarrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isScalarMostlySafeCompatible from '@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible'; // eslint-disable-line id-length\nimport empty from '@stdlib/ndarray-base-empty';\nimport scalar2ndarray from '@stdlib/ndarray-base-from-scalar';\nimport assign from '@stdlib/ndarray-base-assign-scalar';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray filled with a specified value and having a specified shape and data type.\n*\n* @param {*} value - fill value\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} second argument must be a recognized data type\n* @throws {TypeError} first argument cannot be safely cast to the output array data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = full( 10.0, 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*\n* var sh = getShape( arr );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction full( value, dtype, shape, order ) {\n\tvar out;\n\tvar v;\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isScalarMostlySafeCompatible( value, dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. The first argument cannot be safely cast to the output array data type. Data type: %s. Value: `%s`.', dtype, value ) );\n\t}\n\t// Allocate an output array:\n\tout = empty( dtype, shape, order );\n\n\t// Convert the fill value to an ndarray having the same data type as the output ndarray:\n\tv = scalar2ndarray( value, dtype, order );\n\n\t// Assign the fill value to each element of the output ndarray:\n\tassign( [ v, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default full;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport map from '@stdlib/ndarray-base-map';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray filled according to a callback function and having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* function clbk() {\n* return 10.0;\n* }\n*\n* var arr = fullBy( 'float64', [ 2, 2 ], 'row-major', clbk );\n* // returns [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float64'\n*/\nfunction fullBy( dtype, shape, order, clbk, thisArg ) {\n\tvar out;\n\n\t// Allocate an output array:\n\tout = empty( dtype, shape, order );\n\n\t// Fill the output ndarray according to a callback function:\n\tmap( [ out, out ], wrapper );\n\n\treturn out;\n\n\t/**\n\t* Wraps a callback function so that only indices are passed.\n\t*\n\t* @private\n\t* @param {*} value - current array element\n\t* @param {NonNegativeIntegerArray} indices - current array element indices\n\t* @returns {*} callback return value\n\t*/\n\tfunction wrapper( value, indices ) {\n\t\treturn clbk.call( thisArg, indices );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default fullBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the maximum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*/\nfunction maxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] > 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 );\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default maxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcast from '@stdlib/ndarray-base-broadcast-array-except-dimensions';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport copy from '@stdlib/array-base-copy';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape while keeping a list of specified dimensions unchanged if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - The function expects that each index in the list of dimensions is negative in order to ensure that indices correspond to the same relative position in the output ndarray shape. For example, given an input ndarray shape `[2,X1,X2]` and a desired shape `[6,7,2,Y1,Y2]`, a list of negative dimensions `[-2,-1]` correctly maps the unchanged dimensions `X` in the input ndarray to ignored dimensions `Y` in the provided target shape. Nonnegative indices, however, afford no such mapping. For example, the list of dimensions `[1,2]` corresponds to `[X1,X2]` in the input ndarray shape, but to `[7,2]` in the target shape, which is not desired. By expecting negative indices, we avoid confusion and ensure that users always refer to dimensions relative to the last broadcasted dimension.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @param {NegativeIntegerArray} dims - list of dimensions to exclude from broadcasting\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} broadcasted dimensions in the input array and desired shape must be broadcast compatible\n* @throws {RangeError} dimension indices must not exceed desired shape bounds\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import getShape from '@stdlib/ndarray-shape';\n*\n* var x = array( [ [ 1, 2, 3 ] ] );\n* // returns [ [ 1, 2, 3 ] ]\n*\n* var y = maybeBroadcastArrayExceptDimensions( x, [ 2, 2, 3 ], [ -2 ] );\n* // returns [ [ [ 1, 2, 3 ] ], [ [ 1, 2, 3 ] ] ]\n*/\nfunction maybeBroadcastArrayExceptDimensions( arr, shape, dims ) { // eslint-disable-line id-length\n\tvar idx;\n\tvar sh;\n\tvar dl;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\t// Resolve the shape of the input array:\n\tsh = getShape( arr, false );\n\tN = shape.length;\n\tM = sh.length;\n\n\t// Check whether we need to broadcast the input array...\n\tif ( M === N ) {\n\t\t// Copy input arguments to avoid unintended mutation:\n\t\tidx = copy( dims );\n\n\t\t// Verify that we've been provided a list of unique dimension indices...\n\t\tdl = idx.length;\n\t\tidx = normalizeIndices( idx, M-1 );\n\t\tif ( idx === 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\tidx.sort(); // sort in ascending order\n\t\tif ( idx.length !== dl ) {\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\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t// Check for a skipped dimension...\n\t\t\tif ( j < dl && i === idx[ j ] ) {\n\t\t\t\tj += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== shape[ i ] ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( arr, shape, dims );\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( arr, shape, dims );\n}\n\n\n// EXPORTS //\n\nexport default maybeBroadcastArrayExceptDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcastShapes from '@stdlib/ndarray-base-broadcast-shapes';\nimport maybeBroadcastArray from '@stdlib/ndarray-base-maybe-broadcast-array';\nimport getShape from '@stdlib/ndarray-base-shape';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarrays to a common shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has a shape matching the common shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the common shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to a returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ArrayLikeObject} arrays - list of input arrays\n* @throws {Error} input arrays must be broadcast compatible\n* @returns {Array} broadcasted arrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x1.shape;\n* // returns [ 2, 2 ]\n*\n* var y1 = zeros( [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y1.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var out = maybeBroadcastArrays( [ x1, y1 ] );\n* // returns \n*\n* var x2 = out[ 0 ];\n* // returns \n*\n* var y2 = out[ 1 ];\n* // returns \n*\n* shx = x2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* shy = y2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = x2.get( 0, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 0, 0, 1 );\n* // returns 2\n*\n* v = x2.get( 1, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 1, 1, 0 );\n* // returns 3\n*\n* v = x2.get( 2, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zeros( [ 4, 2 ] );\n* // returns \n*\n* var out = maybeBroadcastArrays( [ x, y ] );\n* // throws \n*/\nfunction maybeBroadcastArrays( arrays ) {\n\tvar shapes;\n\tvar out;\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = arrays.length;\n\n\t// Resolve the list of shapes...\n\tshapes = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshapes.push( getShape( arrays[ i ], false ) );\n\t}\n\t// Broadcast the shapes to a common shape:\n\tsh = broadcastShapes( shapes );\n\tif ( sh === null ) {\n\t\tthrow new Error( 'invalid arguments. Input arrays must be broadcast compatible.' );\n\t}\n\t// Broadcast each array to the common shape...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( maybeBroadcastArray( arrays[ i ], sh ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default maybeBroadcastArrays;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport dtypes2signatures from '@stdlib/ndarray-base-dtypes2signatures';\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of ndarray data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( x, y ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs );\n*/\nfunction setProps( meta, dtypes, obj ) {\n\t// Define the number of arguments:\n\tsetReadOnly( obj, 'nargs', meta.nargs );\n\n\t// Define the number of input arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setProps;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\n\n\n// MAIN //\n\n/**\n* Returns the minimum ndarray data type for storing a provided unsigned integer value.\n*\n* @param {uinteger} value - scalar value\n* @returns {string} ndarray data type\n*\n* @example\n* var dt = minUnsignedIntegerDataType( 9999 );\n* // returns 'uint16'\n*\n* @example\n* var dt = minUnsignedIntegerDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minUnsignedIntegerDataType( value ) { // eslint-disable-line id-length\n\tif ( value <= UINT8_MAX ) {\n\t\treturn 'uint8';\n\t}\n\tif ( value <= UINT16_MAX ) {\n\t\treturn 'uint16';\n\t}\n\tif ( value <= UINT32_MAX ) {\n\t\treturn 'uint32';\n\t}\n\treturn 'float64';\n}\n\n\n// EXPORTS //\n\nexport default minUnsignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the minimum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*/\nfunction minViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 ); // decrements the index\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default minViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type'; // eslint-disable-line id-length\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\nimport CNAN from '@stdlib/constants-complex128-nan';\n\n\n// MAIN //\n\n/**\n* Creates a NaN-filled ndarray having a specified shape and data type.\n*\n* @param {*} dtype - floating-point or generic data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = nans( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ NaN, NaN ], [ NaN, NaN ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction nans( dtype, shape, order ) {\n\tif ( isComplexFloatingPointDataType( dtype ) ) {\n\t\treturn fill( empty( dtype, shape, order ), CNAN );\n\t}\n\treturn fill( empty( dtype, shape, order ), NaN );\n}\n\n\n// EXPORTS //\n\nexport default nans;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type'; // eslint-disable-line id-length\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\nimport dtype from '@stdlib/ndarray-base-dtype';\nimport CNAN from '@stdlib/constants-complex128-nan';\n\n\n// MAIN //\n\n/**\n* Creates a NaN-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import ones from '@stdlib/ndarray-ones';\n*\n* var x = ones( [ 2, 2 ], {\n* 'dtype': 'float32'\n* });\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var y = nansLike( x );\n* // returns [ [ NaN, NaN ], [ NaN, NaN ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction nansLike( x ) {\n\tif ( isComplexFloatingPointDataType( dtype( x ) ) ) {\n\t\treturn fill( emptyLike( x ), CNAN );\n\t}\n\treturn fill( emptyLike( x ), NaN );\n}\n\n\n// EXPORTS //\n\nexport default nansLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an ndarray descriptor.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Object} ndarray descriptor\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = ndarraylike2descriptor( zeros( [ 2, 2 ] ) );\n* // returns {...}\n*/\nfunction ndarraylike2descriptor( x ) {\n\treturn {\n\t\t'dtype': getDType( x ),\n\t\t'data': getData( x ),\n\t\t'shape': getShape( x, true ),\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x )\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2descriptor;\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\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to a scalar value.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {*} scalar value\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var out = ndarraylike2scalar( x );\n* // returns 1.0\n*/\nfunction ndarraylike2scalar( x ) {\n\tvar buf = getData( x );\n\tvar get = resolveGetter( buf );\n\treturn get( buf, getOffset( x ) );\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2scalar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the number of non-singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of non-singleton dimensions\n*\n* @example\n* var shape = [ 2, 2, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 1, 1, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 0\n*/\nfunction nonsingletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] !== 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nexport default nonsingletonDimensions;\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\nimport NullaryStrided1dDispatch from '@stdlib/ndarray-base-nullary-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for applying a strided function to a provided ndarray.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided functions which are specific to specialized output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\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 an output ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} function for applying a strided function to an ndarray\n*\n* @example\n* import base from '@stdlib/blas-ext-base-ndarray-gsorthp';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = dtypes( 'all' );\n*\n* var table = {\n* 'default': base\n* };\n* var sorthp = factory( table, [ idt ], odt );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var o = scalar2ndarray( 1.0, {\n* 'dtype': 'generic'\n* });\n*\n* var out = sorthp( x, o );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ -3.0, -1.0, 2.0 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, options ) {\n\tvar f;\n\tif ( arguments.length > 3 ) {\n\t\tf = new NullaryStrided1dDispatch( table, idtypes, odtypes, options );\n\t} else {\n\t\tf = new NullaryStrided1dDispatch( table, idtypes, odtypes );\n\t}\n\treturn assign;\n\n\t/**\n\t* Applies a strided function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of output ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a null-filled ndarray having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = nulls( 'generic', [ 2, 2 ], 'row-major' );\n* // returns [ [ null, null ], [ null, null ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'generic'\n*/\nfunction nulls( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), null );\n}\n\n\n// EXPORTS //\n\nexport default nulls;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a null-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import empty from '@stdlib/ndarray-empty';\n*\n* var x = empty( [ 2, 2 ], {\n* 'dtype': 'generic'\n* });\n* // returns \n*\n* var y = nullsLike( x );\n* // returns [ [ null, null ], [ null, null ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'generic'\n*/\nfunction nullsLike( x ) {\n\treturn fill( emptyLike( x ), null );\n}\n\n\n// EXPORTS //\n\nexport default nullsLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the size (i.e., number of elements) of a specified dimension for a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {integer} dim - dimension index\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {NonNegativeInteger} dimension size\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = numelDimension( zeros( [ 4, 2, 3 ] ), 0 );\n* // returns 4\n*/\nfunction numelDimension( x, dim ) {\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Return the dimension size:\n\treturn getShape( x, false )[ d ];\n}\n\n\n// EXPORTS //\n\nexport default numelDimension;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport offset from '@stdlib/ndarray-base-offset';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated element for each ndarray in a provided list of ndarrays.\n*\n* @param {ArrayLikeObject} arr - list of ndarray-like objects\n* @returns {Array} list of offsets\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ] );\n*\n* var out = offsets( [ x ] );\n* // returns [ 0 ]\n*/\nfunction offsets( arr ) {\n\tvar out = [];\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tout.push( offset( arr[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default offsets;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a ones-filled ndarray having a specified shape and data type.\n*\n* @param {*} dtype - numeric data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = ones( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var sh = getShape( arr );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction ones( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default ones;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a ones-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import ones from '@stdlib/ndarray-base-ones';\n*\n* var x = ones( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var y = onesLike( x );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction onesLike( x ) {\n\treturn fill( emptyLike( x ), 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default onesLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport enum2str from '@stdlib/ndarray-base-output-policy-enum2str';\nimport str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type policy value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} policy - policy value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'same' );\n* // returns \n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( policy ) ) ? policy : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport enum2str from '@stdlib/ndarray-base-output-policy-enum2str';\nimport str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with a supported ndarray data type policy value.\n*\n* @param {*} policy - policy value\n* @returns {(string|null)} policy string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n*\n* var v = resolve( str2enum( 'same' ) );\n* // returns 'same'\n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( policy ) === null ) ? null : policy;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport sliceFrom from '@stdlib/ndarray-base-slice-from';\nimport sliceTo from '@stdlib/ndarray-base-slice-to';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array containing a truncated view of an input ndarray and a view of the last element(s) along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension along which to perform the operation\n* @param {boolean} writable - boolean indicating whether returned arrays should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {Array} a list of ndarrays\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = pop( x, 0, false );\n* // returns [ , ]\n*\n* arr = ndarray2array( y[ 0 ] );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*\n* arr = ndarray2array( y[ 1 ] );\n* // returns [ [ 5.0, 6.0 ] ]\n*/\nfunction pop( x, dim, writable ) {\n\tvar v0;\n\tvar v1;\n\tvar sh;\n\tvar N;\n\tvar s;\n\n\t// Retrieve array meta data:\n\tsh = getShape( x );\n\tN = sh.length;\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\tdim = normalizeIndex( dim, N-1 );\n\tif ( dim === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\ts = nulls( N );\n\ts[ dim ] = sh[ dim ] - 1;\n\n\t// Create a truncated view:\n\tv0 = sliceTo( x, s, false, writable );\n\n\t// Create a view of the last element(s):\n\tv1 = sliceFrom( x, s, false, writable );\n\n\treturn [ v0, v1 ];\n}\n\n\n// EXPORTS //\n\nexport default pop;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Returns an array with a specified number of prepended singleton dimensions.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeInteger} n - number of singleton dimensions to prepend\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = prependSingletonDimensions( x, 3, false );\n* // returns [ [ [ [ [ 1, 2 ], [ 3, 4 ] ] ] ] ]\n*/\nfunction prependSingletonDimensions( x, n, writable ) { // eslint-disable-line id-length\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Prepend singleton dimensions...\n\tfor ( i = 0; i < n; i++ ) {\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ 0 ] );\n\t}\n\t// Copy remaining dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default prependSingletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: third input ndarray strides sorted in loop order.\n* - **sw**: fourth input ndarray strides sorted in loop order.\n* - **su**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - third input array stride lengths\n* @param {IntegerArray} sw - fourth input array stride lengths\n* @param {IntegerArray} su - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, 4, 12 ]; // column-major\n* var sw = [ 1, -2, 6 ]; // column-major\n* var su = [ 1, -2, 6 ]; // column-major\n*\n* var o = quaternaryLoopOrder( sh, sx, sy, sz, sw, su );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 2, 3, 4 ]\n*\n* var ssx = o.sx;\n* // returns [ 12, 4, 1 ]\n*\n* var ssy = o.sy;\n* // returns [ 24, 8, 1 ]\n*\n* var ssz = o.sz;\n* // returns [ 1, 4, 12 ]\n*\n* var ssw = o.sw;\n* // returns [ 1, -2, 6 ]\n*\n* var ssu = o.su;\n* // returns [ 1, -2, 6 ]\n*/\nfunction quaternaryLoopOrder( sh, sx, sy, sz, sw, su ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz, sw, su ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ],\n\t\t'sw': tmp[ 4 ],\n\t\t'su': tmp[ 5 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default quaternaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - third input array data type\n* @param {*} dtypeW - fourth input array data type\n* @param {*} dtypeU - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = quaternaryBlockSize( 'float64', 'float64', 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction quaternaryBlockSize( dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU ] );\n}\n\n\n// EXPORTS //\n\nexport default quaternaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: third input ndarray strides sorted in loop order.\n* - **sw**: fourth input ndarray strides sorted in loop order.\n* - **su**: fifth input ndarray strides sorted in loop order.\n* - **sv**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - third input array stride lengths\n* @param {IntegerArray} sw - fourth input array stride lengths\n* @param {IntegerArray} su - fifth input array stride lengths\n* @param {IntegerArray} sv - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 12, 4, 1 ]; // row-major\n* var sw = [ 24, 8, 1 ]; // row-major\n* var su = [ 1, 4, 12 ]; // column-major\n* var sv = [ 1, -2, 6 ]; // column-major\n*\n* var o = quinaryLoopOrder( sh, sx, sy, sz, sw, su, sv );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 1, 4, 12 ]\n*\n* var ssw = o.sw;\n* // returns [ 1, 8, 24 ]\n*\n* var ssu = o.su;\n* // returns [ 12, 4, 1 ]\n*\n* var ssv = o.sv;\n* // returns [ 6, -2, 1 ]\n*/\nfunction quinaryLoopOrder( sh, sx, sy, sz, sw, su, sv ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz, sw, su, sv ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ],\n\t\t'sw': tmp[ 4 ],\n\t\t'su': tmp[ 5 ],\n\t\t'sv': tmp[ 6 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default quinaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - third input array data type\n* @param {*} dtypeW - fourth input array data type\n* @param {*} dtypeU - fifth input array data type\n* @param {*} dtypeV - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = quinaryBlockSize( 'float64', 'float64', 'float64', 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction quinaryBlockSize( dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU, dtypeV ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU, dtypeV ] );\n}\n\n\n// EXPORTS //\n\nexport default quinaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reinterpret from '@stdlib/strided-base-reinterpret-boolean';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Reinterprets a boolean ndarray as an unsigned 8-bit integer ndarray.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} unsigned 8-bit integer ndarray view\n*\n* @example\n* import falses from '@stdlib/ndarray-base-falses';\n*\n* var x = falses( 'bool', [ 2, 2 ], 'row-major' );\n* // returns [ [ false, false ], [ false, false ] ]\n*\n* var out = reinterpretBoolean( x );\n* // returns [ [ 0, 0 ], [ 0, 0 ] ]\n*/\nfunction reinterpretBoolean( x ) {\n\tvar strides;\n\tvar shape;\n\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\n\treturn ndarray( 'uint8', reinterpret( getData( x ), 0 ), shape, strides, getOffset( x ), getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport reinterpret128 from '@stdlib/ndarray-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/ndarray-base-reinterpret-complex64';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Reinterprets a complex-valued floating-point ndarray as a real-valued floating-point ndarray having the same precision.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @throws {TypeError} must provide a complex-valued floating-point ndarray\n* @returns {ndarray} real-valued floating-point ndarray view\n*\n* @example\n* import zeroTo from '@stdlib/blas-ext-zero-to';\n*\n* var x = zeroTo( [ 2, 2 ], {\n* 'dtype': 'complex128'\n* });\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex( x );\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* @example\n* import zeroTo from '@stdlib/blas-ext-zero-to';\n*\n* var x = zeroTo( [ 2, 2 ], {\n* 'dtype': 'complex64'\n* });\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex( x );\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*/\nfunction reinterpretComplex( x ) {\n\tvar dtype;\n\tvar buf;\n\n\tdtype = resolveStr( getDType( x ) );\n\tbuf = getData( x );\n\tif ( dtype === 'complex128' && isComplex128Array( buf ) ) {\n\t\treturn reinterpret128( x );\n\t}\n\tif ( dtype === 'complex64' && isComplex64Array( buf ) ) {\n\t\treturn reinterpret64( x );\n\t}\n\t// Note: intentionally throw here to catch the scenario in which we add, e.g., a Complex32Array and need to explicitly add support here...\n\tthrow new TypeError( format( 'invalid argument. Must provide a complex-valued floating-point ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretComplex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isReadOnly from '@stdlib/ndarray-base-assert-is-read-only';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Returns an array without singleton dimensions.\n*\n* ## Notes\n*\n* - If a provided ndarray does not have any singleton dimensions, the function returns the provided ndarray unchanged.\n* - If a provided ndarray does have singleton dimensions, the function returns a new ndarray view.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} squeezed array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ], {\n* 'ndmin': 5\n* });\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var y = removeSingletonDimensions( x );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 2 ]\n*\n* var v = y.get( 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0 );\n* // returns 3\n*\n* v = y.get( 1, 1 );\n* // returns 4\n*/\nfunction removeSingletonDimensions( x ) {\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Check for singleton dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( sh[ i ] !== 1 ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t}\n\tif ( shape.length === N ) {\n\t\t// We did not find any singleton dimensions...\n\t\treturn x;\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default removeSingletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 ndarray descriptor index offsets.\n*\n* ## Notes\n*\n* - This function mutates the provided descriptors.\n*\n* @param {ArrayLikeObject} descriptors - list of ndarray descriptors\n* @param {Collection} offsets - list of index offsets\n* @returns {ArrayLikeObject} input array\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import ndarraylike2descriptor from '@stdlib/ndarray-base-ndarraylike2descriptor';\n*\n* var obj = ndarraylike2descriptor({\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ),\n* 'shape': [ 1 ],\n* 'strides': [ 1 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* });\n*\n* var arr = [ obj ];\n* var out = setDescriptorOffsets( arr, [ 2 ] );\n* // returns [...]\n*\n* var bool = ( out === arr );\n* // returns true\n*\n* var offset = getOffset( arr[ 0 ] );\n* // returns 2\n*/\nfunction setDescriptorOffsets( descriptors, offsets ) {\n\tvar i;\n\tfor ( i = 0; i < offsets.length; i++ ) {\n\t\tdescriptors[ i ].offset = offsets[ i ];\n\t}\n\treturn descriptors;\n}\n\n\n// EXPORTS //\n\nexport default setDescriptorOffsets;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport sliceFrom from '@stdlib/ndarray-base-slice-from';\nimport sliceTo from '@stdlib/ndarray-base-slice-to';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array containing a truncated view of an input ndarray and a view of the first element(s) along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension along which to perform the operation\n* @param {boolean} writable - boolean indicating whether returned arrays should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {Array} a list of ndarrays\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = shift( x, 0, false );\n* // returns [ , ]\n*\n* arr = ndarray2array( y[ 0 ] );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* arr = ndarray2array( y[ 1 ] );\n* // returns [ [ 1.0, 2.0 ] ]\n*/\nfunction shift( x, dim, writable ) {\n\tvar v0;\n\tvar v1;\n\tvar N;\n\tvar s;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\tdim = normalizeIndex( dim, N-1 );\n\tif ( dim === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\ts = nulls( N );\n\ts[ dim ] = 1;\n\n\t// Create a truncated view:\n\tv0 = sliceFrom( x, s, false, writable );\n\n\t// Create a view of the first element(s):\n\tv1 = sliceTo( x, s, false, writable );\n\n\treturn [ v0, v1 ];\n}\n\n\n// EXPORTS //\n\nexport default shift;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the number of singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of singleton dimensions\n*\n* @example\n* var shape = [ 2, 1, 1 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 0\n*/\nfunction singletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nexport default singletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isMostlySafeCast from '@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast';\nimport broadcast from '@stdlib/ndarray-base-broadcast-array';\nimport assign from '@stdlib/ndarray-base-assign';\nimport slice from '@stdlib/ndarray-base-slice';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @param {ndarray} x - input array\n* @param {ndarray} y - output array\n* @param {MultiSlice} s - multi-slice object for the output array\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @throws {Error} input array must be broadcast compatible with an output array view\n* @throws {TypeError} input array cannot be safely cast to the output array data type\n* @returns {ndarray} output array\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndzeros from '@stdlib/ndarray-zeros';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s, false );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] ]\n*/\nfunction sliceAssign( x, y, s, strict ) {\n\tvar view;\n\tvar xdt;\n\tvar ydt;\n\n\txdt = getDType( x );\n\tydt = getDType( y );\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isMostlySafeCast( xdt, ydt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Input array values cannot be safely cast to the output array data type. Data types: [%s, %s].', xdt, ydt ) );\n\t}\n\t// Resolve a writable output array view:\n\tview = slice( y, s, strict, true );\n\n\t// Broadcast the input array:\n\tx = broadcast( x, getShape( view, true ) );\n\n\t// Set elements from `x` in `y`:\n\tassign( [ x, view ] );\n\n\t// Return the original output array:\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default sliceAssign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport slice from '@stdlib/ndarray-base-slice';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray when sliced along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {(Slice|integer)} s - slice object or an integer\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction sliceDimension( x, dim, s, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = nulls( N );\n\targs[ d ] = s;\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceDimension;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport slice from '@stdlib/ndarray-base-slice';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} start - starting index (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceDimensionFrom( x, dim, start, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = nulls( N );\n\targs[ d ] = new Slice( start, null );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceDimensionFrom;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport slice from '@stdlib/ndarray-base-slice';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} stop - ending index (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceDimensionTo( x, dim, stop, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = nulls( N );\n\targs[ d ] = new Slice( stop );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceDimensionTo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the stride along a specified dimension for a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {integer} dim - dimension index\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {integer} stride\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = stride( zeros( [ 3, 3, 3 ] ), 0 );\n* // returns 9\n*/\nfunction stride( x, dim ) {\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Return the array stride:\n\treturn getStrides( x, false )[ d ];\n}\n\n\n// EXPORTS //\n\nexport default stride;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts subscripts to a linear index.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a subscript exceeds array dimensions.\n* - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions.\n* - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension.\n*\n* - When provided fewer modes than dimensions, the function recycles modes using modulo arithmetic.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function treats subscripts as mapping to a linear index in an underlying data buffer for the array, thus returning a linear index from the perspective of that buffer. If an `offset` is equal to `0`, the function treats subscripts as mapping to a linear index in an array view, thus returning a linear index from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = [ 'throw' ];\n*\n* // From the perspective of a view...\n* var idx = sub2ind( shape, strides, 0, 0, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, 0, 0, 1, mode );\n* // returns 1\n*\n* idx = sub2ind( shape, strides, 0, 1, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, 0, 1, 1, mode );\n* // returns 3\n*\n* // From the perspective of an underlying buffer...\n* idx = sub2ind( shape, strides, offset, 0, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, offset, 0, 1, mode );\n* // returns 3\n*\n* idx = sub2ind( shape, strides, offset, 1, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, offset, 1, 1, mode );\n* // returns 1\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {...integer} i - subscripts\n* @param {StringArray} mode - specifies how to handle subscripts which exceed array dimensions\n* @throws {RangeError} must provide subscripts which do not exceed array dimensions\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 3, 1 ];\n* var offset = 0;\n* var mode = [ 'throw' ]\n*\n* var idx = sub2ind( shape, strides, offset, 1, 2, 2, mode );\n* // returns [ 'throw' ]\n*/\nfunction sub2ind() {\n\tvar strides;\n\tvar offset;\n\tvar nmodes;\n\tvar shape;\n\tvar ndims;\n\tvar modes;\n\tvar mode;\n\tvar idx;\n\tvar m;\n\tvar s;\n\tvar j;\n\tvar i;\n\n\tshape = arguments[ 0 ];\n\tstrides = arguments[ 1 ];\n\toffset = arguments[ 2 ];\n\tndims = shape.length;\n\tmodes = arguments[ 3+ndims ]; // last argument\n\tnmodes = modes.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tm = shape[ i ];\n\t\tj = arguments[ i+3 ];\n\t\tmode = modes[ i%nmodes ];\n\t\tif ( mode === 'clamp' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj = 0;\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj = m - 1;\n\t\t\t}\n\t\t} else if ( mode === 'wrap' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj += m; // slight optimization to avoid modulo arithmetic when |j| <= m\n\t\t\t\tif ( j < 0 ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t\tif ( j !== 0 ) {\n\t\t\t\t\t\tj += m;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj -= m; // slight optimization to avoid modulo arithmetic when m < j <= 2m\n\t\t\t\tif ( j >= m ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif ( mode === 'normalize' && j < 0 ) {\n\t\t\t\tj += m;\n\t\t\t}\n\t\t\tif ( j < 0 || j >= m ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.', i, j ) );\n\t\t\t}\n\t\t}\n\t\ts = strides[ i ];\n\n\t\t// Check if array view...\n\t\tif ( s < 0 && offset === 0 ) {\n\t\t\tidx -= j * s; // increments idx\n\t\t} else {\n\t\t\tidx += j * s; // may increment or decrement idx\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default sub2ind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop interchange.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 4 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 1 ];\n* var sy = [ 4, 4, 4, 1 ];\n* var sz = [ 4, 4, 4, 1 ];\n* var sw = [ 4, 4, 4, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternarynd( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5 ]\n*/\nfunction ternarynd( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar ordw;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\tordw = w.order;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, 'throw' );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, 'throw' );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, 'throw' );\n\t\tiw = vind2bind( sh, sw, ow, ordw, i, 'throw' );\n\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 4 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 1 ];\n* var sy = [ 4, 4, 4, 1 ];\n* var sz = [ 4, 4, 4, 1 ];\n* var sw = [ 4, 4, 4, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternarynd( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5 ]\n*/\nfunction ternarynd( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar ordw;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\tordw = w.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, 'throw' );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, 'throw' );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, 'throw' );\n\t\tiw = vind2bind( sh, sw, ow, ordw, i, 'throw' );\n\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a ternary function.\n*\n* @param {*} xdtype - first input ndarray data type\n* @param {*} ydtype - second input ndarray data type\n* @param {*} zdtype - third input ndarray data type\n* @param {(string|*)} policy - output ndarray data type policy\n* @throws {TypeError} fourth argument must be a recognized data type policy\n* @throws {Error} must provide data types amenable to type promotion\n* @returns {DataType} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'float32', 'float32', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( xdtype, ydtype, zdtype, policy ) {\n\treturn outputDataType( [ xdtype, ydtype, zdtype ], policy );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport assign from '@stdlib/ndarray-base-assign';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport numel from '@stdlib/ndarray-base-numel';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray created by repeating the elements of an input ndarray a specified number of times along each dimension.\n*\n* ## Notes\n*\n* - The number of repetitions must have at least as many elements as the number of input dimensions. When the number of repetitions exceeds the number of input dimensions, the input array is treated as if singleton dimensions were prepended.\n* - The function always copies data to a new ndarray.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeIntegerArray} reps - number of repetitions along each dimension\n* @throws {RangeError} second argument must have at least as many elements as the number of input dimensions\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = tile( x, [ 2, 2 ] );\n* // returns [ [ 1, 2, 1, 2 ], [ 3, 4, 3, 4 ], [ 1, 2, 1, 2 ], [ 3, 4, 3, 4 ] ]\n*/\nfunction tile( x, reps ) {\n\tvar dtype;\n\tvar order;\n\tvar shx;\n\tvar sho;\n\tvar shi;\n\tvar sto;\n\tvar buf;\n\tvar len;\n\tvar out;\n\tvar Ds;\n\tvar si;\n\tvar sx;\n\tvar v1;\n\tvar v2;\n\tvar M;\n\tvar N;\n\tvar o;\n\tvar s;\n\tvar t;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tshx = getShape( x, false );\n\tsx = getStrides( x, false );\n\tdtype = getDType( x );\n\tN = reps.length;\n\tM = shx.length;\n\n\tif ( N < M ) {\n\t\tthrow new RangeError( format( 'invalid argument. Second argument must have at least as many elements as the number of dimensions of the first argument. Number of input dimensions: `%u`. Number of repetitions: `%u`.', M, N ) );\n\t}\n\t// Compute the implicit left-padding amount for the input shape:\n\tDs = N - M;\n\n\to = strides2order( sx );\n\tif ( o === 0 || o === 3 ) {\n\t\t// Fallback to stated layout when unable to infer the underlying physical layout:\n\t\torder = getOrder( x );\n\t} else if ( o === 1 ) {\n\t\torder = 'row-major';\n\t} else {\n\t\torder = 'column-major';\n\t}\n\t// Compute an interleaved 2N-D shape and strides for \"broadcasting\" the input, along with the final N-D output shape. By inserting a repetition axis next to each original axis, a contiguous 2N-D buffer can be reinterpreted as the N-D tiled output without an additional copy...\n\tshi = zeros( 2*N );\n\tsi = zeros( 2*N );\n\tsho = zeros( N );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = i - Ds;\n\t\tk = 2 * i;\n\t\ts = ( j < 0 ) ? 1 : shx[ j ];\n\t\tt = ( j < 0 ) ? 0 : sx[ j ];\n\t\tsho[ i ] = reps[ i ] * s;\n\t\tif ( order === 'row-major' ) {\n\t\t\tshi[ k ] = reps[ i ];\n\t\t\tshi[ k+1 ] = s;\n\t\t\tsi[ k+1 ] = t;\n\t\t} else { // order === 'column-major'\n\t\t\tshi[ k ] = s;\n\t\t\tshi[ k+1 ] = reps[ i ];\n\t\t\tsi[ k ] = t;\n\t\t}\n\t}\n\tif ( N > 0 ) {\n\t\tlen = numel( sho );\n\t\tsto = shape2strides( sho, order );\n\t} else {\n\t\tlen = 1;\n\t\tsto = [ 0 ];\n\t}\n\t// Allocate an output array:\n\tbuf = buffer( dtype, len );\n\tout = new x.constructor( dtype, buf, sho, sto, 0, order );\n\n\t// Create a \"broadcasted\" input 2N-D view over the data buffers:\n\tv1 = ndarray( dtype, getData( x ), shi, si, getOffset( x ), order );\n\tv2 = ndarray( dtype, buf, shi, shape2strides( shi, order ), 0, order );\n\n\t// Copy the elements to the output array:\n\tassign( [ v1, v2 ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default tile;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport recurse from './recurse.js';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray buffer to a generic array (which may include nested arrays).\n*\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(EmptyArray|Array|Array)} array (which may include nested arrays)\n*\n* @example\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray2array( buffer, shape, strides, offset, order );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\nfunction ndarray2array( buffer, shape, strides, offset, order ) {\n\tvar i;\n\tif ( shape.length === 0 ) {\n\t\treturn [];\n\t}\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t}\n\treturn recurse( arraylike2object( buffer ), shape, strides, offset, order, 0 ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ndarray2array;\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\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements along the last dimension of an input ndarray is reversed.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toFlippedlr( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ]\n*/\nfunction toFlippedlr( x ) {\n\tvar out;\n\tvar xr;\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( ndims( x ) === 0 ) {\n\t\t// No last dimension to reverse, so just return a copy:\n\t\tassign( [ x, out ] );\n\t\treturn out;\n\t}\n\t// Create a reversed view of the input ndarray:\n\txr = reverseDimension( x, -1, false );\n\n\t// Assign the elements of the reversed input ndarray view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toFlippedlr;\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\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements along the second-to-last dimension of an input ndarray is reversed.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toFlippedud( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction toFlippedud( x ) {\n\tvar out;\n\tvar xr;\n\tvar N;\n\n\t// Get the number of dimensions:\n\tN = ndims( x );\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Check whether we were provided a zero-dimensional or a one-dimensional array...\n\tif ( N === 0 || N === 1 ) {\n\t\t// No second-to-last dimension to reverse, so just return a copy:\n\t\tassign( [ x, out ] );\n\t\treturn out;\n\t}\n\t// Create a view of the input ndarray with the second-to-last dimension reversed:\n\txr = reverseDimension( x, -2, false );\n\n\t// Assign the elements of the reversed view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toFlippedud;\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\nimport emptyLike from '@stdlib/array-empty-like';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\n\n\n// MAIN //\n\n/**\n* Normalizes a list of indices to the interval `[0,max]`.\n*\n* @param {IntegerArray} indices - indices\n* @param {NonNegativeInteger} max - maximum index\n* @returns {IntegerArray} normalized indices\n*\n* @example\n* var idx = toNormalizedIndices( [ -2, 5 ], 10 );\n* // returns [ 9, 5 ]\n*\n* idx = toNormalizedIndices( [ 15 ], 10 );\n* // returns [ -1 ]\n*/\nfunction toNormalizedIndices( indices, max ) {\n\tvar out;\n\tvar i;\n\n\tout = emptyLike( indices );\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout[ i ] = normalizeIndex( indices[ i ], max );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toNormalizedIndices;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dtype from '@stdlib/array-dtype';\nimport empty from '@stdlib/array-empty';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ], 'float32' );\n* // returns \n*/\nfunction emptyLike( x ) {\n\tvar dt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\treturn empty( x.length, dt );\n}\n\n\n// EXPORTS //\n\nexport default emptyLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverse from '@stdlib/ndarray-base-reverse';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements of an input ndarray is reversed along each dimension.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toReversed( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction toReversed( x ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a reversed view of the input ndarray:\n\txr = reverse( x, false );\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Assign the elements of the reversed input ndarray view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toReversed;\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\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements of an input ndarray along a specified dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to reverse\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toReversedDimension( x, 0 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction toReversedDimension( x, dim ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a reversed view of the input ndarray:\n\txr = reverseDimension( x, dim, false );\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Assign the elements of the reversed input ndarray view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toReversedDimension;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimensions from '@stdlib/ndarray-base-reverse-dimensions';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements of an input ndarray along specified dimensions is reversed.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - indices of dimensions to reverse\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toReversedDimensions( x, [ 0, 1 ] );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction toReversedDimensions( x, dims ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a reversed view of the input ndarray:\n\txr = reverseDimensions( x, dims, false );\n\n\t// Create an output ndarray having the same shape and data type as the reversed view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the reversed view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toReversedDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rot90 from '@stdlib/ndarray-base-rot90';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where an ndarray is rotated 90 degrees in a specified plane.\n*\n* ## Notes\n*\n* - If `k > 0`, the function rotates the plane from the first specified dimension toward the second specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane counterclockwise.\n* - If `k < 0`, the function rotates the plane from the second specified dimension toward the first specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane clockwise.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @param {integer} k - number of times to rotate by 90 degrees\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRot90( x, [ 0, 1 ], 1 );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction toRot90( x, dims, k ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rot90( x, dims, k, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRot90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rot180 from '@stdlib/ndarray-base-rot180';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where an ndarray is rotated 180 degrees in a specified plane.\n*\n* ## Notes\n*\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRot180( x, [ 0, 1 ] );\n* // returns [ [ 4, 3 ], [ 2, 1 ] ]\n*/\nfunction toRot180( x, dims ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rot180( x, dims, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRot180;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rotl90 from '@stdlib/ndarray-base-rotl90';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where a matrix (or a stack of matrices) is rotated 90 degrees counterclockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRotl90( x, 1 );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction toRotl90( x, k ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rotl90( x, k, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRotl90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rotr90 from '@stdlib/ndarray-base-rotr90';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where a matrix (or a stack of matrices) is rotated 90 degrees clockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRotr90( x, 1 );\n* // returns [ [ 3, 1 ], [ 4, 2 ] ]\n*/\nfunction toRotr90( x, k ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rotr90( x, k, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRotr90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport transpose from '@stdlib/ndarray-base-transpose';\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray containing the elements of an input ndarray but whose last two dimensions are transposed.\n*\n* @param {ndarray} x - input array\n* @throws {Error} must provide an array with two or more dimensions\n* @returns {ndarray} output ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]\n*\n* var out = toTransposed( x );\n* // returns [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ]\n*/\nfunction toTransposed( x ) {\n\tvar view;\n\tvar out;\n\n\t// Create transposed view of the input array:\n\tview = transpose( x, false );\n\n\t// Create an output array:\n\tout = emptyLike( view );\n\n\t// Copy elements from transposed view to output array:\n\tassign( [ view, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toTransposed;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport unflatten from '@stdlib/ndarray-base-unflatten';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray in which a specified dimension of an input ndarray is expanded over multiple dimensions.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension index\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @throws {RangeError} must provide a valid dimension index\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* // returns [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]\n*\n* var y = toUnflattened( x, 0, [ 2, 3 ] );\n* // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ] ]\n*/\nfunction toUnflattened( x, dim, sizes ) {\n\tvar out;\n\tvar xv;\n\n\t// Create an unflattened view of the input ndarray:\n\txv = unflatten( x, dim, sizes, false );\n\n\t// Create an output ndarray with the same data type as the input ndarray having the unflattened shape:\n\tout = emptyLike( xv );\n\n\t// Assign the elements of the unflattened input ndarray view to the output ndarray:\n\tassign( [ xv, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toUnflattened;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `true` values and having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = trues( 'bool', [ 2, 2 ], 'row-major' );\n* // returns [ [ true, true ], [ true, true ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'bool'\n*/\nfunction trues( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), true );\n}\n\n\n// EXPORTS //\n\nexport default trues;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `true` values and having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import empty from '@stdlib/ndarray-empty';\n*\n* var x = empty( [ 2, 2 ], {\n* 'dtype': 'bool'\n* });\n* // returns \n*\n* var y = truesLike( x );\n* // returns [ [ true, true ], [ true, true ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'bool'\n*/\nfunction truesLike( x ) {\n\treturn fill( emptyLike( x ), true );\n}\n\n\n// EXPORTS //\n\nexport default truesLike;\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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport UnaryStrided1dDispatchBy from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction on a provided ndarray according to a callback function.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {Function} function for performing a reduction on an ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var out = maxBy.assign( x, y, clbk );\n* // returns \n*\n* var v = out.get();\n* // returns 4.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies ) {\n\tvar f = new UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies );\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Performs a reduction a provided input ndarray according to a callback function.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n\t* @param {string} [options.dtype] - output ndarray data type\n\t* @param {Function} clbk - callback function\n\t* @param {*} [thisArg] - callback function execution context\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} callback argument must be a function\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Performs a reduction a provided input ndarray according to a callback and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {Function} clbk - callback function\n\t* @param {*} [thisArg] - callback function execution context\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} callback argument must be a function\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport UnaryStrided1dDispatch from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction on a provided ndarray.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {Function} function for performing a reduction on an ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = max.assign( x, y );\n* // returns \n*\n* var v = out.get();\n* // returns 2.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies ) {\n\tvar f = new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Performs a reduction a provided input ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n\t* @param {string} [options.dtype] - output ndarray data type\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Performs a reduction a provided input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport UnaryStrided1dDispatch from '@stdlib/ndarray-base-unary-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for applying a strided function a provided ndarray.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided functions which are specific to specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\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 an input ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} function for applying a strided function to an ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = cumax( x );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0, 0.0, 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var out = cumax.assign( x, y );\n* // returns \n*\n* var arr = ndarray2array( out );\n* // returns [ -1.0, 2.0, 2.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies, options ) {\n\tvar f;\n\tif ( arguments.length > 4 ) {\n\t\tf = new UnaryStrided1dDispatch( table, idtypes, odtypes, policies, options ); // eslint-disable-line max-len\n\t} else {\n\t\tf = new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Applies a strided function to a provided input ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation\n\t* @param {string} [options.dtype] - output ndarray data type\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Applies a strided function to a provided input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport format from '@stdlib/string-format';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport numel from '@stdlib/ndarray-base-numel';\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having a specified shape and data type.\n*\n* @param {string} dtype - numeric data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\n*/\nfunction zeros( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default zeros;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*/\nfunction zerosLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dt, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dt ) );\n\t}\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\n}\n\n\n// EXPORTS //\n\nexport default zerosLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the number of elements in an ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = numel( zeros( [ 3, 3, 3 ] ) );\n* // returns 27\n*/\nfunction numel( x ) {\n\tvar ndims;\n\tvar sh;\n\tvar n;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects (e.g., vanilla arrays) can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.length;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims === 0 ) {\n\t\t// Note: for minimal \"ndarray-like objects\", this will erroneously return zero when `x` is a zero-dimensional ndarray. This is part of the rationale for having a `length` property on actual ndarrays. As we don't can't know whether a provided ndarray-like is actually zero-dimensional without knowing/inspecting implementation details, we return zero here...\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tn *= d;\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default numel;\n"],"names":["main","Object","defineProperty","isNumber","value","zeros","n","i","out","zeroPad","str","width","right","negative","pad","length","startsWithMinus","substr","lowercase","String","prototype","toLowerCase","uppercase","toUpperCase","formatInteger","token","base","specifier","arg","parseInt","isFinite","Error","toString","precision","padRight","sign","alternate","call","charAt","abs","Math","replace","RE_EXP_POS_DIGITS","RE_EXP_NEG_DIGITS","RE_ONLY_DIGITS","RE_DIGITS_BEFORE_EXP","RE_TRAILING_PERIOD_ZERO","RE_PERIOD_ZERO_EXP","RE_ZERO_BEFORE_EXP","formatDouble","f","digits","toExponential","toFixed","toPrecision","spaces","fromCharCode","isArray","Array","isnan","initialize","flags","mapping","formatInterpolate","tokens","hasPeriod","flag","num","pos","j","TypeError","padZeros","indexOf","arguments","maxWidth","parseFloat","substring","RE","parse","match","formatTokenize","content","prev","exec","slice","lastIndex","push","format","args","tokenize","interpolate","apply","objectProtoype","toStr","defineGetter","__defineGetter__","defineSetter","__defineSetter__","lookupGetter","__lookupGetter__","lookupSetter","__lookupSetter__","err","hasDefinePropertySupport","builtin","obj","prop","descriptor","hasValue","hasGet","hasSet","__proto__","get","set","defineProperty$1","setReadOnly","configurable","enumerable","writable","C64_BYTES_PER_ELEMENT","C128_BYTES_PER_ELEMENT","isComplexTypedArray","constructor","name","BYTES_PER_ELEMENT","isBooleanArray","iterationOrder","strides","cnt","setNonEnumerableReadOnly","minmaxViewBufferIndex","shape","offset","ndims","min","max","s","assign","TYPE","isAccessorArray","GETTERS","complex128","arr","idx","complex64","default","getter","dtype","SETTERS","setter","float64","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","numel","x","copy","len","sh","copyIndexed","isString","FLG","Symbol","hasToStringTagSupport","toStringTag","has","hasOwnProperty","hasOwnProp","property","Sym","toStrTag","nativeClass","hasToStringTag","v","isOwn","tag","valueOf","test","isPrimitive","isObject","isColumnMajorString","shape2strides","order","isColumnMajor","columnmajor","rowmajor","ROW_MAJOR","ord","st","main$g","Number","strides2offset","o","strides2order","column","row","s1","s2","COLUMN_MAJOR","data","ndarraylike2object","xbuf","bool","dt","getData","getShape","getDType","ref","getStrides","getOffset","getOrder","accessorProtocol","accessors","accessorGetter","accessorSetter","isComplex128Array","isComplex64Array","hasFloat64Array","Float64Array","hasFloat64ArraySupport","GlobalFloat64Array","NaN","ctor","Float64Array$1","reinterpret","buffer","byteOffset","hasFloat32Array","Float32Array","FLOAT64_PINF","POSITIVE_INFINITY","GlobalFloat32Array","PINF","hasFloat32ArraySupport","Float32Array$1","reinterpret128","reinterpret64","hasUint8Array","Uint8Array","UINT8_MAX","GlobalUint8Array","hasUint8ArraySupport","Uint8Array$1","stride2offset","N","stride","main$c","arrayfcn","predicate","isObjectLike","isBuffer","_isBuffer","reFunctionName","arrayfun","RE_FUNCTION_NAME","constructorName","REGEXP","ctor2dtypes","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Complex64Array","Complex128Array","BooleanArray","hasUint32Array","UINT32_MAX","GlobalUint32Array","hasUint32ArraySupport","Uint32Array$1","hasInt32Array","INT32_MAX","INT32_MIN","GlobalInt32Array","hasInt32ArraySupport","Int32Array$1","hasUint16Array","UINT16_MAX","GlobalUint16Array","hasUint16ArraySupport","Uint16Array$1","hasInt16Array","INT16_MAX","INT16_MIN","GlobalInt16Array","hasInt16ArraySupport","Int16Array$1","hasUint8ClampedArray","GlobalUint8ClampedArray","hasUint8ClampedArraySupport","Uint8ClampedArray$1","hasInt8Array","INT8_MAX","INT8_MIN","GlobalInt8Array","hasInt8ArraySupport","Int8Array$1","FLOAT64_NINF","NEGATIVE_INFINITY","floor","isInteger","NINF","isInt","isNonNegativeInteger","MAX_ARRAY_LENGTH","isArrayLikeObject","MAX_LENGTH","MAX_TYPED_ARRAY_LENGTH","isCollection","hasArrayBuffer","ArrayBuffer","isArrayBuffer","isPrimitiveArray","isObjectArray","isStringArray","isBoolean","Bool","Boolean","self","window","globalThis","getGlobal","codegen","Function","GlobalThis","Self","Win","root","nodeList","document","childNodes","typedarray","ctorName","type","isFunction","typeOf","Complex128","real","imag","this","setEnumerableReadOnly","re","im","fround","FLOAT32_VIEW","float64ToFloat32$1","Complex64","float64ToFloat32","isComplexLike","isEven","hasIteratorSymbolSupport","iterator","IteratorSymbol","setNonEnumerableReadOnlyAccessor","z","fromIterator","it","next","done","realf","imagf","HAS_ITERATOR_SYMBOL","isComplexArray","_length","_buffer","isComplexArrayConstructor","getComplex64","buf","nargs","fromArray","RangeError","byteLength","ITERATOR_SYMBOL","src","thisArg","clbk","tmp","flg","fromIteratorMap","target","start","copyWithin","iter","entries","end","fcn","searchElement","fromIndex","separator","sep","join","keys","outbuf","reducer","initialValue","acc","sbuf","outlen","compareFcn","sort","begin","locales","options","opts","loc","toLocaleString","values","index","getComplex128","isBooleanArrayConstructor","val","a","b","CTORS","DTYPES","NTYPES","ctor2dtype","arraylike2object","M","gscal","alpha","ix","m","xget","xset","ndarray","zeroTo","complex","take","indices","loopOrder","sx","y","avx","iy","jx","jy","vx","vy","ux","sort2ins","isPositiveInteger","indexed","isArguments","bool$f","detect","hasArgumentsClass","isNan","isEnumerableProperty","propertyIsEnumerable","hasStringEnumBug","isEnum","isArguments$1","isConstructorPrototype","w","hasAutomationEqualityBug","k","win","EXCLUDED_KEYS","check","HAS_BUILTIN","skipConstructor","skipPrototype","isFcn","p","HAS_ENUM_PROTO_BUG","HAS_NON_ENUM_PROPS_BUG","HAS_WINDOW","error","NON_ENUMERABLE","getProto","main$4","Obj","getPrototypeOf","proto","getProto$1","objectPrototype","isPlainObject","isPrototypeOf","key","ownProps","invert","allowDupes","duplicates","objectKeys","dtypeEnums","int64","uint64","float16","complex32","binary","notype","userdefined_type","hash","objectInverse","enum2str","bytesPerElement","defaults","BLOCK_SIZE_IN_BYTES","BLOCK_SIZE_IN_ELEMENTS","blockSize","dtypes","nb","nullaryBlockSize","dtypeX","vind2bind","mode","ind","MODE","ANY","dx0","S0","i0","dx1","S1","i1","dx2","S2","i2","dx3","S3","i3","dx4","S4","i4","dx5","S5","i5","dx6","S6","i6","dx7","S7","i7","dx8","S8","i8","dx9","S9","i9","ACCESSOR_ANY","COMPLEX_ANY","BLOCKED_ANY","bsize","ox1","s0","ox","j0","j1","ox2","j2","ox3","s3","j3","ox4","s4","j4","ox5","s5","j5","ox6","s6","j6","ox7","s7","j7","ox8","s8","j8","ox9","s9","j9","BLOCKED_ACCESSOR_ANY","BLOCKED_COMPLEX_ANY","MAX_DIMS","reverse","method","hasMethod","internal","filled","ceil","trunc","ind2sub","getSubscripts","isStructConstructorLike","alignment","byteLengthOf","byteOffsetOf","bufferOf","isStruct","viewOf","ENUM","str2enum","resolve","t","layout","TABLE","ntypes","dt1","dt2","SAFE_CASTS","generateFullTable","generateTable","safeCasts","isSafeCast","from","to","resolveStr","CASTS","casts","isMostlySafeCast","SAME_KIND_CASTS","sameKindCasts","isSameKindCast","isAllowedCast","casting","contains","factory","search","newval","RE_SUFFIX","dtypeStrings","kind","all","isDataType","isBooleanDataType","isBooleanIndexDataType","isBufferLengthCompatible","minmax","modes","MODES","none","equiv","safe","unsafe","isSingleSegmentCompatible","isComplexFloatingPointDataType","dtypeChars","DATA","isComplexFloatingPointDataTypeChar","isDataTypeString","hasProp","enum","dtypeDesc","bfloat16","float128","int128","int256","uint128","uint256","dtypeChar","dtypeAlignment","DataType","char","description","byteOrder","dtype2desc","dtype2char","resolveEnum","dtype2alignment","isDataTypeObject","isStructDataType","isEqualDataType","v1","v2","_alignment","_byteLength","_byteOrder","_char","_description","_enum","_value","_type","isFloatingPointDataType","enumerated","throw","clamp","wrap","normalize","enumeration","isIndexMode","policies","POLICIES","promoted","accumulation","output","source","isInputCastingPolicy","isIntegerDataType","isIntegerIndexDataType","isMaskIndexDataType","isNumericDataType","orders","ORDERS","LAYOUTS","isOrder","same","boolean","boolean_and_generic","signed_integer","signed_integer_and_generic","unsigned_integer","unsigned_integer_and_generic","integer","integer_and_generic","floating_point","floating_point_and_generic","real_floating_point","real_floating_point_and_generic","complex_floating_point","complex_floating_point_and_generic","real_and_generic","numeric","numeric_and_generic","integer_index","integer_index_and_generic","boolean_index","boolean_index_and_generic","mask_index","mask_index_and_generic","default_index","isOutputDataTypePolicy","getOwnPropertySymbols","propertySymbols","enumerableProperties","isEnumerable","hasObjectAssign","objectAssign","isReadOnly","isRealDataType","isRealFloatingPointDataType","isRowMajor","isRowMajorString","view","GlobalArrayBuffer","isView","hasArrayBufferSupport","ArrayBuffer$1","hasDataView","DataView","isDataView","GlobalDataView","getFloat64","setFloat64","hasDataViewSupport","DataView$1","PRIVATE_BUFFER","CTOR_NAME","setNonEnumerableReadWriteAccessor","setReadOnlyAccessor","setReadWriteAccessor","uint16view","DATA_VIEW_METHODS","ctors","IS_LITTLE_ENDIAN","table","DEFAULT_CTOR","CMPLX_TO_REAL","getComplex","DEFAULTS","HASH","DEFAULT_DTYPE","reinterpretBoolean","isStructType","getStructArray","getTypedArray","getBigInt","getBoolean","getStruct","isSignedIntegerDataType","Global","hasBigIntSupport","BigInt","isBigInt","isSymbol","constantFunction","hasBigInts","polyfill","isNegativeZero","FLOAT32_SMALLEST_SUBNORMAL","FLOAT32_MAX_SAFE_INTEGER","FLOAT32_MIN_SAFE_INTEGER","minFloatDataType","minDataType","boolean2number","bigint2number","setNumber","minSignedIntegerDataType","complexDType","castingMode","number2boolean","complex2boolean","setBoolean","bigint2boolean","BigInteger","setBigInt","boolean2bigint","gcopy","strideX","offsetX","strideY","offsetY","ybuf","oy","isStructInstance","gfill","xobj","yobj","xdata","ydata","yset","io","map","complex2number","views","dest","setStructArray","isComplexDataType","reinterpretComplex","setTypedArray","setComplex","setStruct","FIELD_PROPERTIES","isUnionType","fields","isUndefinedOrNull","gjoin","strided","isValidBoolean","ALIGNMENTS","MANDATORY_FIELD_NAMES","VALIDATORS","padding","hasProperties","JSON","stringify","normalizeUnion","dflg","normalizeField","resolveAlignment","resolveGetter","fieldIndex","names","setPadding","replacer","p1","layoutFormat","FORMATS","isFormat","Struct","fmt0","fmt1","fmt2","bfmt","ufmt","fmt","ib","c0","c1","c2","w1","linearFormat","foo","isFunctionNameSupported","TypedArray","Dummy","fcnName","hasHasInstanceSymbolSupport","hasInstance","HasInstanceSymbol","hasSupport","instanceOf","typeName","typedarray2json","NAMES","isTypedArray","FIELD_NAMES","BYTE_LENGTH","PARTITIONS","ALIGNMENT","ACCESSORS","FIELDS","o1","fieldNames","cache","byteOffsets","flatten","partitions","createPrototypeAccessors","struct2string","struct","toJSON","struct2json","structFactory","isUnsignedIntegerDataType","validateStruct","isScalarMostlySafeCompatible","validateBinary","isRealFloatingDataType","validateRealFloating","validateUnsignedInteger","validateSignedInteger","validateBoolean","validateComplexFloating","ns","hasEqualValuesIndexed","isAllowedDataTypeCast","isMostlySafeDataTypeCast","isSafeDataTypeCast","isSameKindDataTypeCast","T","fcns","r","sy","unaryBlockSize","dtypeY","ASSIGN","dy0","dy1","dy2","dy3","dy4","dy5","dy6","dy7","dy8","dy9","ACCESSOR_ASSIGN","BLOCKED_ASSIGN","oy1","oy2","oy3","oy4","oy5","oy6","oy7","oy8","oy9","BLOCKED_ACCESSOR_ASSIGN","COMPLEX_TO_REAL","boolean2uint8","complex2real","arrays","xmmv","ymmv","shx","shy","iox","ioy","d","ndarray2object","castReturn","complexCtors","ordx","ordy","accessorassignnd","assignnd","arraySlice","isColumnMajorContiguous","contiguous","isRowMajorContiguous","RE_CHARS","RegExp","isRegExp","rescape","LOW_MASK","TWO_32","BYTES","VIEW","float64ToInt64Bytes","hi","lo","setUint32","bytes","nbytes","_bytesPerElement","_dtype","_ndims","_offset","_order","_shape","_strides","_accessors","_iterationOrder","isContiguous","_flags","ROW_MAJOR_CONTIGUOUS","COLUMN_MAJOR_CONTIGUOUS","READONLY","__meta_dataview__","broadcastArray","dim","normalizeIndex","toUniqueNormalizedIndices","diagonal","dims","sr","sc","ro","co","L","readonly","copyFlags","iget","flgs","sm","_mode","_submode","setInt8","setInt16","setBigInt64","setInt32","COMPLEX_ASSIGN","BLOCKED_COMPLEX_ASSIGN","assignScalar","isCmplx","complexassignnd","isndarrayLike","isProtoOf","bbytes","sview","LAYOUT","StructArray","_byteOffset","isStructArray","Buffer","notImplemented","CACHE","allocUnsafe$1","allocUnsafe","size","fill","bufferCtors","broadcastScalar","index_mode","ones","DEFAULT_REAL","DEFAULT_CMPLX","DEFAULT_BOOL","ORDER","atleastnd","complexDataType","anyIsEntryIn","binaryLoopOrder","sz","binaryBlockSize","dtypeZ","BINARY","zbuf","dz0","iz","dz1","dz2","dz3","dz4","dz5","dz6","dz7","dz8","dz9","ACCESSOR_BINARY","yget","zset","BLOCKED_BINARY","oz1","oz","oz2","oz3","oz4","oz5","oz6","oz7","oz8","oz9","BLOCKED_ACCESSOR_BINARY","hasAccessors","promotionRules","dtype1","dtype2","PROMOTION_RULES","promoteDataTypes","DEFAULT_SIGNED_INTEGER_DTYPE","DEFAULT_UNSIGNED_INTEGER_DTYPE","DEFAULT_REAL_FLOATING_POINT_DTYPE","idtype1","idtype2","odtype","policy","DEFAULT_INDEX_DTYPE","DEFAULT_COMPLEX_FLOATING_POINT_DTYPE","POLICY_TABLE1","promotedPolicy","POLICY_TABLE2","resolveDefaultRealFloatingPoint","resolveDefaultComplexFloatingPoint","COMPLEX2FLOAT","FLOAT2COMPLEX","xdtype","ydtype","outputDataType","indicesComplement","take2","o2","DEFAULT_ORDER","ndarraylike2ndarray","gzeros","empty","emptyLike","dts","emptyArray","identity","broadcast","strategy","squeeze","workspace","incrementOffsets","offsets","inc","setViewOffsets","xo","oo","so","odata","oset","without","strategyX","strategyY","stridesX","stridesY","dv0","iv","dv1","sv","dv2","dv3","dv4","dv5","dv6","dv7","dv8","dv9","ov1","ov","takeIndexed","ov2","ov3","ov4","ov5","ov6","ov7","ov8","ov9","binaryReduceStrided1d","ldims","ordz","tmpx","tmpy","shc","shl","ioz","scx","scy","slx","sly","K","normalizeIndices","takeIndexed2","initializeViews","reshapeStrategy","accessorbinarynd","binarynd","isEmptyCollection","isArrayLike","arraylikefcn","reduce","isFunctionArray","dtypes2enums","dtypes2strings","spreadDimensions","isrm","S","toNormalizedIndices","isSortedAscending","isNonNegativeIntegerArray","isIntegerArray","validate","create","Ctor","createObject$1","clampIndex","wrapIndex","mp1","parent","iset","INDEX_MODE","submode","superCtor","createObject","inherit","getIndex","DTYPE","insertAt","everyBy","every","layouts","isLayout","gindexOfRow","A","strideA1","strideA2","offsetA","matches","da0","da1","ia","oa","abuf","aget","LDA","sa1","sa2","keepdims","BinaryStrided1dDispatch","idtypes","odtypes","types","_table","_idtypes","_odtypes","_policies","broadcastArrayExceptDimensions","dl","broadcastShapes","shapes","n1","n2","shz","xdt","ydt","zdt","binaryOutputDataType","binaryInputCastingDataType","baseEmpty","pop","Float16Array","Complex32Array","resolveString","COUNT","count","ACCESSOR_COUNT","COMPLEX_COUNT","BLOCKED_COUNT","BLOCKED_ACCESSOR_COUNT","BLOCKED_COMPLEX_COUNT","dtypes2signatures","nin","nout","EVERY","ACCESSOR_EVERY","COMPLEX_EVERY","BLOCKED_EVERY","BLOCKED_ACCESSOR_EVERY","BLOCKED_COMPLEX_EVERY","MAP","ACCESSOR_MAP","BLOCKED_MAP","BLOCKED_ACCESSOR_MAP","accessormapnd","mapnd","FIND","sentinelValue","ACCESSOR_FIND","flattenShape","depth","flattenShapeFrom","isNull","isUndefined","isValid","Slice","stop","step","_start","_stop","_step","isSlice","MultiSlice","proxy","_data","args2multislice","strict","code","int2slice","normalizeSlice","normalizeMultiSlice","sliceLength","x1","x2","sliceShape","sdims","nonreducedDimensions","sliceStart","rdims","slice2strides","nulls","reverseDimension","FOR_EACH","ACCESSOR_FOR_EACH","BLOCKED_FOR_EACH","BLOCKED_ACCESSOR_FOR_EACH","scalar2ndarray","INCLUDES","ACCESSOR_INCLUDES","COMPLEX_INCLUDES","BLOCKED_INCLUDES","BLOCKED_ACCESSOR_INCLUDES","BLOCKED_COMPLEX_INCLUDES","maybeBroadcastArray","COMPLEX128_NAN","nextCartesianIndex","NULLARY","ACCESSOR_NULLARY","BLOCKED_NULLARY","BLOCKED_ACCESSOR_NULLARY","copyToWorkspace","copyFromWorkspace","input","OPTS","strictTraversalOrder","nullarynd","nullaryStrided1d","nullary","mainFactory","NullaryStrided1dDispatch","_apply","odt","sliceFrom","sliceTo","reinterpretComplex128","reinterpretComplex64","reverseDimensions","rot90","sd0","sd1","d0","d1","rot180","rotr90","sn","rotl90","__array_meta_dataview__","serializeMetaData","somend","SOME","ACCESSOR_SOME","accessorsomend","COMPLEX_SOME","complexsomend","BLOCKED_SOME","BLOCKED_ACCESSOR_SOME","BLOCKED_COMPLEX_SOME","ternaryLoopOrder","sw","ternaryBlockSize","dtypeW","TERNARY","wbuf","dx","dy","dz","dw","iw","dw0","dw1","dw2","dw3","dw4","dw5","dw6","dw7","dw8","dw9","ACCESSOR_TERNARY","zget","wset","BLOCKED_TERNARY","ow1","ow","ow2","ow3","ow4","ow5","ow6","ow7","ow8","ow9","BLOCKED_ACCESSOR_TERNARY","recurse","item","transpose","unflattenShape","sizes","unflatten","UNARY","ACCESSOR_UNARY","BLOCKED_UNARY","BLOCKED_ACCESSOR_UNARY","initial","isTypedArrayLike","MAX","COMPLEX64","COMPLEX128","BOOLEAN","idtype","unaryReduceStrided1d","sl","accessorunarynd","unarynd","put","vo","maxIndex","idata","vdata","vget","lidx","cdims","cidx","aidx","ibuf","hasOpts","unaryReduceStrided1dBy","ctx","cb","sub","UnaryStrided1dDispatch","unaryOutputDataType","unaryInputCastingDataType","ndarrayAssign","UnaryStrided1dDispatchBy","unaryReduceSubarray","unaryReduceSubarrayBy","unaryStrided1d","unary","getValue","_i","setValue","accessoranynd","complexanynd","anynd","assert","zmmv","binaryReduceStrided1dDispatch","azeros","bufferDataType","ch","accessorcountnd","complexcountnd","countnd","dtypeEnum2Str","createTable","dtypeResolveEnum","dtypeResolveStr","dtypeStr2Enum","accessoreverynd","complexeverynd","everynd","accessorfindnd","findnd","accessorForEachnd","forEachnd","accessorincludesnd","complexincludesnd","includesnd","meta","CNAN","accessornullarynd","nullaryLoopOrder","nullaryStrided1dDispatch","outputPolicyEnum2Str","outputPolicyStr2Enum","su","dtypeU","dtypeV","descriptors","nmodes","wmmv","shw","iow","ordw","accessorternarynd","ternarynd","zdtype","reps","sho","shi","sto","Ds","si","xr","xv","addon","fallback","dataX","dataY","viewX","viewY","serialize","unaryLoopOrder","unaryReduceStrided1dAssignStruct","unaryReduceStrided1dDispatch","unaryReduceStrided1dDispatchBy","unaryStrided1dDispatch","labels","list","Datum"],"mappings":"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+F,EACNlF,IAAMqe,CACN,CACDlf,IAAMkG,EACNrF,IAAMse,CACN,CACDnf,IAAMqG,EACNxF,IAAMue,CACN,CACDpf,IAAMwG,EACN3F,IAAMwe,CACN,CACDrf,IAAM2G,EACN9F,IAAMye,CACN,CACDtf,IAAM8G,EACNjG,IAAM0e,CACN,CACDvf,IAAMiH,EACNpG,IAAM2e,CACN,CAUX,ECrQA,SAA2BpwB,EAAGuR,GAC7B,IAAI+G,EACAxV,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7wB,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACA3I,GACAke,GACA/W,GACAiQ,GACA9X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA8BJ,IAxBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GAGPlX,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,GAAG,GACTse,EAAMJ,GAAG,GAGTzyB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAMuU,EAAE9N,UAAU,GAGZyW,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM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AAK,EAAGA,GAAKiC,GAAIjC,KACtBwhB,EAAME,IAAOzpB,EAAK1L,EAAM8N,IAAM6X,EAAMhX,KACpCb,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EAEPpnB,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,CACN,CACDtnB,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,CACN,CACDvnB,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,CACN,CACDxnB,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,CACN,CACDznB,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,CACN,CACD1nB,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,CACN,CACD3nB,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,CACN,CASV,ECrRA,SAA0Bx4B,EAAGuR,EAAG9E,EAAG+B,GAClC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA1hB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAgI,EACAE,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAp5B,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAxI,GACAke,GACAmI,GACAlf,GACAiQ,GACAsQ,GACApoB,GACAa,GACAwmB,GACA1hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GA8BJ,IAxBAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,UACzCqC,GACPmR,GAAKjP,GAAEiP,GACPke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EACNxF,IAAMue,EACNiI,IAAMI,CACN,CACDznB,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,CACN,CACD1nB,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,CACN,CACD3nB,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,CACN,CACD5nB,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,CACN,CAUX,EClTA,SAA2Bz4B,EAAGuR,EAAG9E,EAAG+B,GACnC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA1hB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAngB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACA+H,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAr5B,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAke,GACAmI,GACAlf,GACAiQ,GACAsQ,GACApoB,GACAa,GACAwmB,GACA1hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA8BJ,IAxBAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,UACzCqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GACPmI,GAAKt1B,GAAEs1B,GAGPrf,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvCuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OACP66B,GAAKvsB,EAAEtO,OAGP2E,EA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CACN,CACDvnB,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,CACN,CACDxnB,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,CACN,CACDznB,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,CACN,CACD1nB,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,CACN,CACD3nB,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,CACN,CASV,EC7RA,SAA0Bx4B,EAAGuR,EAAG9E,EAAG+B,GAClC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACAjnB,EACA8nB,EACAC,EACAxiB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAgI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAp5B,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAxI,GACAke,GACAmI,GACAlf,GACAiQ,GACAsQ,GACApoB,GACAa,GACAwmB,GACA1hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GAmCJ,IA7BAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,UACzCqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GACPmI,GAAKt1B,GAAEs1B,GAGPrf,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvCuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OACP66B,GAAKvsB,EAAEtO,OAGP2E,EAAO9C,EAAE4C,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N,CACD1nB,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,CACN,CACD3nB,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,CACN,CACD5nB,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,CACN,CAUX,EC1TA,SAA2Bz4B,EAAGuR,EAAG9E,EAAG+B,GACnC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACAjnB,EACA8nB,EACAC,EACAxiB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAngB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwW,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACA+H,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAr5B,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAke,GACAmI,GACAlf,GACAiQ,GACAsQ,GACApoB,GACAa,GACAwmB,GACA1hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GAmCJ,IA7BAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,UACzCqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GACPmI,GAAKt1B,GAAEs1B,GAGPrf,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvCuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OACP66B,GAAKvsB,EAAEtO,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KAGTyT,EAAM/E,GAAG,GACTse,EAAMJ,GAAG,GACTwI,EAAML,GAAG,GAGT7mB,EAAO9Q,EAAEyD,UAAU,GACnBm1B,EAAOrnB,EAAE9N,UAAU,GACnBo1B,EAAOpsB,EAAEhJ,UAAU,GAGbyW,GAAK/Z,GAAG,GAAI+Z,GAAK,GAWtB,IAVKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,GAAOyB,GAAG5I,GAAG,GACnB0f,GAAMtI,GAAOxO,GAAGsV,GAAG,GACnBgK,GAAMR,GAAO9e,GAAGyd,GAAG,GACb5d,GAAK5Z,GAAG,GAAI4Z,GAAK,GActB,IAbKA,GAAKzB,GACTwB,GAAKC,GACLA,GAAK,IAELD,GAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,GAAG,GAAOwI,GAAGxI,GAAG,GACtB+e,EAAMb,GAAG,GAAO1V,GAAG0V,GAAG,GACtBkJ,EAAMf,GAAG,GAAO7d,GAAG6d,GAAG,GACtB9d,EAAMG,EAAQD,GAAGzI,GAAG,GACpByf,GAAMC,GAAQjX,GAAGyV,GAAG,GACpB+J,GAAMC,GAAQzf,GAAG4d,GAAG,GACd/d,GAAKzZ,GAAG,GAAIyZ,GAAK,GActB,IAbKA,GAAKtB,GACTqB,GAAKC,GACLA,GAAK,IAELD,GAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,GAAGrI,GAAG,GACtB8e,EAAMZ,GAAG,GAAO7V,GAAG6V,GAAG,GACtBiJ,EAAMd,GAAG,GAAOhe,GAAGge,GAAG,GACtBje,EAAMG,EAAQD,GAAGtI,GAAG,GACpBwf,GAAMC,GAAQnX,GAAG4V,GAAG,GACpB8J,GAAMC,GAAQ3f,GAAG+d,GAAG,GACdle,GAAKtZ,GAAG,GAAIsZ,GAAK,GActB,IAbKA,GAAKnB,GACTkB,GAAKC,GACLA,GAAK,IAELD,GAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,GAAGlI,GAAG,GACtB6e,EAAMX,GAAG,GAAOhW,GAAGgW,GAAG,GACtBgJ,EAAMb,GAAG,GAAOne,GAAGme,GAAG,GACtBpe,EAAMG,EAAQD,GAAGnI,GAAG,GACpBuf,GAAMC,GAAQrX,GAAG+V,GAAG,GACpB6J,GAAMC,GAAQ7f,GAAGke,GAAG,GACdre,GAAKnZ,GAAG,GAAImZ,GAAK,GActB,IAbKA,GAAKhB,GACTe,GAAKC,GACLA,GAAK,IAELD,GAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,GAAG/H,GAAG,GACtB4e,EAAMV,GAAG,GAAOnW,GAAGmW,GAAG,GACtB+I,EAAMZ,GAAG,GAAOte,GAAGse,GAAG,GACtBve,EAAMG,EAAQD,GAAGhI,GAAG,GACpBsf,GAAMC,GAAQvX,GAAGkW,GAAG,GACpB4J,GAAMC,GAAQ/f,GAAGqe,GAAG,GACdxe,GAAKhZ,GAAG,GAAIgZ,GAAK,GActB,IAbKA,GAAKb,GACTY,GAAKC,GACLA,GAAK,IAELD,GAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,GAAG5H,GAAG,GACtB2e,EAAMT,GAAG,GAAOtW,GAAGsW,GAAG,GACtB8I,EAAMX,GAAG,GAAOze,GAAGye,GAAG,GACtB1e,EAAMG,EAAQD,GAAG7H,GAAG,GACpBqf,EAAMC,GAAQzX,GAAGqW,GAAG,GACpB2J,GAAMC,GAAQjgB,GAAGwe,GAAG,GACd3e,GAAK7Y,GAAG,GAAI6Y,GAAK,GActB,IAbKA,GAAKV,GACTS,GAAKC,GACLA,GAAK,IAELD,GAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,GAAGzH,GAAG,GACtB0e,EAAMR,GAAG,GAAOzW,GAAGyW,GAAG,GACtB6I,EAAMV,GAAG,GAAO5e,GAAG4e,GAAG,GACtB7e,EAAMG,EAAQD,GAAG1H,GAAG,GACpBof,EAAMC,EAAQ3X,GAAGwW,GAAG,GACpB0J,GAAMC,GAAQngB,GAAG2e,GAAG,GACd9e,GAAK1Y,GAAG,GAAI0Y,GAAK,GActB,IAbKA,GAAKP,GACT5V,GAAKmW,GACLA,GAAK,IAELnW,GAAK4V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO5O,GAAG4O,GAAG,GACtBye,EAAMP,GAAG,GAAO9sB,GAAG8sB,GAAG,GACtB4I,EAAMT,GAAG,GAAOj1B,GAAGi1B,GAAG,GACtB/e,EAAME,EAAQD,GAAGvH,GAAG,GACpBmf,EAAMC,EAAQ7X,GAAG2W,GAAG,GACpByJ,GAAMC,GAAQrgB,GAAG8e,GAAG,GACdhf,GAAKxY,GAAG,GAAIwY,GAAK,GActB,IAbKA,GAAKL,GACT7V,GAAKkW,GACLA,GAAK,IAELlW,GAAK6V,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAO7O,GAAG6O,GAAG,GACtBwe,EAAMN,GAAG,GAAO/sB,GAAG+sB,GAAG,GACtB2I,EAAMR,GAAG,GAAOl1B,GAAGk1B,GAAG,GACtBpf,EAAMK,EAAQD,GAAGrH,GAAG,GACpBkf,EAAMC,EAAQ9X,GAAG6W,GAAG,GACpBuJ,GAAME,GAAQtgB,GAAGgf,GAAG,GACdjf,GAAKvY,GAAG,GAAIuY,GAAK,GAmBtB,IAlBKA,GAAKJ,GACTE,GAAKE,GACLA,GAAK,IAELF,GAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,GAAG,GACnBG,GAAK+e,EAAQ9X,GAAG8W,GAAG,GACnByI,GAAKc,GAAQrgB,GAAGif,GAAG,GAGnBnhB,EAAMlF,GAAG,GAAOkH,GAAGlH,GAAG,GACtBue,EAAML,GAAG,GAAOhX,GAAGgX,GAAG,GACtB0I,EAAMP,GAAG,GAAOnf,GAAGmf,GAAG,GAGhBzf,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKnU,GAAImU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKjU,GAAIiU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtBsiB,EAAMd,EAAME,GAAIzpB,EAAKsC,EAAMhO,EAAM8N,IAAMgoB,EAAMnQ,EAAMhX,MACnDb,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EAEPpnB,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,CACN,CACDtnB,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,CACN,CACDvnB,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,CACN,CACDxnB,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,CACN,CACDznB,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,CACN,CACD1nB,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,CACN,CACD3nB,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,CACN,CACD5nB,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,CACN,CACD7nB,IAAMoH,EACNvG,IAAM4e,EACN4H,IAAMS,CACN,CAWZ,GxCvVIre,GAAWyd,GAAOhhC,OAAS,EAc/B,SAAS4iC,GAAc15B,EAAGuR,EAAG9E,GAC5B,OAAOgrB,GAAc,CAAEz3B,EAAGuR,EAAG9E,GAAK,oBAAoB,EACvD,2iKyCjDA,SAASktB,GAAgBC,EAAQC,GAChC,IAAIx3B,EACJ,OAA0B,IAArB7H,UAAU1D,OAvDhB,WACC,IAAI8e,EACAgG,EACArlB,EACAwX,EACA8N,EACAC,EACAzZ,EACAjI,EACA9D,EAKJ,IAHAC,EAAM,CAAA,EAENqlB,GADAhG,EAASjB,GAAYmlB,KACLhjC,OACVR,EAAI,EAAGA,EAAIslB,EAAQtlB,IAAM,CAI9B,IAHAulB,EAAMjG,EAAQtf,GACd+L,EAAIy3B,GAAiBje,GACrB9N,EAAM,CAAA,EACA3T,EAAI,EAAGA,EAAIwhB,EAAQxhB,IAExB2T,EADA+N,EAAMlG,EAAQxb,IACDiI,EAAGyZ,GAEjBvlB,EAAKslB,GAAQ9N,CACb,CACD,OAAOxX,CACR,CA+BSylB,IAER4d,EAASpe,GAASoe,GACbh5B,GAAYk5B,GAAiBF,IAG5Bh5B,GAFLyB,EAAIy3B,GAAiBF,GACrBC,EAASre,GAASqe,IAEVx3B,EAAGw3B,GAGL,KACR,CC9DA,SAASE,GAAkBnkB,GAC1B,IAAI5S,EAEA1M,EAGJ,GAAW,IADPsf,EAAO9e,OAEV,OAAO,KAGR,IADAkM,EAAK4S,EAAQ,GACPtf,EAAI,EAAGA,EAAIsf,EAAO9e,OAAQR,IAE/B,GAAY,QADZ0M,EAAK22B,GAAgB32B,EAAI4S,EAAQtf,OACL,IAAR0M,EACnB,OAAO,KAGT,OAAOA,CACR,CCtBA,IAAIg3B,GAA+BxkB,GAASzY,IAAK,yBAC7Ck9B,GAAiCzkB,GAASzY,IAAK,2BAC/Cm9B,GAAoC1kB,GAASzY,IAAK,8BAoBtD,SAASye,GAAS2e,EAASC,EAASC,EAAQC,GAC3C,IAAIt3B,EACJ,GAAgB,SAAXs3B,EAEJ,OAAOH,EAER,GAAgB,WAAXG,EACJ,OAAOD,EAER,GAAgB,aAAXC,EAAwB,CAE5B,GAAY,QADZt3B,EAAK+2B,GAAkB,CAAEI,EAASC,EAASC,KAE1C,MAAM,IAAIviC,MAAOwD,EAAQ,sHAAuHuT,GAAM,CAAEsrB,EAASC,GAAW,MAAQC,IAErL,OAAOr3B,CACP,CACD,GAAgB,iBAAXs3B,EAIJ,OAAK9Z,GAAyB2Z,IAAyB,YAAZA,EACnCA,EAGH9L,GAA2B8L,GACxBJ,GAAkB,CAAEI,EAASF,KAEhCzT,GAAyB2T,GACtBJ,GAAkB,CAAEI,EAASH,KAG9BE,GAGR,GAAK3c,GAAY+c,GAChB,OAAOA,EAER,MAAM,IAAIjgC,UAAWiB,EAAQ,qFAAsFg/B,GACpH,CClDA,IAAItU,GAAgBxQ,GAASzY,IAAK,kBAC9Bw9B,GAAsB/kB,GAASzY,IAAK,wBACpCi9B,GAA+BxkB,GAASzY,IAAK,yBAC7Ck9B,GAAiCzkB,GAASzY,IAAK,2BAC/Cm9B,GAAoC1kB,GAASzY,IAAK,8BAClDy9B,GAAuChlB,GAASzY,IAAK,iCAGrD09B,GAAgB,CACnBz7B,QAmKD,WAEC,OAAOgnB,EACR,EArKCzC,cA6KD,WAEC,OAAOgX,EACR,EA/KCxY,KAyLD,SAAqBnM,GACpB,IAAI5S,EACA1M,EAGJ,IADA0M,EAAK4S,EAAQ,GACPtf,EAAI,EAAGA,EAAIsf,EAAO9e,OAAQR,IAE/B,GAAKsf,EAAQtf,KAAQ0M,EACpB,MAAM,IAAIlL,MAAOwD,EAAQ,+JAAgKuT,GAAM+G,EAAQ,QAGzM,OAAO5S,CACR,EApMCke,SAAYwZ,GACZvZ,aA6ND,SAA6BvL,GAC5B,IAAI5S,EAAK03B,GAAgB9kB,GAGzB,GAAK4K,GAAyBxd,IAAe,YAAPA,EACrC,OAAOA,EAGR,GAAKqrB,GAA2BrrB,GAC/B,OAAO+2B,GAAkB,CAAE/2B,EAAIi3B,KAEhC,GAAKzT,GAAyBxjB,GAC7B,OAAO+2B,GAAkB,CAAE/2B,EAAIg3B,KAGhC,OAAOE,EACR,GAzOIS,GAAgB,CAEnBnY,eAAkB,CACjBhC,GACAhL,GAASzY,IAAK,0BAEf0lB,2BAA8B,CAC7B7B,GAAMJ,IACNhL,GAASzY,IAAK,0BAEf2lB,oBAAuB,CACtBuB,GACA2W,IAEDjY,gCAAmC,CAClC/B,GAAMqD,IACN2W,IAEDhY,uBAA0B,CACzBzE,GACA0c,IAEDhY,mCAAsC,CACrCjC,GAAMzC,IACN0c,IAIDvY,QAAW,CACVf,GACA/L,GAASzY,IAAK,mBAEfwlB,oBAAuB,CACtB3B,GAAMW,IACN/L,GAASzY,IAAK,mBAEfmlB,eAAkB,CACjBsE,GACAwT,IAED7X,2BAA8B,CAC7BvB,GAAM4F,IACNwT,IAED5X,iBAAoB,CACnBiM,GACA4L,IAED5X,6BAAgC,CAC/BzB,GAAMyN,IACN4L,IAIDzuB,KAAQ,CACPwY,GACAxO,GAASzY,IAAK,gBAEf+lB,iBAAoB,CACnBlC,GAAMoD,IACNxO,GAASzY,IAAK,gBAIfgmB,QAAW,CACVrB,GACAlM,GAASzY,IAAK,mBAEfimB,oBAAuB,CACtBpC,GAAMc,IACNlM,GAASzY,IAAK,mBAIfilB,QAAW,CACVxE,GACAhI,GAASzY,IAAK,mBAEfklB,oBAAuB,CACtBrB,GAAMpD,IACNhI,GAASzY,IAAK,mBAIfkmB,cAAiB,CAChBzB,GACAhM,GAASzY,IAAK,yBAEfmmB,0BAA6B,CAC5BtC,GAAMY,IACNhM,GAASzY,IAAK,yBAEfomB,cAAiB,CAChB1F,GACAjI,GAASzY,IAAK,yBAEfqmB,0BAA6B,CAC5BxC,GAAMnD,IACNjI,GAASzY,IAAK,yBAEfsmB,WAAc,CACb5B,GACAjM,GAASzY,IAAK,sBAEfumB,uBAA0B,CACzB1C,GAAMa,IACNjM,GAASzY,IAAK,uBAKZ+9B,GAAgB,CACnBl8B,WAAc,UACdG,UAAa,UACbiW,UAAa,WAIV+lB,GAAgB,CACnB17B,QAAW,aACXC,QAAW,YACXyV,QAAW,aAaZ,SAAS6L,GAAMpS,GACd,OASA,SAAkBrY,GACjB,MAAmB,YAAVA,GAAyBqY,EAAKrY,EACvC,CACF,CAsDA,SAASukC,GAAgB9kB,GACxB,IAAI5S,EAAK+2B,GAAkBnkB,GAC3B,GAAY,OAAP5S,EACJ,MAAM,IAAIlL,MAAOwD,EAAQ,wJAAyJuT,GAAM+G,EAAQ,QAEjM,OAAO5S,CACR,CAmCA,SAAS43B,GAAiC17B,GACzC,OAAO47B,GAAe57B,IAAWg7B,EAClC,CASA,SAASW,GAAoC37B,GAC5C,OAAO67B,GAAe77B,IAAWs7B,EAClC,CAkBA,SAAShf,GAAS5F,EAAQ0kB,GACzB,IAAIt3B,EACAuQ,EAGJ,GAAKgK,GAAY+c,GAChB,OAAOA,EAIR,QAAW,KADX/mB,EAAIknB,GAAeH,IAElB,OAAO/mB,EAAGqC,GAOX,GAJA5S,EAAK03B,GAAgB9kB,QAIV,KADXrC,EAAIonB,GAAeL,IAGlB,OAAK/mB,EAAG,GAAKvQ,GAELA,EAGH3C,GAAUkT,EAAG,IACVA,EAAG,GAEJA,EAAG,GAAKvQ,GAEhB,MAAM,IAAI3I,UAAWiB,EAAQ,uFAAwFg/B,GACtH,CCtUA,SAAS9e,GAASwf,EAAQC,EAAQX,GACjC,OAAOY,GAAgB,CAAEF,EAAQC,GAAUX,EAC5C,CCVA,SAASa,GAAmB11B,EAAG2L,GAC9B,IAAIgE,EACA7e,EACAD,EAGJ,IADA8e,EAAO,CAAA,EACD9e,EAAI,EAAGA,EAAI8a,EAAQta,OAAQR,IAChC8e,EAAMhE,EAAS9a,KAAQ,EAGxB,IADAC,EAAM,GACAD,EAAI,EAAGA,EAAImP,EAAGnP,SACA,IAAd8e,EAAM9e,IACVC,EAAI8E,KAAM/E,GAGZ,OAAOC,CACR,CCXA,SAAS6kC,GAAOp7B,EAAGuR,EAAGH,GACrB,IAAIqc,EACA4N,EACA/kC,EAIJ,IAFAm3B,EAAK,GACL4N,EAAK,GACC/kC,EAAI,EAAGA,EAAI8a,EAAQta,OAAQR,IAChCm3B,EAAGpyB,KAAM2E,EAAGoR,EAAS9a,KACrB+kC,EAAGhgC,KAAMkW,EAAGH,EAAS9a,KAEtB,MAAO,CAAEm3B,EAAI4N,EACd,CCsBA,SAAS9d,GAAYrc,GACpB,OACCqd,GAAkBrd,MC1BO/K,ED2BP+K,aCzBDie,IAEC,iBAAVhpB,GACG,OAAVA,GACAgT,GAAWhT,EAAM6kB,YACjB7R,GAAWhT,EAAMuX,aACjBrN,GAAUlK,EAAMmpB,YAChBjf,GAAUlK,EAAMipB,OAChBjW,GAAWhT,EAAMsoB,OACjBD,GAASroB,EAAO,WDiBjBypB,GAAkB1e,GC5BpB,IAA2B/K,CD8B3B,CEpCA,SAAS+H,GAAO8B,GACf,IAAIzJ,EACA4J,EACAyxB,EACAt7B,EAGJ,GAAkB,iBAAN0J,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,IAAM2J,GADNxJ,EAAKH,EAAE9B,OAEN,MAAM,IAAI7D,UAAWiB,EAAQ,0DAA2D0E,IAIzF,IADAzJ,EAAM,GACAD,EAAI,EAAGA,EAAI6J,EAAGrJ,OAAQR,IAAM,CAEjC,IAAMgT,GADNsoB,EAAIzxB,EAAI7J,IAEP,MAAM,IAAI+D,UAAWiB,EAAQ,0DAA2D0E,IAEzFzJ,EAAI8E,KAAMu2B,EACV,CACD,OAAOr7B,CACR,CCtBA,SAASuH,GAASkC,GACjB,IAAIzJ,EACAyL,EACA7B,EACA8B,EACA2vB,EACAt7B,EAGJ,GAAkB,iBAAN0J,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,IAAM2J,GADN1H,EAAKjC,EAAElC,SACoB,CAG1B,IAAM6L,GADNxJ,EAAKH,EAAE9B,OAEN,MAAM,IAAI7D,UAAWiB,EAAQ,0DAA2D0E,IAEzF,OAAmB,IAAdG,EAAGrJ,OACA,CAAE,IAEVkL,EAAMhC,EAAE2B,MACFmgB,GAAS9f,KACdA,EAAM,aAEAN,GAAevB,EAAI6B,GAC1B,CAGD,IADAzL,EAAM,GACAD,EAAI,EAAGA,EAAI2L,EAAGnL,OAAQR,IAAM,CAEjC,IAAM6S,GADNyoB,EAAI3vB,EAAI3L,IAEP,MAAM,IAAI+D,UAAWiB,EAAQ,0DAA2D0E,IAEzFzJ,EAAI8E,KAAMu2B,EACV,CACD,OAAOr7B,CACR,CCxCA,SAAS6H,GAAO4B,GACf,IAAIG,EACA9J,EAGJ,GAAkB,iBAAN2J,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,GAAKsJ,GADLjT,EAAI2J,EAAE5B,OAEL,OAAO/H,EAGR,IAAMsT,GADNxJ,EAAKH,EAAE9B,OAEN,MAAM,IAAI7D,UAAWiB,EAAQ,0DAA2D0E,IAEzF,OAAOG,EAAGrJ,MACX,CC5BA,IAAIiL,GAAY,YACZY,GAAe,eCEnB,IAAI24B,GlEFI,CAEN1lB,OAAU,CACT5W,QAAW,UACX+jB,QAAW,UACXvX,KAAQ,UACRgX,eAAkB,UAClBE,oBAAuB,UACvBE,uBAA0B,aAC1BN,QAAW,QACXJ,eAAkB,QAClBE,iBAAoB,SACpBJ,QAAW,OACXlS,MAAS,QACTmT,cAAiB,QACjBE,cAAiB,OACjBE,WAAc,SAIf1hB,MAAS,YAGTmb,QAAW,OAGXma,WAAc,SkEChB,SAASsE,GAAqBv7B,GAC7B,OAAO,IAAIgR,GCfZ,SAAgBhR,GACf,IAAIgD,EAGJ,GAAkB,iBAANhD,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,GAAKud,GADLva,EAAKhD,EAAEd,OAEN,OAAO8D,EAGR,MAAM,IAAI3I,UAAWiB,EAAQ,uFAAwF0H,GACtH,CDEqBG,CAAUnD,GEf/B,SAAeA,GACd,IAAIzJ,EAGJ,GAAkB,iBAANyJ,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,GAAK2J,GADLpT,EAAMyJ,EAAE4C,MAEP,OAAOrM,EAGR,MAAM,IAAI8D,UAAWiB,EAAQ,0DAA2D0E,GACzF,CFEoCiD,CAASjD,GAAKkD,GAAUlD,GAAKqD,GAAYrD,GGjB7E,SAAiBA,GAChB,IAAIiC,EACA9B,EACA9J,EAGJ,GAAkB,iBAAN2J,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,GAAKsJ,GADLjT,EAAI2J,EAAE7B,QAEL,OAAO9H,EAGR,IAAMsT,GADNxJ,EAAKH,EAAE9B,OAEN,MAAM,IAAI7D,UAAWiB,EAAQ,0DAA2D0E,IAGzF,GADAiC,EAAKjC,EAAElC,QACY,IAAdqC,EAAGrJ,SAAiB6S,GAAc1H,GACtC,OAAO,EAGR,GAAKqH,GADLjT,EAAI+L,GAAgBjC,EAAI8B,IAEvB,OAAO5L,EAER,MAAM,IAAIgE,UAAWiB,EAAQ,0DAA2D0E,GACzF,CHTkFsD,CAAWtD,GDN7F,SAAgBA,GACf,IACIqC,EAGJ,GAAkB,iBAANrC,GAAwB,OAANA,EAC7B,MAAM,IAAI3F,UAAWiB,EAAQ,0DAA2D0E,IAGzF,OADAqC,EAAIrC,EAAE2B,MACDmgB,GAASzf,GACNA,EAKG,KADXA,EAAIC,GADCxE,GAASkC,MAEQ,IAANqC,EACRN,GAEG,IAANM,EACGM,GAGY,IAAfvE,GAAO4B,GACJ+B,GAGD,IACR,CCrBkGwB,CAAUvD,IAAOs7B,GACnH,CItBA,IAAI9V,GAAQ,CACXnmB,QAAW0E,GACXzE,QAAWmF,GACX3E,QAAWrG,MACX+F,MAAS+G,GACThH,MAASiH,GACT/G,KAAQgH,GACR9G,OAAU+G,GACVhH,OAAUiH,GACV/G,MAASuF,GACTtF,OAAU+G,GACV7H,UAAa8H,GACbjI,WAAckI,GACd/D,KAAQgE,ICrBT,IAAIif,GAAgBxQ,GAASzY,IAAK,kBAsBlC,SAAS3G,GAAOU,GACf,IAAIoI,EACAiF,EACJ,IAAMmF,GAAsBxS,GAC3B,MAAM,IAAIuD,UAAWiB,EAAQ,+EAAgFxE,IAO9G,GAAe,aAJdoI,EADI1E,UAAU1D,OAAS,EACf0D,UAAW,GAEXwrB,IAGR,OAAOwV,GAAQ1kC,GAGhB,GADAqN,EC1BD,SAAgBjF,GACf,OAAOwmB,GAAOxmB,IAAW,IAC1B,CDwBQsmB,CAAOtmB,GACA,OAATiF,EACJ,MAAM,IAAI9J,UAAWiB,EAAQ,iFAAkF4D,IAEhH,OAAO,IAAIiF,EAAMrN,EAClB,CE3BA,SAAS2kC,GAAO3kC,GACf,OAAK0D,UAAU1D,OAAS,EAChBV,GAAOU,EAAQ0D,UAAW,IAE3BpE,GAAOU,EACf,CCSA,SAAS4kC,GAAW17B,GACnB,IACIE,EACAoN,EACAtL,EACA25B,EACAx7B,EACA8B,EACAe,EAwBJ,OArBA24B,EAAMrf,GADNtZ,EAAKG,GAAUnD,IAGfG,EAAK+C,GAAUlD,GAAG,GAClBgC,EAAMuB,GAAUvD,GAERG,EAAGrJ,OACE,GACZoJ,EAAMH,GAAOI,GACb8B,EAAKP,GAAevB,EAAI6B,KAGxB9B,EAAM,EACN+B,EAAK,CAAE,IAGPqL,EADY,WAARquB,EACE/E,GAAa12B,GAEb07B,GAAY17B,EAAKy7B,GAIjB,IAAI37B,EAAEvC,YAAauF,EAAIsK,EAAKnN,EAAI8B,EAAIG,GAAgBjC,EAAI8B,GAAMD,EACtE,CCrDA,SAAS65B,GAAU77B,GAClB,OAAOA,CACR,CASA,SAAS87B,GAAW97B,GAEnB,MAAO,CACNd,MAASc,EAAEd,MACX0D,KAAQ5C,EAAE4C,KACV1E,MAAS,CAAE,GACXJ,QAAW,CAAE,GACbK,OAAU6B,EAAE7B,OACZwD,MAAS3B,EAAE2B,MAEb,CAwIA,SAASo6B,GAAU/7B,GAClB,IAAI5B,EACAkzB,EACApxB,EACAwxB,EACAvxB,EACA4uB,EACAz4B,EAOJ,GAAe,KAHf8H,GADA+B,EAAKH,EAAE9B,OACIpH,QAIV,OAAOglC,GAGR,GAAe,IAAV19B,EACJ,OAAOy9B,GAKR,IAFA37B,EAAM,EACN6uB,EAAK,EACCz4B,EAAI,EAAGA,EAAI8H,EAAO9H,IAEN,IAAZ6J,EAAI7J,KACRy4B,GAAM,GAEP7uB,GAAOC,EAAI7J,GAGZ,GAAKy4B,IAAO3wB,EAAM,EAAI,CAErB,IAAM9H,EAAI,EAAGA,EAAI8H,GACC,IAAZ+B,EAAI7J,GADcA,KAKxB,OArKF,SAAkBuI,EAAKiR,GACtB,IAAI3P,EAAK,CAAEtB,EAAIX,MAAO4R,IAClBwB,EAAK,CAAEzS,EAAIf,QAASgS,IACxB,OASA,SAAkB9P,GAEjB,MAAO,CACNd,MAASc,EAAEd,MACX0D,KAAQ5C,EAAE4C,KACV1E,MAASiC,EACTrC,QAAWwT,EACXnT,OAAU6B,EAAE7B,OACZwD,MAAS3B,EAAE2B,MAEZ,CACF,CA8ISq6B,CAASh8B,EAAG1J,EACnB,CAID,OAAa,KAHbo7B,EAAM7zB,EAAgBmC,EAAElC,WAQlBoC,KAHLoxB,EAAOrzB,EAAuBkC,EAAIH,EAAElC,QAASkC,EAAE7B,OAAQ,CAAE,EAAG,KAGxC,GAAGmzB,EAAK,GAAG,EA9IjC,SAAqBpxB,EAAKwxB,GACzB,IAAIJ,EACApb,EACA/V,EACAmR,EAeJ,OAXC4E,EADY,IAARwb,EACE,EAEA,EAGPJ,EAAO,CAAE,EAAG,GAGZnxB,EAAK,CAAED,GACPoR,EAAK,CAAEogB,GAWP,SAAkB1xB,GAKjB,OAHA/B,EAAuB+B,EAAE9B,MAAO8B,EAAElC,QAASkC,EAAE7B,OAAQmzB,GAG9C,CACNpyB,MAASc,EAAEd,MACX0D,KAAQ5C,EAAE4C,KACV1E,MAASiC,EACTrC,QAAWwT,EACXnT,OAAUmzB,EAAMpb,GAChBvU,MAAS3B,EAAE2B,MAEZ,CACF,CAqGU2wB,CAAYpyB,EAAKwxB,GA3F3B,SAAexxB,EAAK+7B,GAEnB,IAAI7X,EAAO,CACVllB,MAAS+8B,EAAU/8B,MACnB0D,KAAQq5B,EAAUr5B,KAClB1E,MAAS,CAAEgC,GACXpC,QAAW,CAAE,GACbK,OAAU89B,EAAU99B,OACpBwD,MAASs6B,EAAUt6B,OAEpB,OASA,SAAkB3B,GAEjB,OADAxB,GAAQ,CAAEwB,EAAGi8B,IACN7X,CACP,CACF,CA2EQnkB,CAAMC,EAAK2C,GAAoB64B,GAAWH,GAAqBv7B,KACvE,CC5NA,SAASk8B,GAAkBC,EAASC,GACnC,IAAI9lC,EACJ,IAAMA,EAAI,EAAGA,EAAI6lC,EAAQrlC,OAAQR,IAChC6lC,EAAS7lC,IAAO8lC,EAAK9lC,GAEtB,OAAO6lC,CACR,CCLA,SAASE,GAAgBhT,EAAO8S,GAC/B,IAAI7lC,EACA8D,EACJ,IAAM9D,EAAI,EAAG8D,EAAI,EAAG9D,EAAI6lC,EAAQrlC,OAAQR,IAC5B,IAANA,IAGL+yB,EAAOjvB,GAAI+D,OAASg+B,EAAS7lC,GAC7B8D,GAAK,GAEN,OAAOivB,CACR,CCjBA,SAAS8S,GAAS9K,GACjB,IACI/6B,EADAC,EAAM,GAEV,IAAMD,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/BC,EAAI8E,KAAMg2B,EAAQ/6B,GAAI6H,QAEvB,OAAO5H,CACR,CCkBA,SAAS0b,GAASjS,EAAG8P,EAAOvZ,EAAKmP,EAAQvH,GACxC,IAAI+qB,EACA5yB,EAGJ,IADA4yB,EAAK/qB,EACC7H,EAAI,EAAGA,EAAI0J,EAAElJ,OAAQR,IACrBA,IAAMwZ,IAGXvZ,EAAK2yB,GAAOlpB,EAAG1J,GACf4yB,GAAMxjB,GAEP,OAAOnP,CACR,CAmHA,SAASiI,GAAQwB,EAAG8P,EAAOvZ,EAAKmP,EAAQvH,GACvC,IAAIm+B,EACAC,EAGJ,IADAzsB,EAAQykB,GAAgBzkB,EAAO9P,EAAElJ,OAAO,IAC3B,EACZ,MAAM,IAAI2W,WAAYnS,EAAQ,kEAAmEwU,IAIlG,OAFAwsB,EAAK9rB,GAAkBxQ,GACvBu8B,EAAK/rB,GAAkBja,GAClB+lC,EAAG94B,kBAAoB+4B,EAAG/4B,iBAG7BgmB,GAAmB8S,EAAGp9B,QACtBsqB,GAAmB+S,EAAGr9B,QA1DzB,SAAkBc,EAAG8P,EAAOvZ,EAAKmP,EAAQvH,GACxC,IAAIq+B,EACAtT,EACA5yB,EACA8D,EAIJ,IAFAoiC,EAAc,EAAT92B,EACLwjB,EAAc,EAAT/qB,EACC7H,EAAI,EAAGA,EAAI0J,EAAElJ,OAAO,EAAGR,IACvBA,IAAMwZ,IAGX1V,EAAQ,EAAJ9D,EACJC,EAAK2yB,GAAOlpB,EAAG5F,GACf7D,EAAK2yB,EAAG,GAAMlpB,EAAG5F,EAAE,GACnB8uB,GAAMsT,EAGR,CA0CGtrB,CAAS7M,GAAarE,EAAG,GAAK8P,EAAOzL,GAAa9N,EAAK,GAAKmP,EAAQvH,GAC7D5H,GAGPinB,GAAmB8e,EAAGp9B,QACtBse,GAAmB+e,EAAGr9B,QAEtB+S,GAASgU,GAAoBjmB,EAAG,GAAK8P,EAAOmW,GAAoB1vB,EAAK,GAAKmP,EAAQvH,GAC3E5H,IAlHV,SAAoByJ,EAAG8P,EAAOvZ,EAAKmP,EAAQvH,GAC1C,IAAI4qB,EACA0T,EACA3rB,EACA4rB,EACAxT,EACA5yB,EASJ,IAPAyyB,EAAQ/oB,EAAE4C,KACV65B,EAAQlmC,EAAIqM,KAEZkO,EAAO9Q,EAAEyD,UAAW,GACpBi5B,EAAOnmC,EAAIkN,UAAW,GAEtBylB,EAAK/qB,EACC7H,EAAI,EAAGA,EAAIyyB,EAAMjyB,OAAQR,IACzBA,IAAMwZ,IAGX4sB,EAAMD,EAAOvT,EAAIpY,EAAMiY,EAAOzyB,IAC9B4yB,GAAMxjB,EAGR,CA6FEjC,CAAW64B,EAAIxsB,EAAOysB,EAAI72B,EAAQvH,GAC3B5H,IAER0b,GAASjS,EAAG8P,EAAOvZ,EAAKmP,EAAQvH,GACzB5H,EACR,CClKA,SAASomC,GAAS38B,EAAG8P,GACpB,IAAIvZ,EAGJ,IADAuZ,EAAQykB,GAAgBzkB,EAAO9P,EAAElJ,OAAO,IAC3B,EACZ,MAAM,IAAI2W,WAAYnS,EAAQ,kEAAmEwU,IAIlG,OADAtR,GAAQwB,EAAG8P,EADXvZ,EAAMH,GAAO4J,EAAElJ,OAAO,EAAGoI,GAAOc,IAAO,WAChB,EAAG,GACnBzJ,CACR,CCHA2G,EAAAnH,GAAA,SAAAyI,IC1BA,IAAI2X,GAAO,QCAX,IAAIA,GAAO,QCgDX,IAAI2hB,GAAS,CC4Bb,SAAmBtpB,EAAK6iB,EAAQuL,EAAWC,EAAWntB,GACrD2hB,EAAQ,GAAMuL,EAAWvL,EAAQ,IACjCA,EAAQ,GAAMwL,EAAWxL,EAAQ,IACjCA,EAAQ,GAAIzuB,KAAMyuB,EAAQ,GAAIlzB,QAAWqQ,EAAKmuB,GAAStL,EAAQ,GAAK3hB,EACrE,ECyBA,SAAmBlB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GAChF,IAAIqoB,EACAiF,EAEA1mB,EACA2mB,EACA1mB,EACA9J,EACAvL,EACA5K,EAcJ,IALAggB,GAJA7J,EAAI4kB,EAAQ,IACLnzB,MAGE,GACT8+B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEJzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B0mC,EAAI3hC,KAAMg2B,EAAO/6B,GAAGwH,QAAQ,IAY7B,IATAm/B,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGH2T,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,EAExB,EC1CA,SAAmBxuB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACA/8B,EACAmW,EACAG,EACA0mB,EACAF,EACA1mB,EACAG,EACAjK,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAYJ,IAVA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,SAc3B,IAVA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGH8T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACF,EC7EA,SAAmB1uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAj9B,EACAmW,EACAG,EACAG,EACAumB,EACAF,EACA1mB,EACAG,EACAG,EACApK,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAiBJ,IAfA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,SAmB3B,IAfA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGHiU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACF,EC/FA,SAAmB5uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAl9B,EACAmW,EACAG,EACAG,EACAG,EACAomB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAvK,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAsBJ,IApBA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,SAwB3B,IApBA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGHoU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACF,ECjHA,SAAmB7uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAn9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAimB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACA1K,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EA2BJ,IAzBA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,SA6B3B,IAzBA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGHuU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACF,ECnIA,SAAmB9uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAp9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8lB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7K,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAgCJ,IA9BA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,SAkC3B,IA9BA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGH0U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACF,ECrJA,SAAmB/uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAr9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2lB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAhL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAqCJ,IAnCA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,SAuC3B,IAnCA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGH6U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACF,ECvKA,SAAmBhvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAt9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwlB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EA0CJ,IAxCA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,SA4C3B,IAxCA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGHgV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACF,ECzLA,SAAmBjvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAv9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqlB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAtL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EA+CJ,IA7CA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,SAiD3B,IA7CA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGHmV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACF,EC3MA,SAAoBlvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC7F,IAAIqoB,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAx9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAklB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAzL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAoDJ,IAlDA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAE7BY,EAAM,CACLb,EAAS,GAAOhlB,EAAGglB,EAAS,GAC5BC,EAAS,GAAOjlB,EAAGilB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,IAC1BQ,EAAItiC,KAAM8hC,EAAG,GAAOrlB,EAAGqlB,EAAG,SAsD3B,IAlDA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAE7BY,EAAM,CACLb,EAAS,GAAOhlB,EAAGglB,EAAS,GAC5BC,EAAS,GAAOjlB,EAAGilB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,IAC1BQ,EAAItiC,KAAM8hC,EAAG,GAAOrlB,EAAGqlB,EAAG,IAa5B,IATAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGHsV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACDxB,GAAkBe,EAAIU,EACtB,CACF,GX1QIhF,GAAkB,CYoBtB,SAAmBnqB,EAAK6iB,EAAQuL,EAAWC,EAAWntB,GACrD,IAAIjD,EAAI4kB,EAAQ,GAChBA,EAAQ,GAAMuL,EAAWvL,EAAQ,IACjCA,EAAQ,GAAMwL,EAAWxL,EAAQ,IACjC5kB,EAAEhJ,UAAW,GAAKgJ,EAAE7J,KAAM6J,EAAEtO,OAAQqQ,EAAKmuB,GAAStL,EAAQ,GAAK3hB,GAChE,ECwBA,SAAmBlB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GAChF,IAAIqoB,EACA/6B,EACAggC,EAEA1mB,EACA2mB,EACA1mB,EACA9J,EACAvL,EACA5K,EAcJ,IALAggB,GAJA7J,EAAI4kB,EAAQ,IACLnzB,MAGE,GACT8+B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEJzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B0mC,EAAI3hC,KAAMg2B,EAAO/6B,GAAGwH,QAAQ,IAe7B,IAZAm/B,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGb8S,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAG,GAAIzuB,EAAKtN,EAAGwO,IAC1BwsB,GAAkBe,EAAID,EAExB,EC9CA,SAAmBxuB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACA/8B,EACAmW,EACAG,EACA0mB,EACAF,EACA1mB,EACAG,EACAjK,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAYJ,IAVA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,SAc3B,IAVA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGbiT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACF,ECjFA,SAAmB1uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAj9B,EACAmW,EACAG,EACAG,EACAumB,EACAF,EACA1mB,EACAG,EACAG,EACApK,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAiBJ,IAfA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,SAmB3B,IAfA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGboT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACF,ECnGA,SAAmB5uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAl9B,EACAmW,EACAG,EACAG,EACAG,EACAomB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAvK,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAsBJ,IApBA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,SAwB3B,IApBA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGbuT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACF,ECrHA,SAAmB7uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAn9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAimB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACA1K,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EA2BJ,IAzBA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,SA6B3B,IAzBA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGb0T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACF,ECvIA,SAAmB9uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAp9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8lB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7K,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAgCJ,IA9BA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,SAkC3B,IA9BA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGb6T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACF,ECzJA,SAAmB/uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAr9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2lB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAhL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAqCJ,IAnCA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,SAuC3B,IAnCA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGbgU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACF,EC3KA,SAAmBhvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAt9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwlB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EA0CJ,IAxCA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,SA4C3B,IAxCA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGbmU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACF,EC7LA,SAAmBjvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC5F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAv9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqlB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAtL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EA+CJ,IA7CA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,SAiD3B,IA7CA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGbsU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACF,EC/MA,SAAoBlvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAU7Y,EAAY0Y,EAAWC,EAAWntB,GAC7F,IAAIqoB,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAx9B,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAklB,EACAF,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAzL,EACAvL,EACA5K,EASJ,GAHA6J,GADAsM,EAAI4kB,EAAQ,IACLnzB,MAGFgmB,EAoDJ,IAlDA5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAE7BY,EAAM,CACLb,EAAS,GAAOhlB,EAAGglB,EAAS,GAC5BC,EAAS,GAAOjlB,EAAGilB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,IAC1BQ,EAAItiC,KAAM8hC,EAAG,GAAOrlB,EAAGqlB,EAAG,SAsD3B,IAlDA7mB,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACT68B,EAAM,CACLF,EAAS,GACTC,EAAS,IAEVG,EAAM,CACLJ,EAAS,GAAOxmB,EAAGwmB,EAAS,GAC5BC,EAAS,GAAOzmB,EAAGymB,EAAS,IAE7BK,EAAM,CACLN,EAAS,GAAOrmB,EAAGqmB,EAAS,GAC5BC,EAAS,GAAOtmB,EAAGsmB,EAAS,IAE7BM,EAAM,CACLP,EAAS,GAAOlmB,EAAGkmB,EAAS,GAC5BC,EAAS,GAAOnmB,EAAGmmB,EAAS,IAE7BO,EAAM,CACLR,EAAS,GAAO/lB,EAAG+lB,EAAS,GAC5BC,EAAS,GAAOhmB,EAAGgmB,EAAS,IAE7BQ,EAAM,CACLT,EAAS,GAAO5lB,EAAG4lB,EAAS,GAC5BC,EAAS,GAAO7lB,EAAG6lB,EAAS,IAE7BS,EAAM,CACLV,EAAS,GAAOzlB,EAAGylB,EAAS,GAC5BC,EAAS,GAAO1lB,EAAG0lB,EAAS,IAE7BU,EAAM,CACLX,EAAS,GAAOtlB,EAAGslB,EAAS,GAC5BC,EAAS,GAAOvlB,EAAGulB,EAAS,IAE7BW,EAAM,CACLZ,EAAS,GAAOnlB,EAAGmlB,EAAS,GAC5BC,EAAS,GAAOplB,EAAGolB,EAAS,IAE7BY,EAAM,CACLb,EAAS,GAAOhlB,EAAGglB,EAAS,GAC5BC,EAAS,GAAOjlB,EAAGilB,EAAS,IAEvBzmC,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B6mC,EAAK9L,EAAQ/6B,GAAIwH,QACjBk/B,EAAI3hC,KAAM8hC,EAAG,IACbD,EAAI7hC,KAAM8hC,EAAG,GAAO7mB,EAAG6mB,EAAG,IAC1BC,EAAI/hC,KAAM8hC,EAAG,GAAO1mB,EAAG0mB,EAAG,IAC1BE,EAAIhiC,KAAM8hC,EAAG,GAAOvmB,EAAGumB,EAAG,IAC1BG,EAAIjiC,KAAM8hC,EAAG,GAAOpmB,EAAGomB,EAAG,IAC1BI,EAAIliC,KAAM8hC,EAAG,GAAOjmB,EAAGimB,EAAG,IAC1BK,EAAIniC,KAAM8hC,EAAG,GAAO9lB,EAAG8lB,EAAG,IAC1BM,EAAIpiC,KAAM8hC,EAAG,GAAO3lB,EAAG2lB,EAAG,IAC1BO,EAAIriC,KAAM8hC,EAAG,GAAOxlB,EAAGwlB,EAAG,IAC1BQ,EAAItiC,KAAM8hC,EAAG,GAAOrlB,EAAGqlB,EAAG,IAgB5B,IAZAF,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGbyU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACDxB,GAAkBe,EAAIU,EACtB,CACF,GtBtQI7E,GAAiB,CuBmCrB,SAA0BtqB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAU,EACAz9B,EACAqY,EACA/V,EACA06B,EACAU,EACAZ,EACA1mB,EACAG,EACAgC,EACAC,EACAlT,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGTo6B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAWjB,IARA6qB,EAAMxnC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGX1Q,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnB6qB,EAAK7qB,GAAM8qB,EAAG9qB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAE/B,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAM2D,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACD,CACD,CACF,EClGA,SAA0B1uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAQ,EACAG,EACA59B,EACAqY,EACA/V,EACAC,EACAy6B,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACA6B,EACAC,EACAE,EACApT,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGTo6B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAajB,IAVA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGXxQ,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBgrB,EAAKhrB,GAAM8qB,EAAG9qB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAE/B,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnB6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAC/BqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GAElC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAM8D,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACD,CACD,CACD,CACF,ECzHA,SAA0B5uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAO,EACAG,EACAC,EACA79B,EACAqY,EACA/V,EACAC,EACAqW,EACAokB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACAvT,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGTo6B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAejB,IAZA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGXrQ,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBirB,EAAKjrB,GAAM8qB,EAAG9qB,GAAOiG,EAAGmkB,EAAGpqB,GAAG,GAE/B,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBgrB,EAAKhrB,GAAMirB,EAAIjrB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAC/BsqB,EAAKtqB,GAAMoqB,EAAGpqB,GAAG,GAAOrQ,EAAGy6B,EAAGpqB,GAAG,GAElC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnB6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAC/BqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GAElC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAMiE,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACD,CACD,CACD,CACD,CACF,EChJA,SAA0B7uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAM,EACAG,EACAC,EACAC,EACA99B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAikB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA1T,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGTo6B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAiBjB,IAdA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGXlQ,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkrB,EAAKlrB,GAAM8qB,EAAG9qB,GAAOoG,EAAGgkB,EAAGpqB,GAAG,GAE/B,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBuqB,EAAKvqB,GAAMoqB,EAAGpqB,GAAG,GAAOgG,EAAGokB,EAAGpqB,GAAG,GACjCirB,EAAKjrB,GAAMkrB,EAAIlrB,GAAOiG,EAAGmkB,EAAGpqB,GAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBsqB,EAAKtqB,GAAMoqB,EAAGpqB,GAAG,GAAOrQ,EAAGy6B,EAAGpqB,GAAG,GACjCgrB,EAAKhrB,GAAMirB,EAAIjrB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GACjC6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAMoE,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACD,CACD,CACD,CACD,CACD,CACF,ECvKA,SAA0B9uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAK,EACAG,EACAC,EACAC,EACAC,EACA/9B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA8jB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACA7T,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGTo6B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAmBjB,IAhBA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby4B,EAAM9nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACb83B,EAAMnnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGX/P,EAAKnZ,EAAG,GAAImZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBmrB,EAAKnrB,GAAM8qB,EAAG9qB,GAAOuG,EAAG6jB,EAAGpqB,GAAG,GAE/B,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBwqB,EAAKxqB,GAAMoqB,EAAGpqB,GAAG,GAAOmG,EAAGikB,EAAGpqB,GAAG,GACjCkrB,EAAKlrB,GAAMmrB,EAAInrB,GAAOoG,EAAGgkB,EAAGpqB,GAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBuqB,EAAKvqB,GAAMoqB,EAAGpqB,GAAG,GAAOgG,EAAGokB,EAAGpqB,GAAG,GACjCirB,EAAKjrB,GAAMkrB,EAAIlrB,GAAOiG,EAAGmkB,EAAGpqB,GAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBsqB,EAAKtqB,GAAMoqB,EAAGpqB,GAAG,GAAOrQ,EAAGy6B,EAAGpqB,GAAG,GACjCgrB,EAAKhrB,GAAMirB,EAAIjrB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GACjC6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAMuE,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACF,EC9LA,SAA0B/uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAI,EACAG,EACAC,EACAC,EACAC,EACAC,EACAh+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACA2jB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAhU,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,GAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,EAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,EAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGTo6B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,EAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IAqBjB,IAlBA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby4B,EAAM9nC,GAAOqP,GACb04B,EAAM/nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACb83B,EAAMnnC,GAAOqP,GACb+3B,EAAMpnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGX5P,EAAKtZ,EAAG,GAAIsZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBorB,EAAKprB,IAAM8qB,EAAG9qB,IAAO0G,EAAG0jB,EAAGpqB,IAAG,GAE/B,IAAMuG,EAAKnZ,EAAG,GAAImZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,EAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,EAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,EAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,EAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,EAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAM0E,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,EAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,ECrNA,SAA0BhvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAG,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAj+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAwjB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnU,EACApD,GACArC,GACAuR,GACA9E,GACAvL,GACA6R,GAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,GAAIqxB,EAAQ,GACZ9f,GAAI8f,EAAQ,GAKZlxB,GADAkC,GAAIgP,IAHJ5E,GAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,GAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,GAAEiP,GAAIjP,GAAEmtB,GAAIntB,GAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,EAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,GAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,GAAEd,MAAOqS,GAAErS,MAAOuN,GAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,GAAE7J,KAGTo6B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,EAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IAuBjB,IApBA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby4B,EAAM9nC,GAAOqP,GACb04B,EAAM/nC,GAAOqP,GACb24B,EAAMhoC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACb83B,EAAMnnC,GAAOqP,GACb+3B,EAAMpnC,GAAOqP,GACbg4B,EAAMrnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,GAAId,GAAaipB,GAGXzP,EAAKzZ,EAAG,GAAIyZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBqrB,EAAKrrB,IAAM8qB,EAAG9qB,IAAO6G,EAAGujB,EAAGpqB,IAAG,GAE/B,IAAM0G,EAAKtZ,EAAG,GAAIsZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnB0qB,EAAK1qB,IAAMoqB,EAAGpqB,IAAG,GAAOyG,EAAG2jB,EAAGpqB,IAAG,GACjCorB,EAAKprB,IAAMqrB,EAAIrrB,IAAO0G,EAAG0jB,EAAGpqB,IAAG,GAEhC,IAAMuG,EAAKnZ,EAAG,GAAImZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,EAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,EAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,EAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,EAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,EAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAM6E,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,GAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,EC5OA,SAA0BjvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAl+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqjB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACAtU,GACApD,GACArC,GACAuR,GACA9E,GACAvL,GACA6R,GAaJ,IATAtN,GAAI4rB,EAAOv6B,OACXkJ,GAAIqxB,EAAQ,GACZ9f,GAAI8f,EAAQ,GAKZlxB,GADAkC,GAAIgP,IAHJ5E,GAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,GAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,GAAEiP,GAAIjP,GAAEmtB,GAAIntB,GAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,GAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,GAAEd,MAAOqS,GAAErS,MAAOuN,GAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,GAAE7J,KAGTo6B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IAyBjB,IAtBA6qB,EAAMxnC,GAAOqP,IACbs4B,EAAM3nC,GAAOqP,IACbu4B,EAAM5nC,GAAOqP,IACbw4B,EAAM7nC,GAAOqP,IACby4B,EAAM9nC,GAAOqP,IACb04B,EAAM/nC,GAAOqP,IACb24B,EAAMhoC,GAAOqP,IACb44B,EAAMjoC,GAAOqP,IACby3B,EAAM9mC,GAAOqP,IACb23B,EAAMhnC,GAAOqP,IACb43B,EAAMjnC,GAAOqP,IACb63B,EAAMlnC,GAAOqP,IACb83B,EAAMnnC,GAAOqP,IACb+3B,EAAMpnC,GAAOqP,IACbg4B,EAAMrnC,GAAOqP,IACbi4B,EAAMtnC,GAAOqP,IACbw3B,EAAK7mC,GAAOqP,IAGZvE,GAAId,GAAaipB,GAGXtP,GAAK5Z,EAAG,GAAI4Z,GAAK,GAAK,CAQ3B,IAPKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsrB,EAAKtrB,IAAM8qB,EAAG9qB,IAAOgH,GAAGojB,EAAGpqB,IAAG,GAE/B,IAAM6G,GAAKzZ,EAAG,GAAIyZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB2qB,EAAK3qB,IAAMoqB,EAAGpqB,IAAG,GAAO4G,EAAGwjB,EAAGpqB,IAAG,GACjCqrB,EAAKrrB,IAAMsrB,EAAItrB,IAAO6G,GAAGujB,EAAGpqB,IAAG,GAEhC,IAAM0G,GAAKtZ,EAAG,GAAIsZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB0qB,EAAK1qB,IAAMoqB,EAAGpqB,IAAG,GAAOyG,EAAG2jB,EAAGpqB,IAAG,GACjCorB,EAAKprB,IAAMqrB,EAAIrrB,IAAO0G,GAAG0jB,EAAGpqB,IAAG,GAEhC,IAAMuG,GAAKnZ,EAAG,GAAImZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,GAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,EAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,EAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,EAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,EAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAMgF,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,GAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,ECnQA,SAA2BlvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACxF,IAAI4I,EACAyf,EACAiF,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAn+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkjB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAzU,GACApD,GACArC,GACAuR,GACA9E,GACAvL,GACA6R,GAaJ,IATAtN,GAAI4rB,EAAOv6B,OACXkJ,GAAIqxB,EAAQ,GACZ9f,GAAI8f,EAAQ,GAKZlxB,GADAkC,GAAIgP,IAHJ5E,GAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,GAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,GAAEiP,GAAIjP,GAAEmtB,GAAIntB,GAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,GAAEvD,MAa5C,IAVAwZ,EAAQ3C,GAAW3V,GAAEd,MAAOqS,GAAErS,MAAOuN,GAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,GAAE7J,KAGTo6B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IA2BjB,IAxBA6qB,EAAMxnC,GAAOqP,IACbs4B,EAAM3nC,GAAOqP,IACbu4B,EAAM5nC,GAAOqP,IACbw4B,EAAM7nC,GAAOqP,IACby4B,EAAM9nC,GAAOqP,IACb04B,EAAM/nC,GAAOqP,IACb24B,EAAMhoC,GAAOqP,IACb44B,EAAMjoC,GAAOqP,IACb64B,EAAMloC,GAAOqP,IACby3B,EAAM9mC,GAAOqP,IACb23B,EAAMhnC,GAAOqP,IACb43B,EAAMjnC,GAAOqP,IACb63B,EAAMlnC,GAAOqP,IACb83B,EAAMnnC,GAAOqP,IACb+3B,EAAMpnC,GAAOqP,IACbg4B,EAAMrnC,GAAOqP,IACbi4B,EAAMtnC,GAAOqP,IACbk4B,EAAMvnC,GAAOqP,IACbw3B,EAAK7mC,GAAOqP,IAGZvE,GAAId,GAAaipB,GAGXnP,GAAK/Z,EAAG,GAAI+Z,GAAK,GAAK,CAQ3B,IAPKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBurB,EAAKvrB,IAAM8qB,EAAG9qB,IAAOmH,GAAGijB,EAAGpqB,IAAG,GAE/B,IAAMgH,GAAK5Z,EAAG,GAAI4Z,GAAK,GAAK,CAQ3B,IAPKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB4qB,EAAK5qB,IAAMoqB,EAAGpqB,IAAG,GAAO+G,EAAGqjB,EAAGpqB,IAAG,GACjCsrB,EAAKtrB,IAAMurB,EAAIvrB,IAAOgH,GAAGojB,EAAGpqB,IAAG,GAEhC,IAAM6G,GAAKzZ,EAAG,GAAIyZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB2qB,EAAK3qB,IAAMoqB,EAAGpqB,IAAG,GAAO4G,EAAGwjB,EAAGpqB,IAAG,GACjCqrB,EAAKrrB,IAAMsrB,EAAItrB,IAAO6G,GAAGujB,EAAGpqB,IAAG,GAEhC,IAAM0G,GAAKtZ,EAAG,GAAIsZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB0qB,EAAK1qB,IAAMoqB,EAAGpqB,IAAG,GAAOyG,EAAG2jB,EAAGpqB,IAAG,GACjCorB,EAAKprB,IAAMqrB,EAAIrrB,IAAO0G,GAAG0jB,EAAGpqB,IAAG,GAEhC,IAAMuG,GAAKnZ,EAAG,GAAImZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,GAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,GAAKhZ,EAAG,GAAIgZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,GAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,GAAK7Y,EAAG,GAAI6Y,GAAK,GAAK,CAQ3B,IAPKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,GAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,GAAK1Y,EAAG,GAAI0Y,GAAK,GAAK,CAQ3B,IAPKA,GAAKP,GACT5V,EAAKmW,GACLA,GAAK,IAELnW,EAAK4V,EACLO,IAAMP,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,GAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,GAAKxY,EAAG,GAAIwY,GAAK,GAAK,CAQ3B,IAPKA,GAAKL,GACT7V,EAAKkW,GACLA,GAAK,IAELlW,EAAK6V,EACLK,IAAML,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,GAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAMmF,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAMkF,EAAG,IAAOzuB,EAAKtN,GAAGwO,GACxBwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACDxB,GAAkBe,EAAIU,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,G/BlTIlE,GAA0B,CgC6B9B,SAA0BjrB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAU,EACAz9B,EACAqY,EACA/V,EACA06B,EACAU,EACAZ,EACA1mB,EACAG,EACAgC,EACAC,EACAlT,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAU,GAGlBu5B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAWjB,IARA6qB,EAAMxnC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGX1Q,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnB6qB,EAAK7qB,GAAM8qB,EAAG9qB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAE/B,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAM2D,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACD,CACD,CACF,ECtGA,SAA0B1uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAQ,EACAG,EACA59B,EACAqY,EACA/V,EACAC,EACAy6B,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACA6B,EACAC,EACAE,EACApT,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAU,GAGlBu5B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAajB,IAVA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGXxQ,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBgrB,EAAKhrB,GAAM8qB,EAAG9qB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAE/B,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnB6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAC/BqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GAElC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAM8D,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACD,CACD,CACD,CACF,EC7HA,SAA0B5uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAO,EACAG,EACAC,EACA79B,EACAqY,EACA/V,EACAC,EACAqW,EACAokB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACAvT,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAU,GAGlBu5B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAejB,IAZA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGXrQ,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBirB,EAAKjrB,GAAM8qB,EAAG9qB,GAAOiG,EAAGmkB,EAAGpqB,GAAG,GAE/B,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBgrB,EAAKhrB,GAAMirB,EAAIjrB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAC/BsqB,EAAKtqB,GAAMoqB,EAAGpqB,GAAG,GAAOrQ,EAAGy6B,EAAGpqB,GAAG,GAElC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnB6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAC/BqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GAElC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAMiE,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACD,CACD,CACD,CACD,CACF,ECpJA,SAA0B7uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAM,EACAG,EACAC,EACAC,EACA99B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAikB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA1T,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAU,GAGlBu5B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAiBjB,IAdA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGXlQ,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkrB,EAAKlrB,GAAM8qB,EAAG9qB,GAAOoG,EAAGgkB,EAAGpqB,GAAG,GAE/B,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBuqB,EAAKvqB,GAAMoqB,EAAGpqB,GAAG,GAAOgG,EAAGokB,EAAGpqB,GAAG,GACjCirB,EAAKjrB,GAAMkrB,EAAIlrB,GAAOiG,EAAGmkB,EAAGpqB,GAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBsqB,EAAKtqB,GAAMoqB,EAAGpqB,GAAG,GAAOrQ,EAAGy6B,EAAGpqB,GAAG,GACjCgrB,EAAKhrB,GAAMirB,EAAIjrB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GACjC6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAMoE,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACD,CACD,CACD,CACD,CACD,CACF,EC3KA,SAA0B9uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAK,EACAG,EACAC,EACAC,EACAC,EACA/9B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA8jB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACA7T,EACApD,EACArC,EACAuR,EACA9E,EACAvL,EACA6R,EAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,GAAGjV,QAASuE,EAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAU,GAGlBu5B,EAAM,GACAjqB,EAAI,EAAGA,EAAItN,EAAGsN,IACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,GAAG,IAmBjB,IAhBA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby4B,EAAM9nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACb83B,EAAMnnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,EAAId,GAAaipB,GAGX/P,EAAKnZ,EAAG,GAAImZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBmrB,EAAKnrB,GAAM8qB,EAAG9qB,GAAOuG,EAAG6jB,EAAGpqB,GAAG,GAE/B,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBwqB,EAAKxqB,GAAMoqB,EAAGpqB,GAAG,GAAOmG,EAAGikB,EAAGpqB,GAAG,GACjCkrB,EAAKlrB,GAAMmrB,EAAInrB,GAAOoG,EAAGgkB,EAAGpqB,GAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBuqB,EAAKvqB,GAAMoqB,EAAGpqB,GAAG,GAAOgG,EAAGokB,EAAGpqB,GAAG,GACjCirB,EAAKjrB,GAAMkrB,EAAIlrB,GAAOiG,EAAGmkB,EAAGpqB,GAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBsqB,EAAKtqB,GAAMoqB,EAAGpqB,GAAG,GAAOrQ,EAAGy6B,EAAGpqB,GAAG,GACjCgrB,EAAKhrB,GAAMirB,EAAIjrB,GAAO8F,EAAGskB,EAAGpqB,GAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBqqB,EAAKrqB,GAAMoqB,EAAGpqB,GAAG,GAAOtQ,EAAG06B,EAAGpqB,GAAG,GACjC6qB,EAAK7qB,GAAMgrB,EAAIhrB,GAAO4F,EAAGwkB,EAAGpqB,GAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,EAAI,EAAGA,EAAItN,EAAGsN,IACnBkqB,EAAIlqB,GAAM6qB,EAAI7qB,GAAO2F,EAAGykB,EAAGpqB,GAAG,GAC9BmqB,EAAKnqB,GAAMoqB,EAAGpqB,GAAG,GAAOyF,EAAG2kB,EAAGpqB,GAAG,GAGlC,IAAMuE,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,EAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACF,EClMA,SAA0B/uB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAI,EACAG,EACAC,EACAC,EACAC,EACAC,EACAh+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACA2jB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAhU,EACApD,EACArC,EACAuR,EACA9E,EACAvL,GACA6R,GAaJ,IATAtN,EAAI4rB,EAAOv6B,OACXkJ,EAAIqxB,EAAQ,GACZ9f,EAAI8f,EAAQ,GAKZlxB,GADAkC,EAAIgP,IAHJ5E,EAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,EAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,EAAEiP,GAAIjP,EAAEmtB,GAAIntB,EAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,EAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,EAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGnBu5B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,EAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IAqBjB,IAlBA6qB,EAAMxnC,GAAOqP,GACbs4B,EAAM3nC,GAAOqP,GACbu4B,EAAM5nC,GAAOqP,GACbw4B,EAAM7nC,GAAOqP,GACby4B,EAAM9nC,GAAOqP,GACb04B,EAAM/nC,GAAOqP,GACby3B,EAAM9mC,GAAOqP,GACb23B,EAAMhnC,GAAOqP,GACb43B,EAAMjnC,GAAOqP,GACb63B,EAAMlnC,GAAOqP,GACb83B,EAAMnnC,GAAOqP,GACb+3B,EAAMpnC,GAAOqP,GACbw3B,EAAK7mC,GAAOqP,GAGZvE,GAAId,GAAaipB,GAGX5P,EAAKtZ,EAAG,GAAIsZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBorB,EAAKprB,IAAM8qB,EAAG9qB,IAAO0G,EAAG0jB,EAAGpqB,IAAG,GAE/B,IAAMuG,EAAKnZ,EAAG,GAAImZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,EAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,EAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,EAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,EAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,EAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,EAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAM0E,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,GAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,ECzNA,SAA0BhvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAG,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAj+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAwjB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnU,GACApD,GACArC,GACAuR,GACA9E,GACAvL,GACA6R,GAaJ,IATAtN,GAAI4rB,EAAOv6B,OACXkJ,GAAIqxB,EAAQ,GACZ9f,GAAI8f,EAAQ,GAKZlxB,GADAkC,GAAIgP,IAHJ5E,GAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,GAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,GAAEiP,GAAIjP,GAAEmtB,GAAIntB,GAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,GAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,GAAEd,MAAOqS,GAAErS,MAAOuN,GAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,GAAE7J,KAGT5F,EAAMyP,GAAEhJ,UAAW,GAGnBu5B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IAuBjB,IApBA6qB,EAAMxnC,GAAOqP,IACbs4B,EAAM3nC,GAAOqP,IACbu4B,EAAM5nC,GAAOqP,IACbw4B,EAAM7nC,GAAOqP,IACby4B,EAAM9nC,GAAOqP,IACb04B,EAAM/nC,GAAOqP,IACb24B,EAAMhoC,GAAOqP,IACby3B,EAAM9mC,GAAOqP,IACb23B,EAAMhnC,GAAOqP,IACb43B,EAAMjnC,GAAOqP,IACb63B,EAAMlnC,GAAOqP,IACb83B,EAAMnnC,GAAOqP,IACb+3B,EAAMpnC,GAAOqP,IACbg4B,EAAMrnC,GAAOqP,IACbw3B,EAAK7mC,GAAOqP,IAGZvE,GAAId,GAAaipB,GAGXzP,EAAKzZ,EAAG,GAAIyZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBqrB,EAAKrrB,IAAM8qB,EAAG9qB,IAAO6G,EAAGujB,EAAGpqB,IAAG,GAE/B,IAAM0G,EAAKtZ,EAAG,GAAIsZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB0qB,EAAK1qB,IAAMoqB,EAAGpqB,IAAG,GAAOyG,EAAG2jB,EAAGpqB,IAAG,GACjCorB,EAAKprB,IAAMqrB,EAAIrrB,IAAO0G,EAAG0jB,EAAGpqB,IAAG,GAEhC,IAAMuG,EAAKnZ,EAAG,GAAImZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,EAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,EAAKhZ,EAAG,GAAIgZ,EAAK,GAAK,CAQ3B,IAPKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,EAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,EAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,EAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,EAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAM6E,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,GAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,EChPA,SAA0BjvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACvF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAl+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqjB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAtU,GACApD,GACArC,GACAuR,GACA9E,GACAvL,GACA6R,GAaJ,IATAtN,GAAI4rB,EAAOv6B,OACXkJ,GAAIqxB,EAAQ,GACZ9f,GAAI8f,EAAQ,GAKZlxB,GADAkC,GAAIgP,IAHJ5E,GAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,GAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,GAAEiP,GAAIjP,GAAEmtB,GAAIntB,GAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,GAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,GAAEd,MAAOqS,GAAErS,MAAOuN,GAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,GAAE7J,KAGT5F,EAAMyP,GAAEhJ,UAAW,GAGnBu5B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IAyBjB,IAtBA6qB,EAAMxnC,GAAOqP,IACbs4B,EAAM3nC,GAAOqP,IACbu4B,EAAM5nC,GAAOqP,IACbw4B,EAAM7nC,GAAOqP,IACby4B,EAAM9nC,GAAOqP,IACb04B,EAAM/nC,GAAOqP,IACb24B,EAAMhoC,GAAOqP,IACb44B,EAAMjoC,GAAOqP,IACby3B,EAAM9mC,GAAOqP,IACb23B,EAAMhnC,GAAOqP,IACb43B,EAAMjnC,GAAOqP,IACb63B,EAAMlnC,GAAOqP,IACb83B,EAAMnnC,GAAOqP,IACb+3B,EAAMpnC,GAAOqP,IACbg4B,EAAMrnC,GAAOqP,IACbi4B,EAAMtnC,GAAOqP,IACbw3B,EAAK7mC,GAAOqP,IAGZvE,GAAId,GAAaipB,GAGXtP,GAAK5Z,EAAG,GAAI4Z,GAAK,GAAK,CAQ3B,IAPKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsrB,EAAKtrB,IAAM8qB,EAAG9qB,IAAOgH,GAAGojB,EAAGpqB,IAAG,GAE/B,IAAM6G,GAAKzZ,EAAG,GAAIyZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB2qB,EAAK3qB,IAAMoqB,EAAGpqB,IAAG,GAAO4G,EAAGwjB,EAAGpqB,IAAG,GACjCqrB,EAAKrrB,IAAMsrB,EAAItrB,IAAO6G,GAAGujB,EAAGpqB,IAAG,GAEhC,IAAM0G,GAAKtZ,EAAG,GAAIsZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB0qB,EAAK1qB,IAAMoqB,EAAGpqB,IAAG,GAAOyG,EAAG2jB,EAAGpqB,IAAG,GACjCorB,EAAKprB,IAAMqrB,EAAIrrB,IAAO0G,GAAG0jB,EAAGpqB,IAAG,GAEhC,IAAMuG,GAAKnZ,EAAG,GAAImZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,GAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,GAAKhZ,EAAG,GAAIgZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,GAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,EAAK7Y,EAAG,GAAI6Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,EAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,EAAK1Y,EAAG,GAAI0Y,EAAK,GAAK,CAQ3B,IAPKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,EAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,EAAKxY,EAAG,GAAIwY,EAAK,GAAK,CAQ3B,IAPKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,EAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,EAAKvY,EAAG,GAAIuY,EAAK,GAAK,CAS3B,IARKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,EAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAMgF,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,GAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,ECvQA,SAA2BlvB,EAAK6iB,EAAQhI,EAAOyT,EAAUC,EAAUH,EAAWC,EAAWntB,GACxF,IAAI4I,EACAyf,EACA/6B,EACAggC,EACAE,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAn+B,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkjB,EACAU,EACAZ,EACA1mB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAzU,GACApD,GACArC,GACAuR,GACA9E,GACAvL,GACA6R,GAaJ,IATAtN,GAAI4rB,EAAOv6B,OACXkJ,GAAIqxB,EAAQ,GACZ9f,GAAI8f,EAAQ,GAKZlxB,GADAkC,GAAIgP,IAHJ5E,GAAI4kB,EAAQ,IAGKnzB,MAAO4+B,EAAUC,EAAUtwB,GAAE3O,UACvCqC,GACPg9B,EAAK,CAAE96B,GAAEiP,GAAIjP,GAAEmtB,GAAIntB,GAAEs1B,IACf5kB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBoqB,EAAG9hC,KAAMyiC,GAAazM,EAAOte,IAAGjV,QAASuE,GAAEvD,MAgB5C,IAbAwZ,EAAQ3C,GAAW3V,GAAEd,MAAOqS,GAAErS,MAAOuN,GAAEvN,OAGvC2+B,EAAK1B,GAAS9K,GAGd0G,EAAOtrB,GAAE7J,KAGT5F,EAAMyP,GAAEhJ,UAAW,GAGnBu5B,EAAM,GACAjqB,GAAI,EAAGA,GAAItN,GAAGsN,KACnBiqB,EAAI3hC,KAAM8hC,EAAGpqB,IAAG,IA2BjB,IAxBA6qB,EAAMxnC,GAAOqP,IACbs4B,EAAM3nC,GAAOqP,IACbu4B,EAAM5nC,GAAOqP,IACbw4B,EAAM7nC,GAAOqP,IACby4B,EAAM9nC,GAAOqP,IACb04B,EAAM/nC,GAAOqP,IACb24B,EAAMhoC,GAAOqP,IACb44B,EAAMjoC,GAAOqP,IACb64B,EAAMloC,GAAOqP,IACby3B,EAAM9mC,GAAOqP,IACb23B,EAAMhnC,GAAOqP,IACb43B,EAAMjnC,GAAOqP,IACb63B,EAAMlnC,GAAOqP,IACb83B,EAAMnnC,GAAOqP,IACb+3B,EAAMpnC,GAAOqP,IACbg4B,EAAMrnC,GAAOqP,IACbi4B,EAAMtnC,GAAOqP,IACbk4B,EAAMvnC,GAAOqP,IACbw3B,EAAK7mC,GAAOqP,IAGZvE,GAAId,GAAaipB,GAGXnP,GAAK/Z,EAAG,GAAI+Z,GAAK,GAAK,CAQ3B,IAPKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBurB,EAAKvrB,IAAM8qB,EAAG9qB,IAAOmH,GAAGijB,EAAGpqB,IAAG,GAE/B,IAAMgH,GAAK5Z,EAAG,GAAI4Z,GAAK,GAAK,CAQ3B,IAPKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB4qB,EAAK5qB,IAAMoqB,EAAGpqB,IAAG,GAAO+G,EAAGqjB,EAAGpqB,IAAG,GACjCsrB,EAAKtrB,IAAMurB,EAAIvrB,IAAOgH,GAAGojB,EAAGpqB,IAAG,GAEhC,IAAM6G,GAAKzZ,EAAG,GAAIyZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB2qB,EAAK3qB,IAAMoqB,EAAGpqB,IAAG,GAAO4G,EAAGwjB,EAAGpqB,IAAG,GACjCqrB,EAAKrrB,IAAMsrB,EAAItrB,IAAO6G,GAAGujB,EAAGpqB,IAAG,GAEhC,IAAM0G,GAAKtZ,EAAG,GAAIsZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnB0qB,EAAK1qB,IAAMoqB,EAAGpqB,IAAG,GAAOyG,EAAG2jB,EAAGpqB,IAAG,GACjCorB,EAAKprB,IAAMqrB,EAAIrrB,IAAO0G,GAAG0jB,EAAGpqB,IAAG,GAEhC,IAAMuG,GAAKnZ,EAAG,GAAImZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnByqB,EAAKzqB,IAAMoqB,EAAGpqB,IAAG,GAAOsG,EAAG8jB,EAAGpqB,IAAG,GACjCmrB,EAAKnrB,IAAMorB,EAAIprB,IAAOuG,GAAG6jB,EAAGpqB,IAAG,GAEhC,IAAMoG,GAAKhZ,EAAG,GAAIgZ,GAAK,GAAK,CAQ3B,IAPKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBwqB,EAAKxqB,IAAMoqB,EAAGpqB,IAAG,GAAOmG,EAAGikB,EAAGpqB,IAAG,GACjCkrB,EAAKlrB,IAAMmrB,EAAInrB,IAAOoG,GAAGgkB,EAAGpqB,IAAG,GAEhC,IAAMiG,GAAK7Y,EAAG,GAAI6Y,GAAK,GAAK,CAQ3B,IAPKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBuqB,EAAKvqB,IAAMoqB,EAAGpqB,IAAG,GAAOgG,EAAGokB,EAAGpqB,IAAG,GACjCirB,EAAKjrB,IAAMkrB,EAAIlrB,IAAOiG,GAAGmkB,EAAGpqB,IAAG,GAEhC,IAAM8F,GAAK1Y,EAAG,GAAI0Y,GAAK,GAAK,CAQ3B,IAPKA,GAAKP,GACT5V,EAAKmW,GACLA,GAAK,IAELnW,EAAK4V,EACLO,IAAMP,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBsqB,EAAKtqB,IAAMoqB,EAAGpqB,IAAG,GAAOrQ,EAAGy6B,EAAGpqB,IAAG,GACjCgrB,EAAKhrB,IAAMirB,EAAIjrB,IAAO8F,GAAGskB,EAAGpqB,IAAG,GAEhC,IAAM4F,GAAKxY,EAAG,GAAIwY,GAAK,GAAK,CAQ3B,IAPKA,GAAKL,GACT7V,EAAKkW,GACLA,GAAK,IAELlW,EAAK6V,EACLK,IAAML,GAEDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBqqB,EAAKrqB,IAAMoqB,EAAGpqB,IAAG,GAAOtQ,EAAG06B,EAAGpqB,IAAG,GACjC6qB,EAAK7qB,IAAMgrB,EAAIhrB,IAAO4F,GAAGwkB,EAAGpqB,IAAG,GAEhC,IAAM2F,GAAKvY,EAAG,GAAIuY,GAAK,GAAK,CAS3B,IARKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGDvF,GAAI,EAAGA,GAAItN,GAAGsN,KACnBkqB,EAAIlqB,IAAM6qB,EAAI7qB,IAAO2F,GAAGykB,EAAGpqB,IAAG,GAC9BmqB,EAAKnqB,IAAMoqB,EAAGpqB,IAAG,GAAOyF,EAAG2kB,EAAGpqB,IAAG,GAGlC,IAAMmF,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB8lB,GAAgBhT,EAAO4T,GACvB/7B,GAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,GAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAMkF,EAAI,GAAKzuB,EAAKtN,GAAGwO,IAC5BwsB,GAAkBe,EAAID,GAEvBd,GAAkBe,EAAIC,EACtB,CACDhB,GAAkBe,EAAIG,EACtB,CACDlB,GAAkBe,EAAII,EACtB,CACDnB,GAAkBe,EAAIK,EACtB,CACDpB,GAAkBe,EAAIM,EACtB,CACDrB,GAAkBe,EAAIO,EACtB,CACDtB,GAAkBe,EAAIQ,EACtB,CACDvB,GAAkBe,EAAIS,EACtB,CACDxB,GAAkBe,EAAIU,EACtB,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACF,GxChTItjB,GAAWyd,GAAOhhC,OAAS,EAc/B,SAAS4iC,GAAc15B,EAAGuR,EAAG9E,GAC5B,OAAOgrB,GAAc,CAAEz3B,EAAGuR,EAAG9E,GAAK,oBAAoB,EACvD,CAgNA,SAAS8xB,GAAuB/vB,EAAK6iB,EAAQqD,EAAMjlB,GAClD,IAAImtB,EACAC,EACAxT,EACAjrB,EACAogC,EACA9uB,EACAsiB,EACAC,EACAwM,EACAC,EACAC,EACA9/B,EACAqB,EACAsxB,EACAC,EACAmN,EACAC,EACAnN,EACAC,EACAmN,EACAC,EACAC,EACAC,EACAC,EACAvH,EACA5I,EACA6C,EACArzB,EACAkH,EACAgL,EACA0uB,EACAn/B,EACAuR,EACA9E,EACAnW,EACA8D,EAUJ,IAPCsV,EADIlV,UAAU1D,OAAS,EAChB2Y,EAEA,CAAA,EAGRhK,EAAI4rB,EAAOv6B,OACX+H,EAAM,GACAvI,EAAI,EAAGA,EAAImP,EAAGnP,IACnBuI,EAAIxD,KAAMw2B,GAAgBR,EAAQ/6B,KAanC,GAVA0J,EAAInB,EAAK,GACT0S,EAAI1S,EAAK,GACT4N,EAAI5N,EAAK,GAGT2yB,EAAMxxB,EAAE9B,MACRuzB,EAAMlgB,EAAErT,MACRE,EAAQozB,EAAI16B,OAGP06B,EAAI16B,SAAW26B,EAAI36B,OACvB,MAAM,IAAIgB,MAAOwD,EAAQ,mIAAoIk2B,EAAI16B,OAAQ26B,EAAI36B,SAE9K,IAAMR,EAAI,EAAGA,EAAI8H,EAAO9H,IACvB,GAAKk7B,EAAKl7B,KAAQm7B,EAAKn7B,GACtB,MAAM,IAAIwB,MAAOwD,EAAQ,8GAA+GuT,GAAM2iB,EAAK,KAAO3iB,GAAM4iB,EAAK,OAOvK,GAFAhhB,EAAIikB,EAAK59B,OAEE,QADX86B,EAAIwN,GAAkB1K,EAAMt2B,EAAM,IAEjC,MAAM,IAAIqP,WAAYnS,EAAQ,2FAA4FuT,GAAM6lB,EAAM,OAGvI,GADA9C,EAAEtiB,OACGsiB,EAAE96B,SAAW2Z,EACjB,MAAM,IAAI3Y,MAAOwD,EAAQ,iGAAkGuT,GAAM6lB,EAAM,OAGxI,GAAKjkB,EAAIrS,EACR,MAAM,IAAIqP,WAAYnS,EAAQ,qJAAsJ8C,EAAOyQ,GAAM6lB,EAAM,OAIxM,GADAyK,EAAI/gC,EAAQqS,EACPhE,EAAEvO,MAAMpH,SAAWqoC,EACvB,MAAM,IAAIrnC,MAAOwD,EAAQ,+LAAgMuT,GAAM2iB,EAAK,KAAO2N,EAAGtwB,GAAMpC,EAAEvO,MAAO,OAqB9P,IAjBAsgC,EAAQrD,GAAmB3J,EAAI16B,OAAQ86B,GACvC8M,EAAOW,GAAc7N,EAAKxxB,EAAElC,QAAS0gC,GACrCG,EAAOU,GAAc5N,EAAKlgB,EAAEzT,QAAS0gC,GACrCK,EAAMH,EAAM,GACZO,EAAMP,EAAM,GACZQ,EAAMP,EAAM,GAGZD,EAAOW,GAAc7N,EAAKxxB,EAAElC,QAAS8zB,GACrC+M,EAAOU,GAAc5N,EAAKlgB,EAAEzT,QAAS8zB,GACrCgN,EAAMF,EAAM,GACZK,EAAML,EAAM,GACZM,EAAML,EAAM,GAGZz+B,EAAM,EACN6uB,EAAK,EACCz4B,EAAI,EAAGA,EAAI6oC,EAAG7oC,IAAM,CAEzB,IADAiI,EAAIsgC,EAAKvoC,GACH8D,EAAI,EAAGA,EAAIqL,EAAGrL,IACnB,GAAKmE,IAAMM,EAAKzE,GAAI8D,MAAO5H,GAC1B,MAAM,IAAIwB,MAAOwD,EAAQ,qNAAsNuT,GAAM2iB,EAAK,KAAO3iB,GAAM2vB,EAAO,KAAO3vB,GAAMgwB,EAAK,KAAOhwB,GAAMhQ,EAAKzE,GAAI8D,MAAO,KAAO9D,IAItU8F,GAAO3B,EAGI,IAANA,IACJwwB,GAAM,EAEP,CAED,KAAa,IAAR7uB,GAAe0+B,EAAI9nC,QAA2B,IAAjBiJ,GAAO6+B,IAAzC,CA6BA,GyCrdD,SAA0BvN,EAAQ96B,GACjC,IAAI2K,EACA5K,EAEJ,IAAMA,EAAI,EAAGA,EAAI+6B,EAAOv6B,OAAQR,IAC/B4K,EAAImwB,EAAQ/6B,GACZC,EAAI8E,KAAK,CACR6D,MAASgC,EAAEhC,MACX0D,KAAQ1B,EAAE0B,KACV1E,MAAS,GACTJ,QAAW,CAAE,GACbK,OAAU+C,EAAE/C,OACZwD,MAAST,EAAES,OAId,CzC8bC29B,CAAiBzgC,EAlBjBwqB,EAAQ,CACP,CACCnqB,MAASc,EAAEd,MACX0D,KAAQ5C,EAAE4C,KACV1E,MAAS0gC,EACT9gC,QAAWihC,EACX5gC,OAAU6B,EAAE7B,OACZwD,MAAS3B,EAAE2B,OAEZ,CACCzC,MAASqS,EAAErS,MACX0D,KAAQ2O,EAAE3O,KACV1E,MAAS0gC,EACT9gC,QAAWkhC,EACX7gC,OAAUoT,EAAEpT,OACZwD,MAAS4P,EAAE5P,SAMbi7B,EAAY2C,GAAiBlW,EAAO,IACpCwT,EAAY0C,GAAiBlW,EAAO,IAGzB,IAAN8V,EACJ,OAAKzF,GAAc15B,EAAGuR,EAAG9E,GACjBksB,GAAiBwG,GAAK3wB,EAAK3P,EAAK+9B,EAAWC,EAAWntB,GAEvDooB,GAAQqH,GAAK3wB,EAAK3P,EAAK+9B,EAAWC,EAAWntB,GAGrD,GAAW,IAANyvB,EACJ,OAAKzF,GAAc15B,EAAGuR,EAAG9E,GACjBksB,GAAiBwG,GAAK3wB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAKtC,EAAWC,EAAWntB,GAExEooB,GAAQqH,GAAK3wB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAKtC,EAAWC,EAAWntB,GAKtE,GAHAioB,EAAKlrB,EAAE3O,QAGFixB,IAAOoQ,EAAE,EAAI,CAEjB,IAAM7oC,EAAI,EAAGA,EAAI6oC,GACE,IAAbN,EAAKvoC,GADSA,KAMpB,IADAmW,EAAEvO,MAAQ,CAAE2gC,EAAIvoC,IACV8D,EAAI,EAAGA,EAAIqL,EAAGrL,IACnByE,EAAKzE,GAAI0D,QAAU,CAAEe,EAAIzE,GAAG0D,QAAQxH,IAIrC,OAFA2oC,EAAM,CAAEA,EAAI3oC,IACZ4oC,EAAM,CAAEA,EAAI5oC,IACPojC,GAAc15B,EAAGuR,EAAG9E,GACjBksB,GAAiB,GAAKnqB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAKtC,EAAWC,EAAWntB,GAExEooB,GAAQ,GAAKtpB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAKtC,EAAWC,EAAWntB,EACrE,CASD,OARAgiB,EAAM7zB,EAAgBohC,GACtBtN,EAAM9zB,EAAgBqhC,GACtBJ,EAAMjhC,EAAgB85B,GAGtB3F,EAAO1vB,GAAe28B,GACtBhN,EAAO3vB,GAAe48B,GACtBT,EAAOn8B,GAAeq1B,GACT,IAARjG,GAAqB,IAARC,GAAqB,IAARmN,GAAa9M,IAASyM,GAAQxM,IAASwM,GAAQU,GAAK9kB,GAE7Eqf,GAAc15B,EAAGuR,EAAG9E,GACjBksB,GAAiBwG,GAAK3wB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAc,IAATlN,EAAY4K,EAAWC,EAAWntB,GAEpFooB,GAAQqH,GAAK3wB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAc,IAATlN,EAAY4K,EAAWC,EAAWntB,GAK7EyvB,GAAK9kB,GACJqf,GAAc15B,EAAGuR,EAAG9E,GACjBgtB,GAAyB0F,EAAE,GAAK3wB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAKtC,EAAWC,EAAWntB,GAElFopB,GAAgBqG,EAAE,GAAK3wB,EAAK3P,EAAKwqB,EAAO4V,EAAKC,EAAKtC,EAAWC,EAAWntB,GAG3EgqB,GAAc15B,EAAGuR,EAAG9E,GFla1B,SAAmB+B,EAAK6iB,EAAQhI,EAAOuT,EAAWC,EAAWntB,GAC5D,IAAIqoB,EACA73B,EACArB,EACA7B,EACAmD,EACA88B,EACA/T,EACAzjB,EACAgH,EACAvL,EACA5K,EACA8D,EAyBJ,IAvBAqL,EAAI4rB,EAAOv6B,OAOXoJ,EAAMH,GAHNI,GADAsM,EAAI4kB,EAAQ,IACLnzB,OAMP++B,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGT5F,EAAMyP,EAAEhJ,UAAW,GAGnBylB,EAAK9yB,GAAOqP,GACNnP,EAAI,EAAGA,EAAI4J,EAAK5J,IAAM,CAC3B,IAAM8D,EAAI,EAAGA,EAAIqL,EAAGrL,IACnByE,EAAMwyB,EAAQj3B,GACd8uB,EAAI9uB,GAAM4b,GAAW7V,EAAItB,EAAIf,QAASm/B,EAAI7iC,GAAKyE,EAAI8C,MAAOrL,EAAG6f,IAE9DkmB,GAAgBhT,EAAOH,GACvBhoB,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3BrsB,EAAK+6B,EAAM7O,EAAG,GAAI1a,EAAKtN,EAAGwO,GAC1B,CACF,CEoXS8vB,CAAkBhxB,EAAK3P,EAAKwqB,EAAOuT,EAAWC,EAAWntB,QDxalE,SAAmBlB,EAAK6iB,EAAQhI,EAAOuT,EAAWC,EAAWntB,GAC5D,IAAIqoB,EACA73B,EACArB,EACAsB,EACA88B,EACA/T,EACAzjB,EACAgH,EACAvL,EACA5K,EACA8D,EAsBJ,IApBAqL,EAAI4rB,EAAOv6B,OAOXoJ,EAAMH,GAHNI,GADAsM,EAAI4kB,EAAQ,IACLnzB,OAMP++B,EAAKd,GAAS9K,GAGdnwB,EAAId,GAAaipB,GAGjB0O,EAAOtrB,EAAE7J,KAGTsmB,EAAK9yB,GAAOqP,GACNnP,EAAI,EAAGA,EAAI4J,EAAK5J,IAAM,CAC3B,IAAM8D,EAAI,EAAGA,EAAIqL,EAAGrL,IACnByE,EAAMwyB,EAAQj3B,GACd8uB,EAAI9uB,GAAM4b,GAAW7V,EAAItB,EAAIf,QAASm/B,EAAI7iC,GAAKyE,EAAI8C,MAAOrL,EAAG6f,IAE9DkmB,GAAgBhT,EAAOH,GACvBhoB,EAAG,GAAM07B,EAAWvT,EAAO,IAC3BnoB,EAAG,GAAM27B,EAAWxT,EAAO,IAC3B0O,EAAM7O,EAAG,IAAO1a,EAAKtN,EAAGwO,EACxB,CACF,CC+XC+vB,CAAUjxB,EAAK3P,EAAKwqB,EAAOuT,EAAWC,EAAWntB,EAzFhD,CA0FF,C0C3gBA,SAASgwB,GAAmBvpC,GAC3B,MACkB,iBAAVA,GACG,OAAVA,GACiB,IAAjBA,EAAMW,MAER,CCRA,SAAS6oC,GAAaxpC,GACrB,OACCA,SAEiB,mBAAVA,GACiB,iBAAjBA,EAAMW,QACbqS,GAAWhT,EAAMW,SACjBX,EAAMW,QAAU,GAChBX,EAAMW,QAAU2S,EAElB,CCHA,SAASm2B,GAAc/5B,GACtB,GAA0B,mBAAdA,EACX,MAAM,IAAIxL,UAAWiB,EAAQ,0DAA2DuK,IAEzF,OASA,SAAgB1P,GACf,IAAI+J,EACA5J,EACJ,IAAMqpC,GAAaxpC,GAClB,OAAO,EAGR,GADA+J,EAAM/J,EAAMW,OACC,IAARoJ,EACJ,OAAO,EAER,IAAM5J,EAAI,EAAGA,EAAI4J,EAAK5J,IACrB,IAAiC,IAA5BuP,EAAW1P,EAAOG,IACtB,OAAO,EAGT,OAAO,CACP,CACF,CCwFA4G,EAAAnH,GAAA,WChEA,SAAkByY,GACjB,IAAMnD,GAAYmD,GACjB,MAAM,IAAInU,UAAWiB,EAAQ,oEAAqEkT,IAEnG,OAWA,SAAkB6iB,EAAQqD,EAAMjlB,GAC/B,IAAIC,EAEHA,EADIlV,UAAU1D,OAAS,EAChB2Y,EAEA,CAAA,EAER,OAAOowB,GAAQrxB,EAAK6iB,EAAQqD,EAAMhlB,EAClC,CACF,IC7EA,IAAIowB,GAAkB55B,GAAUmF,ICLhC,SAAS00B,GAAcnqB,GACtB,IAAIrf,EACAD,EAGJ,IADAC,EAAM,GACAD,EAAI,EAAGA,EAAIsf,EAAO9e,OAAQR,IAC/BC,EAAI8E,KAAMokB,GAAa7J,EAAQtf,KAEhC,OAAOC,CACR,CCTA,SAASypC,GAAgBpqB,GACxB,IAAIrf,EACAD,EAGJ,IADAC,EAAM,GACAD,EAAI,EAAGA,EAAIsf,EAAO9e,OAAQR,IAC/BC,EAAI8E,KAAMihB,GAAY1G,EAAQtf,KAE/B,OAAOC,CACR,CC8BA,SAAS0pC,GAAkB7hC,EAAO4B,EAAG00B,EAAMr3B,GAC1C,IAAIS,EACAI,EACAgiC,EACAl+B,EACA7B,EACA8B,EACA2vB,EACAuO,EACA5hC,EACAjI,EACA8D,EAOJ,GALA+F,EAAK+C,GAAUlD,GAAG,GAClBiC,EAAKoB,GAAYrD,GAAG,GAEpBkgC,EAAOhc,GADPliB,EAAMuB,GAAUvD,IAGXG,EAAGrJ,OAASsH,EAChB,MAAM,IAAIqP,WAAYnS,EAAQ,0JAA2J6E,EAAGrJ,OAAQsH,IAIrM,GAAW,QADXwzB,EAAIwO,GAAqB1L,EAAMt2B,EAAM,IAEpC,MAAM,IAAIqP,WAAYnS,EAAQ,mHAAoH8C,EAAOA,EAAM,EAAGs2B,EAAK7lB,KAAM,QAE9K,GAAK+iB,EAAE96B,SAAW49B,EAAK59B,OACtB,MAAM,IAAIgB,MAAOwD,EAAQ,0EAA2Eo5B,EAAK7lB,KAAM,QAEhH,GAAK+iB,EAAE96B,SAAWqJ,EAAGrJ,OACpB,MAAM,IAAI2W,WAAYnS,EAAQ,iKAAkK6E,EAAGrJ,OAAQ49B,EAAK7lB,KAAM,QAEvN,GAAK+iB,EAAE96B,SCxDR,SAA4BkJ,GAC3B,IAAIE,EACAnD,EACAiG,EACA8c,EACAC,EACAzpB,EAeJ,GAZA0M,EAAK9D,GAAOc,GAIXjD,EADI2B,EAAiBsB,GACf0D,EAAgBV,GAEhB/D,GAAQ+D,GAMF,KAHb9C,EAAMF,EAAElJ,QAIP,OAAO,EAIR,IADAgpB,EAAK/iB,EAAKiD,EAAG,GACP1J,EAAI,EAAGA,EAAI4J,EAAK5J,IAAM,CAE3B,GAAKwpB,GADLC,EAAKhjB,EAAKiD,EAAG1J,IAEZ,OAAO,EAERwpB,EAAKC,CACL,CACD,OAAO,CACR,CDsBmBsgB,CAAmBzO,GACpC,MAAM,IAAI95B,MAAOwD,EAAQ,oIAAqIo5B,EAAK7lB,KAAM,QAG1K,GAAmB,IAAd1O,EAAGrJ,OACPoH,EAAQg5B,GAAM94B,GACdN,EAAU1H,GAAOgI,QAMjB,IAHAN,EAAU,GACVI,EAAQ,GACR9D,EAAI,EACE9D,EAAI,EAAGA,EAAI8H,EAAO9H,IAClBA,IAAMs7B,EAAGx3B,IAEb+lC,EAAIhgC,EAAI/F,GACRmE,EAAI0D,EAAI7H,GACRA,GAAK,GACMA,IAAM+F,EAAGrJ,QAEpBqpC,EAAI,EACJ5hC,EAAI0D,EAAI7H,EAAE,GACJ8lC,IACL3hC,GAAK4B,EAAI/F,EAAE,MAIZ+lC,EAAI,EACJ5hC,EAAI0D,EAAI7H,GACH8lC,IACJ3hC,GAAK4B,EAAI/F,KAGX8D,EAAM7C,KAAM8kC,GACZriC,EAAQzC,KAAMkD,GAGhB,OAAO,IAAIyB,EAAEvC,YAAa0F,GAAUnD,GAAKiD,GAASjD,GAAK9B,EAAOJ,EAASwF,GAAWtD,GAAKgC,EAAK,CAC3FgzB,UAAa33B,GAEf,CErGA,SAASo+B,GAAOv8B,EAAOhB,EAAOyD,GAC7B,IAEIzB,EACA+B,EACAe,EAmBJ,OAjBQ9E,EAAMpH,OACD,GACZoJ,EAAMH,GAAO7B,GACb+D,EAAKP,GAAexD,EAAOyD,KAG3BzB,EAAM,EACN+B,EAAK,CAAE,IAUD,IAAI+O,GAAS9R,EAPR,YADZ8D,EAAKsZ,GAAYpd,IAEV03B,GAAa12B,GAEb07B,GAAY17B,EAAK8C,GAIQ9E,EAAO+D,EAAIG,GAAgBlE,EAAO+D,GAAMN,EACzE,CClBA,IAAAoI,GAAA7D,GAAAoD,GAAA/H,aACAyI,GAAA9D,GAAAoD,GAAA9H,UAKA8+B,GAAAp6B,GAAAoD,IACApM,EAAAojC,GAAA,aAAAv2B,IACA7M,EAAAojC,GAAA,UAAAt2B,ICFA,IAAAD,GAAA7D,GAAAiD,GAAA5H,aACAyI,GAAA9D,GAAAiD,GAAA3H,UAKA++B,GAAAr6B,GAAAiD,IC/BA,SAASq3B,GAAUrqC,GAClB,IAAIiV,SAAcjV,EAClB,OACW,OAAVA,GACU,WAATiV,GAA8B,aAATA,EAEf,IAAI/Q,UAAWiB,EAAQ,8GAA+GnF,IAEvI,IACR,CDuBA+G,EAAAqjC,GAAA,aAAAx2B,IACA7M,EAAAqjC,GAAA,UAAAv2B,IEtDe,IAAAzN,GAAAvG,OAAOyqC,OCKtB,SAASC,KAET,CCSA,IAAAC,GATwB,mBAAZpkC,GACIA,GDehB,SAAuB0X,GAEtB,OADAysB,GAAKvpC,UAAY8c,EACV,IAAIysB,EACZ,EETA,SAASE,GAAY9hC,EAAKR,GACzB,OAAKQ,EAAM,EACH,EAEHA,EAAMR,EACHA,EAEDQ,CACR,CCRA,SAAS+hC,GAAW/hC,EAAKR,GACxB,IAAIwiC,EAAMxiC,EAAM,EAChB,OAAKQ,EAAM,IACVA,GAAOgiC,GACI,GAEG,KADbhiC,GAAOgiC,KAENhiC,GAAOgiC,GAGFhiC,GAEHA,EAAMR,IACVQ,GAAOgiC,GACIxiC,IACVQ,GAAOgiC,GAEDhiC,GAEDA,CACR,CC5BA,IAAI6c,GAAQ,CACXiF,KAAQigB,GACRlgB,MAASigB,GACT/f,UAoDD,SAAyB/hB,EAAKR,GAC7B,IAAIwR,EAAQ+Q,GAAW/hB,EAAKR,GAC5B,GAAKwR,EAAQ,GAAKA,EAAQxR,EACzB,MAAM,IAAImP,WAAYnS,EAAQ,yFAA0FgD,EAAKQ,IAE9H,OAAOgR,CACR,EAzDC4Q,MAyBD,SAA6B5hB,EAAKR,GACjC,GAAKQ,EAAM,GAAKA,EAAMR,EACrB,MAAM,IAAImP,WAAYnS,EAAQ,yFAA0FgD,EAAKQ,IAE9H,OAAOA,CACR,GAuFA,SAASke,GAAS/G,GACjB,IAAM8K,GAAa9K,GAClB,MAAM,IAAI5b,UAAWiB,EAAQ,iFAAkF2a,IAEhH,OAAO0F,GAAO1F,EACf,CC9EA,SAASC,GAAKpX,EAAKR,EAAK2X,GACvB,IAAInG,EACJ,GAAc,UAATmG,EACJ,OAAO2qB,GAAY9hC,EAAKR,GAEzB,GAAc,SAAT2X,EACJ,OAAO4qB,GAAW/hC,EAAKR,GAMxB,GAJAwR,EAAQhR,EACM,cAATmX,IACJnG,EAAQykB,GAAgBzkB,EAAOxR,IAE3BwR,EAAQ,GAAKA,EAAQxR,EACzB,MAAM,IAAImP,WAAYnS,EAAQ,yFAA0FgD,EAAKQ,IAE9H,OAAOgR,CACR,CCEA5S,EAAAnH,GAAA,UAAAinB,ICjEA,IAAIvlB,GAAOspC,GAAO5pC,UAAU+9B,KCA5B,IAAIz9B,GAAOspC,GAAO5pC,UAAU6pC,KCO5B,SAAS/gC,GAAMpB,EAAKqB,GACnB,IAAI3J,EACAD,EAGJ,IADAC,EAAM,GACAD,EAAI,EAAGA,EAAI4J,EAAK5J,IACrBC,EAAI8E,KAAMwD,EAAKvI,IAEhB,OAAOC,CACR,CCSA,IAAI8jB,GAAW,MAEX4mB,GAAazrB,GAASzY,IAAK,cAC3Bo3B,IAAW,EA2Cf,SAASnjB,GAAS9R,EAAOoF,EAAQpG,EAAOJ,EAASK,EAAQwD,EAAO8N,GAC/D,IAAIrR,EACAsR,EACArT,EACA8D,EACA8B,EAEJ,KAAOyJ,gBAAgBsF,IACtB,OAAKxW,UAAU1D,OAAS,EAChB,IAAIka,GAAS9R,EAAOoF,EAAQpG,EAAOJ,EAASK,EAAQwD,GAErD,IAAIqP,GAAS9R,EAAOoF,EAAQpG,EAAOJ,EAASK,EAAQwD,EAAO8N,GAEnE,IAAM8N,GAAYre,GACjB,MAAM,IAAI7E,UAAWiB,EAAQ,uFAAwF4D,IAEtH,IAAMyK,GAAcrF,GACnB,MAAM,IAAIjK,UAAWiB,EAAQ,8GAA+GgJ,IACtI,GAAKA,EAAOvH,KAAOuH,EAAOtH,OAAUqO,GAAY/G,EAAOvH,OAAUsO,GAAY/G,EAAOtH,MAC1F,MAAM,IAAI3C,UAAWiB,EAAQ,+FAAgGgJ,IAE9H,IAAMg8B,GAA2BpiC,MAC1ByL,GAAczL,IAAUA,EAAMpH,OAAS,GAC5C,MAAM,IAAIuD,UAAWiB,EAAQ,8GAA+G4C,IAI9I,IADAE,EAAQF,EAAMpH,QACDujB,GACZ,MAAM,IAAI5M,WAAYnS,EAAQ,8FAA+F+e,GAAUjc,IAExI,IAAMmiC,GAAgBziC,GACrB,MAAM,IAAIzD,UAAWiB,EAAQ,mGAAoGwC,IAElI,GAAKM,EAAQ,GACZ,GAAKN,EAAQhH,SAAWsH,EACvB,MAAM,IAAIqP,WAAYnS,EAAQ,2IAA4I8C,EAAON,EAAQhH,aAEpL,IAAwB,IAAnBgH,EAAQhH,OACnB,MAAM,IAAI2W,WAAY,yGAChB,GAAsB,IAAjB3P,EAAS,GACpB,MAAM,IAAI2P,WAAYnS,EAAQ,2FAA4FwC,EAAS,IACnI,CACD,IAAMwL,GAAsBnL,GAC3B,MAAM,IAAI9D,UAAWiB,EAAQ,+EAAgF6C,IAE9G,IAAM2jB,GAASngB,GACd,MAAM,IAAItH,UAAWiB,EAAQ,2EAA4EqG,IAE1G,GAAKvD,EAAQ,IAAMsf,GAA0BpZ,EAAOxN,OAAQoH,EAAOJ,EAASK,IAAY4B,GAAO7B,GAAU,EACxG,MAAM,IAAIpG,MAAO,8NAKlB,IAHA4X,EAAO,CAAA,GACFuG,KAAOgrB,GACZvxB,EAAKslB,SAAWb,GACX35B,UAAU1D,OAAS,IACvBuF,ECxGF,SAAmBqT,EAAMD,GACxB,IAAInZ,EACJ,IAAMkL,GAAUiO,GACf,OAAO,IAAIpV,UAAWiB,EAAQ,qEAAsEmU,IAErG,GAAK7O,GAAY6O,EAAS,UACzBC,EAAKuG,KAAOxG,EAAQwG,MACd8K,GAAarR,EAAKuG,OACvB,OAAO,IAAI5b,UAAWiB,EAAQ,uEAAwE,OAAQoU,EAAKuG,OAGrH,GAAKrV,GAAY6O,EAAS,WAAc,CAEvC,GADAC,EAAKwxB,QAAUzxB,EAAQyxB,SACjB13B,GAAmBkG,EAAKwxB,SAC7B,OAAO,IAAI7mC,UAAWiB,EAAQ,0FAA2F,UAAWoU,EAAKwxB,UAE1I,GAA6B,IAAxBxxB,EAAKwxB,QAAQpqC,OACjB,OAAO,IAAIuD,UAAWiB,EAAQ,0FAA2F,UAAWoU,EAAKwxB,QAAQryB,KAAM,OAExJ,IAAMvY,EAAI,EAAGA,EAAIoZ,EAAKwxB,QAAQpqC,OAAQR,IACrC,IAAMyqB,GAAarR,EAAKwxB,QAAS5qC,IAChC,OAAO,IAAI+D,UAAWiB,EAAQ,wEAAyEoU,EAAKwxB,QAAS5qC,KAGvHoZ,EAAKwxB,QAAUxxB,EAAKwxB,QAAQ/lC,OAC5B,CACD,OAAKyF,GAAY6O,EAAS,cACzBC,EAAKslB,SAAWvlB,EAAQulB,UAClB9qB,GAAWwF,EAAKslB,WACd,IAAI36B,UAAWiB,EAAQ,+DAAgE,WAAYoU,EAAKslB,WAG1G,IACR,CDuEQwL,CAAU9wB,EAAMD,GACjBpT,GACJ,MAAMA,EAiBR,OAdAqP,KAAK2pB,MAAQ3lB,EAAKuG,UACI,IAAjBvG,EAAKwxB,UACTxxB,EAAKwxB,QAAU,CAAEx1B,KAAK2pB,QAEvB3pB,KAAK4pB,SAAW5lB,EAAKwxB,QAGrB/gC,EAAKF,GAAM/B,EAAOE,GAClB6D,EAAKhC,GAAMnC,EAASM,GAAS,GAG7B2iC,GAAO3oC,KAAMsT,KAAMxM,EAAOoF,EAAQnE,EAAI8B,EAAI9D,EAAQwD,GAClD+J,KAAKsoB,OAAOG,SAAWzkB,EAAKslB,SAErBtpB,IAGR,EErHA,SAAkBvH,EAAMg9B,GACvB,IAAI9kC,EAAMmkC,GAAUr8B,GACpB,GAAK9H,EACJ,MAAMA,EAGP,GADAA,EAAMmkC,GAAUW,GAEf,MAAM9kC,EAEP,QAAoC,IAAxB8kC,EAAUhqC,UACrB,MAAM,IAAIkD,UAAWiB,EAAQ,8GAA+G6lC,EAAUhqC,YAGvJgN,EAAKhN,UAAYiqC,GAAcD,EAAUhqC,WAGzClB,EAAgBkO,EAAKhN,UAAW,cAAe,CAC9CgG,cAAgB,EAChBC,YAAc,EACdC,UAAY,EACZlH,MAASgO,GAIX,CFgGAk9B,CAASrwB,GAAS+vB,IAclB7jC,EAAa8T,GAAS,OAAQ,WA0BnBhT,EAAEgT,GAAQ7Z,UAAW,OGlLhC,WACC,IAAI2H,EACAoX,EACAzF,EACAna,EAEJ,GAAKkE,UAAU1D,SAAW4U,KAAK8nB,OAC9B,MAAM,IAAI/lB,WAAYnS,EAAQ,sGAAuGoQ,KAAK8nB,OAAQh5B,UAAU1D,SAI7J,IAFAgI,EAAM4M,KAAK+nB,QACXhjB,EAAI/E,KAAK4pB,SAASx+B,OACZR,EAAI,EAAGA,EAAIkE,UAAU1D,OAAQR,IAAM,CACxC,IAAM6S,GAAW3O,UAAWlE,IAC3B,MAAM,IAAI+D,UAAWiB,EAAQ,iFAAkFhF,EAAGkE,UAAWlE,KAE9H4f,EAAMorB,GAAU9mC,UAAWlE,GAAKoV,KAAKioB,OAAQr9B,GAAI,EAAGoV,KAAK4pB,SAAUh/B,EAAEma,IACrE3R,GAAO4M,KAAKkoB,SAAUt9B,GAAM4f,CAC5B,CACD,OAAKxK,KAAKmoB,WACFnoB,KAAKyB,QAAQpQ,IAAK+B,GAEnB4M,KAAKyB,QAASrO,EACtB,IHsLWd,EAAEgT,GAAQ7Z,UAAW,QHvMhC,SAAe2H,GACd,GAAK4M,KAAK8nB,OAAS,EAAI,CACtB,IAAMrqB,GAAWrK,GAChB,MAAM,IAAIzE,UAAWiB,EAAQ,2DAA4DwD,IAG1F,OADAA,EAAMwiC,GAAUxiC,EAAK4M,KAAKwB,QAAQ,EAAGxB,KAAK2pB,OACnC59B,GAAKW,KAAMsT,KAAM5M,EACxB,CACD,OAAOrH,GAAKW,KAAMsT,KACnB,IGiOW1N,EAAEgT,GAAQ7Z,UAAW,OI7OhC,WACC,IAAI2H,EACAoX,EACAzF,EACAna,EAEJ,GAAKoV,KAAKsoB,OAAOG,SAChB,MAAM,IAAIr8B,MAAO,0DAElB,GAAK0C,UAAU1D,SAAW4U,KAAK8nB,OAAO,EACrC,MAAM,IAAI/lB,WAAYnS,EAAQ,sGAAuGoQ,KAAK8nB,OAAQh5B,UAAU1D,SAI7J,IAFAgI,EAAM4M,KAAK+nB,QACXhjB,EAAI/E,KAAK4pB,SAASx+B,OACZR,EAAI,EAAGA,EAAIkE,UAAU1D,OAAO,EAAGR,IAAM,CAC1C,IAAM6S,GAAW3O,UAAWlE,IAC3B,MAAM,IAAI+D,UAAWiB,EAAQ,iFAAkFhF,EAAGkE,UAAWlE,KAE9H4f,EAAMorB,GAAU9mC,UAAWlE,GAAKoV,KAAKioB,OAAQr9B,GAAI,EAAGoV,KAAK4pB,SAAUh/B,EAAEma,IACrE3R,GAAO4M,KAAKkoB,SAAUt9B,GAAM4f,CAC5B,CAMD,OALKxK,KAAKmoB,WACTnoB,KAAKyB,QAAQnQ,IAAKxC,UAAWlE,GAAKwI,GAElC4M,KAAKyB,QAASrO,GAAQtE,UAAWlE,GAE3BoV,IACR,IJqPW1N,EAAEgT,GAAQ7Z,UAAW,QF3QhC,SAAe2H,EAAKoC,GACnB,GAAKwK,KAAKsoB,OAAOG,SAChB,MAAM,IAAIr8B,MAAO,0DAElB,GAAK4T,KAAK8nB,OAAS,EAAI,CACtB,IAAMrqB,GAAWrK,GAChB,MAAM,IAAIzE,UAAWiB,EAAQ,2DAA4DwD,IAE1FA,EAAMwiC,GAAUxiC,EAAK4M,KAAKwB,QAAQ,EAAGxB,KAAK2pB,OAC1C59B,GAAKW,KAAMsT,KAAM5M,EAAKoC,EACxB,MACEzJ,GAAKW,KAAMsT,KAAM5M,GAElB,OAAO4M,IACR,IO5BA,IAAI61B,GAAQ/rB,GAASzY,IAAK,kBACtBu6B,GAAQ9hB,GAASzY,IAAK,SA+B1B,SAAS0+B,GAAOv9B,GACf,IAAIuR,EACAvQ,EACAyC,EAEA+N,EAEAxP,EACA+B,EACA9B,EAGJ,GADAuP,EAAO,CAAA,EACFlV,UAAU1D,OAAS,EAAI,CAE3B,IAAMsd,GADN3E,EAAUjV,UAAW,IAEpB,MAAM,IAAIH,UAAWiB,EAAQ,qEAAsEmU,IAGnGvQ,EADI0B,GAAY6O,EAAS,SACjBA,EAAQvQ,MAERqiC,GAGR5/B,EADIf,GAAY6O,EAAS,SACjBA,EAAQ9N,MAER21B,GAEJ12B,GAAY6O,EAAS,UACzBC,EAAKuG,KAAOxG,EAAQwG,MAEhBrV,GAAY6O,EAAS,aACzBC,EAAKwxB,QAAUzxB,EAAQyxB,QAE1B,MACEhiC,EAAQqiC,GACR5/B,EAAQ21B,GAET,GAAKphC,GAAUgI,GACdiC,EAAK,CAAEjC,OACD,KAAKyhC,GAAazhC,GAGxB,MAAM,IAAI7D,UAAWiB,EAAQ,0HAA2H4C,IAFxJiC,EAAKjC,CAGL,CAED,GADQiC,EAAGrJ,OACE,EAAI,CAEhB,IADAoJ,EAAMH,GAAOI,KACAD,GAAOA,EAAM,EAEzB,MAAM,IAAI7F,UAAWiB,EAAQ,0HAA2H4C,IAEzJ+D,EAAKP,GAAevB,EAAIwB,EAC1B,MAEEzB,EAAM,EACN+B,EAAK,CAAE,GAOR,OAAO,IAAI+O,GAAS9R,EALL,WAAVA,EACE03B,GAAa12B,GAEb07B,GAAY17B,EAAKhB,GAEQiB,EAAI8B,EAAIG,GAAgBjC,EAAI8B,GAAMN,EAAO+N,EAC1E,CChGA,SAASzP,GAAMD,GACd,IAAIzJ,EACA2J,EACAnD,EACAzG,EAUJ,IAPAyG,EAAMguB,GAAe/qB,GAGrBE,EAAMF,EAAElJ,OAGRP,EAAM,GACAD,EAAI,EAAGA,EAAI4J,EAAK5J,IACrBC,EAAI8E,KAAM0B,EAAKiD,EAAG1J,IAEnB,OAAOC,CACR,CCEA,SAASirC,GAAUxhC,EAAG8P,EAAO3Z,GAC5B,IAAI+J,EACA5J,EAYJ,IAVA4J,EAAMF,EAAElJ,OACHgZ,EAAQ,GACZA,GAAS5P,GACI,IACZ4P,EAAQ,GAEEA,EAAQ5P,IACnB4P,EAAQ5P,GAETF,EAAE3E,KAAM2E,EAAGE,EAAI,IACT5J,EAAI4J,EAAI,EAAG5J,GAAKwZ,EAAOxZ,IAC5B0J,EAAG1J,EAAE,GAAM0J,EAAG1J,GAGf,OADA0J,EAAG8P,GAAU3Z,EACN6J,CACR,CC2DA,SAASyhC,GAASzhC,EAAG6F,EAAWgI,GAC/B,IAAIrR,EACJ,OA9FD,SAAoBA,EAAK+d,GACxB,MAAkC,mBAAlB/d,EAAK+d,EACtB,CA4FMC,CAAWxa,EAAG,SACXA,EAAE0hC,MAAO77B,EAAWgI,IAE5BrR,EAAMgU,GAAkBxQ,IACfwD,iBA3CV,SAAoBxD,EAAG6F,EAAWgI,GACjC,IAAIjL,EACA7F,EACAzG,EAKJ,IAHAsM,EAAO5C,EAAE4C,KACT7F,EAAMiD,EAAEyD,UAAW,GAEbnN,EAAI,EAAGA,EAAIsM,EAAK9L,OAAQR,IAC7B,IAAMuP,EAAUzN,KAAMyV,EAAS9Q,EAAK6F,EAAMtM,GAAKA,EAAGsM,GACjD,OAAO,EAGT,OAAO,CACR,CA8BSa,CAAWjH,EAAKqJ,EAAWgI,GA5EpC,SAAmB7N,EAAG6F,EAAWgI,GAChC,IAAIvX,EACJ,IAAMA,EAAI,EAAGA,EAAI0J,EAAElJ,OAAQR,IAC1B,IAAMuP,EAAUzN,KAAMyV,EAAS7N,EAAG1J,GAAKA,EAAG0J,GACzC,OAAO,EAGT,OAAO,CACR,CAsEQya,CAAUza,EAAG6F,EAAWgI,EAChC,qCC7GA,SAAS8zB,KACR,OAAOtjB,GAAKljB,OACb,CCGA+B,EAAAnH,GAAA,QCLA,WAEC,MAAO,CAEN,YAAa,IAGb,eAAgB,IAElB,ICCA,IAAI6rC,GAAW7kB,GAAU4kB,MCGzB,SAASrjC,GAAK0B,EAAGuR,GAChB,OAAKvR,EAAIuR,EACDvR,EAEDuR,CACR,CC8BA,SAASswB,GAAapxB,EAAGhL,EAAGq8B,EAAGC,EAAUC,EAAUC,EAASjiC,EAAGqoB,EAASC,GACvE,IAAI4Z,EACAC,EACAC,EACA9rB,EACAG,EACA4rB,EACAzxB,EACA2F,EACAG,EACA4rB,EACA7pB,EAGJ,GAAKhI,GAAK,GAAKhL,GAAK,EACnB,OAAQ,EAIT,GAFA68B,EAAK9xB,GAAkBsxB,GACvBrpB,EAAKjI,GAAkBxQ,GAClBsiC,EAAG9+B,kBAAoBiV,EAAGjV,iBAC9B,OCHF,SAAsBiN,EAAGhL,EAAGq8B,EAAGC,EAAUC,EAAUC,EAASjiC,EAAGqoB,EAASC,GACvE,IAAI4Z,EACAK,EACAz/B,EACA0/B,EACA1xB,EACAqxB,EACAC,EACA9rB,EACAG,EACA4rB,EACAzxB,EACA2F,EACAG,EAWJ,GARA6rB,EAAOT,EAAEl/B,KACTE,EAAO9C,EAAE4C,KAGT4/B,EAAOV,EAAEr+B,UAAW,GACpBqN,EAAO9Q,EAAEyD,UAAW,GAGfygB,GAAY,CAAE6d,EAAUC,IAAe,CAK3C,IAJA1rB,EAAK7Q,EACLgR,EAAKhG,EAGCiG,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAG7B,IAFA2rB,EAAKJ,EAAYvrB,EAAGqrB,EACpBnxB,EAAK0X,EACC/R,EAAK,EAAGA,EAAKD,GACbksB,EAAMD,EAAMF,KAASvxB,EAAMhO,EAAM8N,GADhB2F,IAKtB8rB,GAAML,EACNpxB,GAAMyX,EAGP,GAAK9R,IAAOD,EACX,OAAOI,CAER,CAED,OAAQ,CACR,CAeD,IAZAD,EAAKhR,EAGL08B,EAAMJ,EACNK,EAAMJ,GALN1rB,EAAK7F,GAKiBsxB,EAGtBG,EAAUhL,GAAMzmB,GAGhB4xB,EAAKJ,EACLrxB,EAAK0X,EACC5R,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAE7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBisB,EAAMD,EAAMF,KAASvxB,EAAMhO,EAAM8N,KAErCsxB,EAAS3rB,GAAO,GAEjB8rB,GAAMF,EAEPE,GAAMD,EACNxxB,GAAMyX,CACN,CAED,IAAM9R,EAAK,EAAGA,EAAKD,GACK,IAAlB4rB,EAAS3rB,GADQA,KAKvB,OAASA,IAAOD,GAAQ,EAAIC,CAC7B,CD9ES9S,CAAWgN,EAAGhL,EAAG68B,EAAIP,EAAUC,EAAUC,EAASxpB,EAAI4P,EAASC,GAGvE,GAAKpE,GAAY,CAAE6d,EAAUC,IAAe,CAK3C,IAJA1rB,EAAK7Q,EACLgR,EAAKhG,EAGCiG,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAG7B,IAFA2rB,EAAKJ,EAAYvrB,EAAGqrB,EACpBnxB,EAAK0X,EACC/R,EAAK,EAAGA,EAAKD,GACbwrB,EAAGO,KAASriC,EAAG4Q,GADE2F,IAKtB8rB,GAAML,EACNpxB,GAAMyX,EAGP,GAAK9R,IAAOD,EACX,OAAOI,CAER,CAED,OAAQ,CACR,CAeD,IAZAD,EAAKhR,EAGL08B,EAAMJ,EACNK,EAAMJ,GALN1rB,EAAK7F,GAKiBsxB,EAGtBG,EAAUhL,GAAMzmB,GAGhB4xB,EAAKJ,EACLrxB,EAAK0X,EACC5R,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAE7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBurB,EAAGO,KAASriC,EAAG4Q,KAEnBsxB,EAAS3rB,GAAO,GAEjB8rB,GAAMF,EAEPE,GAAMD,EACNxxB,GAAMyX,CACN,CAED,IAAM9R,EAAK,EAAGA,EAAKD,GACK,IAAlB4rB,EAAS3rB,GADQA,KAKvB,OAASA,IAAOD,GAAQ,EAAIC,CAC7B,CEhHA,SAASsrB,GAAapxB,EAAGhL,EAAGq8B,EAAGC,EAAUC,EAAUC,EAASjiC,EAAGqoB,EAASC,GACvE,OAAO7wB,GAAMgZ,EAAGhL,EAAGq8B,EAAGC,EAAUC,EAAUC,EAASjiC,EAAGqoB,EAASC,EAChE,CCVAprB,GCcA,SAAsByE,EAAO8O,EAAGhL,EAAGq8B,EAAGW,EAAKziC,EAAGqoB,GAC7C,IAAIqa,EACAC,EACApkC,EACJ,IAAMqjC,GAAUjgC,GACf,MAAM,IAAItH,UAAWiB,EAAQ,uEAAwEqG,IAOtG,GAAK8gC,EAAMnkC,GAAK,EAJfC,EADI2lB,GAAYviB,GACZ8D,EAEAgL,GAGJ,MAAM,IAAIhD,WAAYnS,EAAQ,4FAA6FiD,EAAGkkC,IAS/H,OAPK7gC,GAAeD,IACnB+gC,EAAM,EACNC,EAAMF,IAENC,EAAMD,EACNE,EAAM,GAEAlrC,GAAMgZ,EAAGhL,EAAGq8B,EAAGY,EAAKC,EAAK,EAAG3iC,EAAGqoB,EAAS7iB,GAAeC,EAAG4iB,GAClE,GDrCA,UAAArX,mCEiBA,SAASwvB,GAAU9wB,EAAMtR,EAAOwX,EAAQnG,GACvC,IAAI1B,EACJ,IAAMvM,GAAUiO,GACf,OAAO,IAAIpV,UAAWiB,EAAQ,qEAAsEmU,IAErG,GAAK7O,GAAY6O,EAAS,cACzBC,EAAKkzB,SAAWnzB,EAAQmzB,UAClB14B,GAAWwF,EAAKkzB,WACrB,OAAO,IAAIvoC,UAAWiB,EAAQ,+DAAgE,WAAYoU,EAAKkzB,WAGjH,GAAKhiC,GAAY6O,EAAS,QAAW,CAEpC,GADAC,EAAKglB,KAAOjlB,EAAQilB,MACd6L,GAAgB7wB,EAAKglB,QAAWgL,GAAmBhwB,EAAKglB,MAC7D,OAAO,IAAIr6B,UAAWiB,EAAQ,0EAA2E,OAAQoU,EAAKglB,OAGvH,GAAa,QADb3mB,EAAMqxB,GAAkB1vB,EAAKglB,KAAMt2B,EAAM,IAExC,OAAO,IAAIqP,WAAYnS,EAAQ,uFAAwF,OAAQuT,GAAMa,EAAKglB,KAAM,OAEjJ,GAAK3mB,EAAIjX,SAAW4Y,EAAKglB,KAAK59B,OAC7B,OAAO,IAAIgB,MAAOwD,EAAQ,wEAAyE,OAAQuT,GAAMa,EAAKglB,KAAM,OAE7HhlB,EAAKglB,KAAO3mB,CACZ,CACD,OAAKnN,GAAY6O,EAAS,WACzBC,EAAKxQ,MAAQod,GAAY7M,EAAQvQ,QAC3B6d,GAAUnH,EAAQlG,EAAKxQ,QACrB,IAAI7E,UAAWiB,EAAQ,gFAAiF,QAASuT,GAAM+G,EAAQ,QAAUnG,EAAQvQ,QAGnJ,IACR,CCzBA,IAAIo8B,GAAgB9lB,GAASzY,IAAK,SAmDlC,SAAS8lC,GAAyBnd,EAAOod,EAASC,EAAS/hB,GAC1D,IAAIhe,EACA1M,EACJ,KAAQoV,gBAAgBm3B,IACvB,OAAO,IAAIA,GAAyBnd,EAAOod,EAASC,EAAS/hB,GAE9D,IAAMxf,GAAUkkB,GACf,MAAM,IAAIrrB,UAAWiB,EAAQ,mEAAoEoqB,IAElG,IAAMra,GAAYqa,EAAM1mB,SACvB,MAAM,IAAI3E,UAAWiB,EAAQ,6GAE9B,GAAKkjB,GAASkH,EAAO,WAAc/b,GAAc+b,EAAMsd,SAAYtD,GAAmBha,EAAMsd,OAC3F,MAAM,IAAI3oC,UAAWiB,EAAQ,iIAE9B,GAAKkjB,GAASkH,EAAO,UAAaoa,GAAiBpa,EAAM4J,QAAWoQ,GAAmBha,EAAM4J,MAC5F,MAAM,IAAIj1B,UAAWiB,EAAQ,qJAE9B,IAAMqO,GAAcm5B,GACnB,MAAM,IAAIzoC,UAAWiB,EAAQ,+EAAgFwnC,IAG9G,IADAA,EAAU7iC,GAAM6iC,GACVxsC,EAAI,EAAGA,EAAIwsC,EAAQhsC,OAAQR,IAAM,CAEtC,IACEqT,GAFF3G,EAAK8/B,EAASxsC,KAGb0M,EAAGlM,OAAS,IACX2qC,GAASz+B,EAAIua,IAEd,MAAM,IAAIljB,UAAWiB,EAAQ,oFAAqFwnC,IAEnHA,EAASxsC,GAAM0pC,GAAgBh9B,EAC/B,CACD,IACE2G,GAAco5B,IACfA,EAAQjsC,OAAS,IAChB2qC,GAASsB,EAASxlB,IAEnB,MAAM,IAAIljB,UAAWiB,EAAQ,gFAAiFynC,IAI/G,GAFAA,EAAU/C,GAAgB+C,IAEpBvhC,GAAUwf,GACf,MAAM,IAAI3mB,UAAWiB,EAAQ,oEAAqEoqB,IAEnG,IAAMlC,GAAwBxC,EAASI,QACtC,MAAM,IAAI/mB,UAAWiB,EAAQ,+GAAgH0lB,EAASI,SAEvJ,IAAME,GAAsBN,EAASlE,SACpC,MAAM,IAAIziB,UAAWiB,EAAQ,sGAAuG0lB,EAASlE,UAO9I,GALApR,KAAKu3B,OAAS,CACbjkC,QAAW0mB,EAAM1mB,QACjBgkC,MAAWtd,EAAW,MAAKqa,GAAcra,EAAMsd,OAAU,GACzD1T,KAAU5J,EAAU,KAAKzlB,GAAMylB,EAAM4J,MAAS,IAE1C5jB,KAAKu3B,OAAOD,MAAMlsC,SAAW,EAAI4U,KAAKu3B,OAAO3T,KAAKx4B,OACtD,MAAM,IAAIgB,MAAO,gKAQlB,OANA4T,KAAKw3B,SAAWJ,EAChBp3B,KAAKy3B,SAAWJ,EAChBr3B,KAAK03B,UAAY,CAChBhiB,OAAUJ,EAASI,OACnBtE,QAAWkE,EAASlE,SAEdpR,IACR,CChJA,SAAS0zB,GAAkBhuB,EAAS9S,GACnC,IAAIQ,EACAkP,EACA1X,EAEJ,IAAMA,EAAI,EAAGA,EAAI8a,EAAQta,OAAQR,KAElB,KADdwI,EAAMy1B,GAAgBnjB,EAAS9a,GAAKgI,MAEnC0P,EAAM,MAEPoD,EAAS9a,GAAMwI,EAEhB,OAAiB,OAARkP,EAAiBA,EAAMoD,CACjC,CCkCA,SAASiyB,GAAgCxkC,EAAKX,EAAOw2B,GACpD,IAAI52B,EACAgB,EACAw1B,EACAn0B,EACA8B,EACAqhC,EACA79B,EACAgL,EACAmhB,EACAt7B,EACA8D,EACA2Y,EAWJ,GARA7U,EAAQ+B,GAAM/B,GACdY,EAAMmB,GAAMy0B,GAGZv0B,EAAK+C,GAAUrE,GAAK,IAEpB4G,EAAIvH,EAAMpH,SACV2Z,EAAItQ,EAAGrJ,QAEN,MAAM,IAAIgB,MAAO,gKAQlB,GALAgG,EAAU1H,GAAOqP,GAGjB69B,EAAKxkC,EAAIhI,OAEI,QADbgI,EAAMsgC,GAAkBtgC,EAAK2R,EAAE,IAE9B,MAAM,IAAIhD,WAAYnS,EAAQ,2FAA4FuT,GAAM6lB,EAAM,OAGvI,GADA51B,EAAIwQ,OACCxQ,EAAIhI,SAAWwsC,EACnB,MAAM,IAAIxrC,MAAOwD,EAAQ,iGAAkGuT,GAAM6lB,EAAM,OAMxI,IAJA3hB,EAAIjU,EAAIhI,OAAS,EAGjBmL,EAAKoB,GAAYxE,GAAK,GAChBvI,EAAImP,EAAE,EAAGnP,GAAK,EAAGA,IAKtB,MAHA8D,EAAIqW,EAAIhL,EAAInP,GAGH,GAIT,GAAKyc,GAAK,GAAKjU,EAAKiU,KAAQ3Y,EAC3B8D,EAAO5H,GAAM6J,EAAI/F,GACjB0D,EAASxH,GAAM2L,EAAI7H,GACnB2Y,GAAK,MAHN,CASA,GAFA6e,EAAIzxB,EAAI/F,GAEK,KADbk6B,EAAMp2B,EAAO5H,KACKg+B,EAAM1C,EACvB,MAAM,IAAI95B,MAAOwD,EAAQ,8PAA+P2E,GAAME,GAAK0O,KAAM,MAAQ5O,GAAM/B,GAAQ2Q,KAAM,MAAQvY,IAE9U,GAAKs7B,IAAM0C,EACVx2B,EAASxH,GAAM2L,EAAI7H,OACb,IAAW,IAANw3B,EAKX,MAAM,IAAI95B,MAAOwD,EAAQ,2IAA4I2E,GAAME,GAAK0O,KAAM,MAAQ5O,GAAM/B,GAAQ2Q,KAAM,MAAQvY,IAH1NwH,EAASxH,GAAM,CAIf,CAfA,CAiBF,OAAO0a,GAAS7N,GAAUtE,GAAOoE,GAASpE,GAAOX,EAAOJ,EAASwF,GAAWzE,GAAO0E,GAAU1E,GAC9F,CCeA,SAAS0kC,GAAiBC,GACzB,IAAIplC,EACA7H,EACA+9B,EACAn0B,EACAsjC,EACAC,EACA9R,EACAnhB,EACAhL,EACAnP,EACA8D,EAIJ,GADA7D,EAAM,GACK,KAFXka,EAAI+yB,EAAO1sC,QAGV,OAAOP,EAMR,GAHAkP,GADAtF,EAAKqjC,EAAQ,IACN1sC,OAGI,IAAN2Z,EAAU,CAEd,IAAMna,EAAI,EAAGA,EAAImP,EAAGnP,IACnBC,EAAI8E,KAAM8E,EAAI7J,IAEf,OAAOC,CACP,CAGD,IADA6H,EAAQ,CAAEqH,GACJnP,EAAI,EAAGA,EAAIma,EAAGna,IACnB8H,EAAM/C,KAAMmoC,EAAQltC,GAAIQ,QACnBsH,EAAO9H,GAAMmP,IACjBA,EAAIrH,EAAO9H,IAIb,IAAMA,EAAI,EAAGA,EAAImP,EAAGnP,IACnBC,EAAI8E,KAAM,GAIX,IADA/E,EAAImP,EAAI,EACAnP,GAAK,GAAI,CAOhB,IAJCg+B,GAFDmP,EAAKrlC,EAAO,GAAMqH,EAAInP,IACX,EACJ6J,EAAIsjC,GAEJ,EAEDrpC,EAAI,EAAGA,EAAIqW,EAAGrW,IAOnB,GAJCw3B,GAFD8R,EAAKtlC,EAAOhE,GAAMqL,EAAInP,IACX,EACNktC,EAAQppC,GAAKspC,GAEb,EAEQ,IAARpP,GAIL,GAAW,IAAN1C,GAAW0C,IAAQ1C,EAKxB,OAAO,UARN0C,EAAM1C,EAURr7B,EAAKD,GAAMg+B,EACXh+B,GAAK,CACL,CACD,OAAOC,CACR,CHhBA2G,EAAa2lC,GAAwB1rC,UAAW,SAAS,SAAgB6I,EAAGuR,GAC3E,IAAI9B,EACAlC,EACAhS,EACAmU,EACAsiB,EACAC,EACAwM,EACApiC,EACAyC,EACA0yB,EACAC,EACAkS,EACA9kC,EACAkP,EACA61B,EACAC,EACAC,EACA9gC,EAEAyC,EACAgH,EACAnW,EACA8D,EAGJ,GADAmT,EAAQ/S,UAAU1D,QACZk/B,GAAeh2B,GACpB,MAAM,IAAI3F,UAAWiB,EAAQ,gFAAiF0E,IAE/G,IAAMg2B,GAAezkB,GACpB,MAAM,IAAIlX,UAAWiB,EAAQ,iFAAkFiW,IAGhH,GADAqyB,EAAMzgC,GAAUnD,IACV+c,GAAUrR,KAAKw3B,SAAU,GAAK5mB,GAAYsnB,IAC/C,MAAM,IAAIvpC,UAAWiB,EAAQ,qGAAsGuT,GAAMnD,KAAKw3B,SAAU,GAAK,QAAUU,IAGxK,GADAC,EAAM1gC,GAAUoO,IACVwL,GAAUrR,KAAKw3B,SAAU,GAAK5mB,GAAYunB,IAC/C,MAAM,IAAIxpC,UAAWiB,EAAQ,sGAAuGuT,GAAMnD,KAAKw3B,SAAU,GAAK,QAAUW,IAGzK,IADAtoC,EAAO,CAAEyE,EAAGuR,GACNjb,EAAI,EAAGA,EAAIiX,GAEVyoB,GADNn3B,EAAMrE,UAAWlE,IADMA,IAAM,CAM7B,GADA0M,EAAKG,GAAUtE,IACTke,GAAUrR,KAAKw3B,SAAU5sC,GAAKgmB,GAAYtZ,IAC/C,MAAM,IAAI3I,UAAWiB,EAAQ,kGAAmGhF,EAAGuY,GAAMnD,KAAKw3B,SAAU5sC,GAAK,QAAU0M,IAGxKzH,EAAKF,KAAMwD,EACX,CAED,GAAKvI,EAAIiX,EAAM,EACd,MAAM,IAAIlT,UAAWiB,EAAQ,6EAA8EhF,EAAGkE,UAAWlE,KAK1H,GAFAk7B,EAAMtuB,GAAUlD,GAChByxB,EAAMvuB,GAAUqO,GACXigB,EAAI16B,SAAW26B,EAAI36B,OACvB,MAAM,IAAIgB,MAAOwD,EAAQ,mIAAoIk2B,EAAI16B,OAAQ26B,EAAI36B,SAG9K,IADA2O,EAAI+rB,EAAI16B,OACFsD,EAAI,EAAGA,EAAIqL,EAAGrL,IACnB,GAAKo3B,EAAKp3B,KAAQq3B,EAAKr3B,GACtB,MAAM,IAAItC,MAAOwD,EAAQ,8GAA+GuT,GAAM2iB,EAAK,KAAO3iB,GAAM4iB,EAAK,OAKvK,GADA/hB,EAAOoU,GAAc,GAAIgC,IACpBvY,EAAQjX,IACZmZ,EAAUjV,UAAW+S,EAAM,GAC3BlR,EAAMmkC,GAAU9wB,EAAMjK,EAAGiG,KAAKy3B,SAAU1zB,IAEvC,MAAMpT,EA4DR,OAxDmB,OAAdqT,EAAKglB,OACThlB,EAAKglB,KAAOzjB,GAAQxL,IAMrBk+B,EAAM7F,GAAatM,EAHnB1yB,EAAMq8B,GAAmB11B,EAAGiK,EAAKglB,OAShC+J,GAHDzM,EAAOzuB,GAAUvD,OACjBiyB,EAAO1uB,GAAUgO,IAETygB,EAGAsJ,GAIR7uB,EAAIgvB,GAAOkI,EAAK,CACfzkC,MAFD4kC,EAAMp0B,EAAKxQ,OAAS6kC,GAAsBH,EAAKC,EAAKn4B,KAAK03B,UAAUhiB,QAGlEzf,MAAS88B,IAKJ5e,GAAiB+jB,EADvB5gC,EAAKghC,GAA4BJ,EAAKC,EAAKC,EAAKp4B,KAAK03B,UAAUtmB,YAI9Dte,GAAQ,CAAEwB,EADV+N,EAAMk2B,GAAWjhC,EAAIwuB,EAAKQ,KAE1Bz2B,EAAM,GAAMwS,EACZ61B,EAAM5gC,GAGD6c,GAAiBgkB,EADvB7gC,EAAKghC,GAA4BH,EAAKD,EAAKE,EAAKp4B,KAAK03B,UAAUtmB,YAI9Dte,GAAQ,CAAE+S,EADVxD,EAAMk2B,GAAWjhC,EAAIyuB,EAAKQ,KAE1B12B,EAAM,GAAMwS,EACZ81B,EAAM7gC,GAUPu7B,IAPAjoC,EAAIurC,GAAan2B,KAAKu3B,OAAO3T,KAAKx4B,OAAQ,EAAG4U,KAAKu3B,OAAOD,MAAO,EAAG,EAAG,EAAGjD,GAAc,CAAE6D,EAAKC,IAAS,EAAG,KAChG,EACLn4B,KAAKu3B,OAAO3T,KAAMh5B,GAElBoV,KAAKu3B,OAAOjkC,QAGSwiC,GAAUjmC,EAAM,EAAGkR,GAAKiD,EAAKglB,MAGlDhlB,EAAKkzB,WACTn2B,EAAIwzB,GAAkBx6B,EAAGgH,EAAG3N,GAAK,IAE3B2N,CACR,IAyDAvP,EAAa2lC,GAAwB1rC,UAAW,UAAU,SAASqH,EAAQwB,EAAGuR,GAC7E,IAAI9B,EACAlC,EACAmC,EACAnU,EACAsD,EACAxC,EACA2R,EACAwjB,EACAC,EACAmS,EACAC,EACAC,EACA/1B,EACA/K,EACAyC,EAEAgH,EACAnW,EACA8D,EAGJ,GADAmT,EAAQ/S,UAAU1D,QACZk/B,GAAeh2B,GACpB,MAAM,IAAI3F,UAAWiB,EAAQ,gFAAiF0E,IAE/G,IAAMg2B,GAAezkB,GACpB,MAAM,IAAIlX,UAAWiB,EAAQ,iFAAkFiW,IAIhH,GADAqyB,EAAMzgC,GAAUnD,IACV+c,GAAUrR,KAAKw3B,SAAU,GAAK5mB,GAAYsnB,IAC/C,MAAM,IAAIvpC,UAAWiB,EAAQ,qGAAsGuT,GAAMnD,KAAKw3B,SAAU,GAAK,QAAUU,IAGxK,GADAC,EAAM1gC,GAAUoO,IACVwL,GAAUrR,KAAKw3B,SAAU,GAAK5mB,GAAYunB,IAC/C,MAAM,IAAIxpC,UAAWiB,EAAQ,sGAAuGuT,GAAMnD,KAAKw3B,SAAU,GAAK,QAAUW,IAKzK,GAFArS,EAAMtuB,GAAUlD,GAChByxB,EAAMvuB,GAAUqO,GACXigB,EAAI16B,SAAW26B,EAAI36B,OACvB,MAAM,IAAIgB,MAAOwD,EAAQ,mIAAoIk2B,EAAI16B,OAAQ26B,EAAI36B,SAG9K,IADA2O,EAAI+rB,EAAI16B,OACFsD,EAAI,EAAGA,EAAIqL,EAAGrL,IACnB,GAAKo3B,EAAKp3B,KAAQq3B,EAAKr3B,GACtB,MAAM,IAAItC,MAAOwD,EAAQ,8GAA+GuT,GAAM2iB,EAAK,KAAO3iB,GAAM4iB,EAAK,OAMvK,IAHAl2B,EAAO,CAAEyE,EAAGuR,GAGNjb,EAAI,EAAGA,EAAIiX,GAEVyoB,GADNn3B,EAAMrE,UAAWlE,IADMA,IAKvBiF,EAAKF,KAAMwD,GAGZ,GAAKvI,EAAI,EACR,MAAM,IAAI+D,UAAWiB,EAAQ,gFAAiFd,UAAW,KAGrH,GAAKlE,IAAMiX,EAAM,EACrBkC,EAAUjV,UAAWlE,GACrB0X,GAAM,OAGF,GAAK1X,EAAIiX,EAAM,EACnB,MAAM,IAAIlT,UAAWiB,EAAQ,6EAA8EhF,EAAGkE,UAAWlE,KAM1H,IAHAmW,EAAIlR,EAAK2oC,MAGH5tC,EAAI,EAAGA,EAAIiF,EAAKzE,OAAQR,IAE7B,GADA0M,EAAKG,GAAU5H,EAAMjF,KACfymB,GAAUrR,KAAKw3B,SAAU5sC,GAAKgmB,GAAYtZ,IAC/C,MAAM,IAAI3I,UAAWiB,EAAQ,kGAAmGhF,EAAGuY,GAAMnD,KAAKw3B,SAAU5sC,GAAK,QAAU0M,IAMzK,GAFAyC,EAAIrH,GAAO4B,GACX0P,EAAOoU,GAAc,GAAIgC,IACpB9X,IACJ3R,EAAMmkC,GAAU9wB,EAAMjK,EAAGiG,KAAKy3B,SAAU1zB,IAEvC,MAAMpT,EAmCR,OA/BmB,OAAdqT,EAAKglB,OACThlB,EAAKglB,KAAOzjB,GAAQxL,IAKfoa,GAAiB+jB,EADvB5gC,EAAKghC,GAA4BJ,EAAKC,EADtCC,EAAM3gC,GAAUsJ,GACgCf,KAAK03B,UAAUtmB,YAI9Dte,EAAQ,CAAEwB,EADV+N,EAAMk2B,GAAWjhC,EAAIwuB,EAAKjuB,GAAUvD,MAEpCzE,EAAM,GAAMwS,EACZ61B,EAAM5gC,GAGD6c,GAAiBgkB,EADvB7gC,EAAKghC,GAA4BH,EAAKD,EAAKE,EAAKp4B,KAAK03B,UAAUtmB,YAI9Dte,EAAQ,CAAE+S,EADVxD,EAAMk2B,GAAWjhC,EAAIyuB,EAAKluB,GAAUgO,MAEpChW,EAAM,GAAMwS,EACZ81B,EAAM7gC,GAUPu7B,IAPAjoC,EAAIurC,GAAan2B,KAAKu3B,OAAO3T,KAAKx4B,OAAQ,EAAG4U,KAAKu3B,OAAOD,MAAO,EAAG,EAAG,EAAGjD,GAAc,CAAE6D,EAAKC,IAAS,EAAG,KAChG,EACLn4B,KAAKu3B,OAAO3T,KAAMh5B,GAElBoV,KAAKu3B,OAAOjkC,QAGSwiC,GAAUjmC,EAAM,EAAGkR,GAAKiD,EAAKglB,MAEhDjoB,CACR,IIhhBA,IAAImJ,GAAS,CACZ4gB,OAAU,SACV2N,aAAgB,UAChB1/B,aAAgB,UAChBV,aAAgB,UAChBtK,MAAS,UACT8M,WAAc,QACdC,WAAc,QACdC,UAAa,OACbzQ,OAAU,UACV0Q,YAAe,SACfC,YAAe,SACfxB,WAAc,QACdyB,kBAAqB,SACrBw9B,eAAkB,YAClBv9B,eAAkB,YAClBC,gBAAmB,aACnBC,aAAgB,QCIjB,SAAS0vB,KACR,MAAM,IAAI3+B,MAAO,kBAClB,CAMA,ICxBI6jB,GDwBAvL,GAAQ,CACXrM,GACAU,GACAgyB,GACAjwB,GACAG,GACAJ,GACAG,GACAD,GACAtB,GACAyB,GACA6vB,GACA5vB,GACAC,GACAC,IE3CGsJ,GAAS,CACZ,UACA,UACA,UACA,QACA,SACA,QACA,SACA,OACA,QACA,SACA,YACA,YACA,aACA,QCJGC,GAASD,GAAOvZ,OAkBpB,SAASoI,GAAO/I,GACf,IAAIG,EACJ,GAAKkD,GAASrD,GACb,MAAO,UAER,GAAK4P,GAAU5P,GACd,MAAO,SAER,IAAMG,EAAI,EAAGA,EAAIga,GAAQha,IACxB,GAAKH,aAAiBia,GAAO9Z,GAC5B,OAAO+Z,GAAQ/Z,GAGjB,OAAKH,GAAS4kB,GAAyB5kB,EAAM83B,QACrC93B,EAAM83B,OAGP1d,GAAYnK,GAAiBjQ,KAAa,IAClD,CCxCA,IAAImlC,GAAgB9lB,GAASzY,IAAK,SA4BlC,SAASsnC,GAAe3oB,GACvB,OAAgB,IAAXA,EACG,YAEQ,IAAXA,EACG,eAGD4f,EACR,CCtCA,IAAInlB,GAAO,QCAX,IAAIA,GAAO,QCAX,IAAIA,GAAO,QCqEX,IAAImuB,GAAQ,CCjCZ,SAAuBtkC,GACtB,OAAMA,EAAE4C,KAAM5C,EAAE7B,QAGT,EAFC,CAGT,ECLA,SAAuB6B,GACtB,IAAIukC,EACAzhC,EACAuT,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC1BA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA8BJ,IAzBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECnDA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAkCJ,IA7BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,EC7DA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAsCJ,IAjCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECrEA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA0CJ,IArCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECjFA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA8CJ,IAzCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC3FA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkDJ,IA7CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECrGA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,EC/GA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,ECzHA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GX5FIC,GAAiB,CY3CrB,SAAuBxkC,GACtB,OAAMA,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,QAG3B,EAFC,CAGT,ECLA,SAAuB6B,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAC,EACA1F,EACA2F,EAqBJ,IAhBAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC9BA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EAiCJ,IA5BAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECvDA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAqCJ,IAhCA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,ECjEA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAyCJ,IApCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECzEA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA6CJ,IAxCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECrFA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EAiDJ,IA5CAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC/FA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAqDJ,IAhDAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECzGA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAyDJ,IApDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,ECnHA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA6DJ,IAxDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,EC7HA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAiEJ,IA5DA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GtBtFIE,GAAgB,CuB3DpB,SAAuBzkC,GACtB,OAAQA,EAAE4C,KAAM5C,EAAE7B,SAAY6B,EAAE4C,KAAM5C,EAAE7B,OAAO,GAGxC,EAFC,CAGT,ECLA,SAAuB6B,GACtB,IAAIukC,EACAzhC,EACAuT,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC1BA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA8BJ,IAzBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECnDA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAkCJ,IA7BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,EC7DA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAsCJ,IAjCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECrEA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA0CJ,IArCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECjFA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA8CJ,IAzCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC3FA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkDJ,IA7CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECrGA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,EC/GA,SAAuBvkC,GACtB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,ECzHA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GjClEIG,GAAgB,CkClEpB,SAA8B1kC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EC5EA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECjGA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECpHA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,ECvIA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC1JA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,EC7KA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,EChMA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFxqB,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECnNA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA7X,GAyBJ,IAnBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBzT,EAAM8N,KACX2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,G1C3JII,GAAyB,C2C1E7B,SAA8B3kC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EChFA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECrGA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECxHA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,EC3IA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC9JA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,ECjLA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,ECpMA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFxqB,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECvNA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACA7X,GA4BJ,IAtBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAChBxZ,EAAK+F,EAAM8N,KAChB2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,GnDvJIK,GAAwB,CoDxF5B,SAA8B5kC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EC5EA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECjGA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECpHA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,ECvIA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC1JA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,EC7KA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,EChMA,SAA8BvkC,GAC7B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFxqB,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECnNA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA7X,GAyBJ,IAnBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACdzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,KAC9B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,G5DrIIlqB,GAAWiqB,GAAMxtC,OAAS,E6D5I9B,IAAIqf,GAAO,QCAX,IAAIA,GAAO,QC0CX,IAAImuB,GAAQ,CCCZ,SAAoBtkC,EAAG6F,EAAWgI,GACjC,OAAKhI,EAAUzN,KAAMyV,EAAS7N,EAAE4C,KAAM5C,EAAE7B,QAAU,GAAI6B,EAAEoD,KAChD,EAED,CACR,ECLA,SAAoBpD,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAuT,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAM,CAAE2F,GAAMvW,EAAEoD,OACnDmhC,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,ECvBA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EAgCJ,IA3BAvW,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEuF,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACpEmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECtDA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAoCJ,IA/BA1W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE0F,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACxEmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,EChEA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAwCJ,IAnCA7W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE6F,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OAC5EmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECxEA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA4CJ,IAvCAhX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEgG,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OAChFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECpFA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EAgDJ,IA3CAnX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEmG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACpFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC9FA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAoDJ,IA/CAtX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEsG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACxFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECxGA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAwDJ,IAnDAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEyG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OAC5FmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,EClHA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA4DJ,IAvDA5X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE4G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OAChGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,EC5HA,SAAqBvkC,EAAG6F,EAAWgI,GAClC,IAAI02B,EACAzhC,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAgEJ,IA3DA/X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE+G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACpGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GXpIIC,GAAiB,CYTrB,SAAoBxkC,EAAG6F,EAAWgI,GACjC,OAAKhI,EAAUzN,KAAMyV,EAAS7N,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,QAAU,GAAI6B,EAAEoD,KAClE,EAED,CACR,ECLA,SAAoBpD,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACA/F,EACAsZ,EACAC,EACA1F,EACA2F,EAqBJ,IAhBAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAM,CAAE2F,GAAMvW,EAAEoD,OACxDmhC,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC3BA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EAmCJ,IA9BAvW,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEuF,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACzEmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,EC1DA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAuCJ,IAlCA1W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE0F,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OAC7EmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,ECpEA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EA2CJ,IAtCA7W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE6F,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACjFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,EC5EA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA+CJ,IA1CAhX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEgG,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACrFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECxFA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EAmDJ,IA9CAnX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEmG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACzFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EClGA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAuDJ,IAlDAtX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEsG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OAC7FmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,EC5GA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA2DJ,IAtDAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEyG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACjGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,ECtHA,SAAoBvkC,EAAG6F,EAAWgI,GACjC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA+DJ,IA1DA5X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE4G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACrGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,EChIA,SAAqBvkC,EAAG6F,EAAWgI,GAClC,IAAI02B,EACAzhC,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAmEJ,IA9DA/X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE+G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,OACzGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GtB9HIG,GAAgB,CuBjBpB,SAA2B1kC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEwH,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC1EmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EC9EA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE0H,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACjFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECnGA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE6H,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACxFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECtHA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEgI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC/FmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,ECzIA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEmI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACtGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC5JA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEsI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC7GmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,EC/KA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEyI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACpHmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,EClMA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACA1X,GA0BJ,IApBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFxqB,GAAK5Z,EAAG,GAAI4Z,GAAK,GAStB,IARKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,EAAOsB,GAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE4I,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC3HmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECrNA,SAA4BvkC,EAAG6F,EAAWgI,GACzC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA0BJ,IApBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,GAAKnZ,EAAG,GAAImZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,GAAGhI,EAAG,GACd6H,GAAKhZ,EAAG,GAAIgZ,GAAK,GAUtB,IATKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,GAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE+I,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAClImhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,G/B9MII,GAAyB,CgCzB7B,SAA2B3kC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEwH,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC/EmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EClFA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE0H,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACtFmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECvGA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE6H,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC7FmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,EC1HA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEgI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACpGmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,EC7IA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEmI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAC3GmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EChKA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEsI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAClHmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,ECnLA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EA6BJ,IAvBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEyI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACzHmhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,ECtMA,SAA2BvkC,EAAG6F,EAAWgI,GACxC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACA1X,GA6BJ,IAvBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFxqB,GAAK5Z,EAAG,GAAI4Z,GAAK,GAStB,IARKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,EAAOsB,GAAGzI,EAAG,GACbsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE4I,GAAGhC,EAAI6B,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OAChImhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECzNA,SAA4BvkC,EAAG6F,EAAWgI,GACzC,IAAI02B,EACAjsB,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA6BJ,IAvBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,GAAKnZ,EAAG,GAAImZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,GAAGhI,EAAG,GACd6H,GAAKhZ,EAAG,GAAIgZ,GAAK,GAUtB,IATKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,GAAG7H,EAAG,GACd0H,GAAK7Y,EAAG,GAAI6Y,GAAK,GAUtB,IATKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,GAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjB1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE+I,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,OACvImhC,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,GxC1MIlqB,GAAWiqB,GAAMxtC,OAAS,EyC3F9B,IAAIqf,GAAO,QCAX,IAAIA,GAAO,QCAX,IAAIA,GAAO,QCqEX,ICpEIwF,GDoEA2oB,GAAQ,CEjCZ,SAAwBtkC,GACvB,OAAKA,EAAE4C,KAAM5C,EAAE7B,QACP,EAED,CACR,ECLA,SAAwB6B,GACvB,IAAIukC,EACAzhC,EACAuT,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC1BA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA8BJ,IAzBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECnDA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAkCJ,IA7BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,EC7DA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAsCJ,IAjCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECrEA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA0CJ,IArCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECjFA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA8CJ,IAzCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC3FA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkDJ,IA7CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECrGA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,EC/GA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,ECzHA,SAAyBvkC,GACxB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GZ5FIC,GAAiB,Ca3CrB,SAAwBxkC,GACvB,OAAKA,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,QACzB,EAED,CACR,ECLA,SAAwB6B,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAC,EACA1F,EACA2F,EAqBJ,IAhBAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC9BA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EAiCJ,IA5BAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECvDA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAqCJ,IAhCA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,ECjEA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAyCJ,IApCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECzEA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA6CJ,IAxCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECrFA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EAiDJ,IA5CAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC/FA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAqDJ,IAhDAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECzGA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAyDJ,IApDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,ECnHA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA6DJ,IAxDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,EC7HA,SAAyBvkC,GACxB,IAAIukC,EACAzhC,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAiEJ,IA5DA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB8gC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GvBtFIE,GAAgB,CwB3DpB,SAAwBzkC,GACvB,OAAKA,EAAE4C,KAAM5C,EAAE7B,SAAY6B,EAAE4C,KAAM5C,EAAE7B,OAAO,GACpC,EAED,CACR,ECLA,SAAwB6B,GACvB,IAAIukC,EACAzhC,EACAuT,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFhuB,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEP,OAAOkuB,CACR,EC1BA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA8BJ,IAzBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF7tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAO+tB,CACR,ECnDA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAkCJ,IA7BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF1tB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO4tB,CACR,EC7DA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAsCJ,IAjCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFvtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAOytB,CACR,ECrEA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA0CJ,IArCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFptB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAOstB,CACR,ECjFA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA8CJ,IAzCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFjtB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOmtB,CACR,EC3FA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkDJ,IA7CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF9sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOgtB,CACR,ECrGA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGF3sB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO6sB,CACR,EC/GA,SAAwBvkC,GACvB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFxsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO0sB,CACR,ECzHA,SAAyBvkC,GACxB,IAAIukC,EACAzhC,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT2hC,EAAQ,EAGFrsB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAOusB,CACR,GlClEIG,GAAgB,CmClEpB,SAA+B1kC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EC5EA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECjGA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECpHA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,ECvIA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC1JA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,EC7KA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,EChMA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFxqB,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECnNA,SAAgCvkC,GAC/B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA7X,GAyBJ,IAnBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBzT,EAAM8N,KACV2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,G3C3JII,GAAyB,C4C1E7B,SAA+B3kC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EChFA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECrGA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECxHA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,EC3IA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC9JA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,ECjLA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,ECpMA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EA4BJ,IAtBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFxqB,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECvNA,SAAgCvkC,GAC/B,IAAIukC,EACAjsB,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACA7X,GA4BJ,IAtBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGlB8gC,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACjBxZ,EAAK+F,EAAM8N,KACf2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,GpDvJIK,GAAwB,CqDxF5B,SAA+B5kC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF5rB,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAO+tB,CACR,EC5EA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF1rB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO4tB,CACR,ECjGA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFvrB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAOytB,CACR,ECpHA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFprB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAOstB,CACR,ECvIA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFjrB,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOmtB,CACR,EC1JA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF9qB,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOgtB,CACR,EC7KA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGF3qB,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO6sB,CACR,EChMA,SAA+BvkC,GAC9B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFxqB,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO0sB,CACR,ECnNA,SAAgCvkC,GAC/B,IAAIukC,EACAjsB,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA7X,GAyBJ,IAnBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTizB,EAAQ,EAGFrqB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,KACjBzT,EAAM8N,IAAQ9N,EAAM8N,EAAG,MAC3B2zB,GAAS,GAEV3zB,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAOusB,CACR,G7DrIIlqB,GAAWiqB,GAAMxtC,OAAS,ya8DrH9B,SAAS+tC,GAAmBjvB,EAAQkvB,EAAKC,GACxC,IAAI7kC,EACA3J,EACAwX,EACA/K,EACAyC,EACAgL,EACAna,EACAua,EAEJ,IAAMrH,GAAmBoM,GACxB,MAAM,IAAIvb,UAAWiB,EAAQ,8EAA+Esa,IAE7G,IAAMtM,GAAsBw7B,GAC3B,MAAM,IAAIzqC,UAAWiB,EAAQ,gFAAiFwpC,IAE/G,IAAMx7B,GAAsBy7B,GAC3B,MAAM,IAAI1qC,UAAWiB,EAAQ,+EAAgFypC,IAG9G,GAAa,KADb7kC,EAAM0V,EAAO9e,QAEZ,MAAM,IAAI2W,WAAY,uEAGvB,GAAKvN,GADLuF,EAAIq/B,EAAMC,IACK,EACd,MAAM,IAAIt3B,WAAY,wGAUvB,IARAlX,EAAM,GAGNwX,EAAM,GAGN0C,EAAI,EAAIhL,EACRoL,EAAI,EAAIi0B,EACFxuC,EAAI,EAAGA,GAAKma,EAAGna,IACT,IAANA,EACCA,IAAMua,EACV9C,EAAI1S,KAAM,WAEV0S,EAAI1S,KAAM,KAEA/E,IAAMma,EACZna,IAAMua,EACV9C,EAAI1S,KAAM,WAEV0S,EAAI1S,KAAM,KAEA/E,IAAMua,EACjB9C,EAAI1S,KAAM,UACC/E,EAAE,GAAM,EACnByX,EAAI1S,KAAM,IAEV0S,EAAI1S,KAAM,MAGZ,IAAM/E,EAAI,EAAGA,EAAI4J,EAAK5J,IAET,QADZ0M,EAAKwY,GAAS5F,EAAQtf,OAErB0M,EAAK4S,EAAQtf,IAGdyX,EAAM,GADN8C,EAAIva,EAAImP,GACG,GAAMzC,EACZ6N,IAAMpL,EAAE,GACZlP,EAAI8E,KAAM0S,EAAIc,KAAM,KAGtB,OAAOtY,CACR,CC5FA,IAAI4f,GAAO,QCAX,IAAIA,GAAO,QCAX,IAAIA,GAAO,QCqEX,IAAI6uB,GAAQ,CCjCZ,SAAkBhlC,GACjB,QAAKA,EAAE4C,KAAM5C,EAAE7B,OAIhB,ECLA,SAAkB6B,GACjB,IAAI8C,EACAuT,EACAC,EACA1F,EACA2F,EAeJ,IAVAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH2T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACD,OAAO,CACR,ECtBA,SAAkBrW,GACjB,IAAI8C,EACAuT,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA2BJ,IAtBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH8T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD,OAAO,CACR,EC/CA,SAAkBxW,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EA+BJ,IA1BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHiU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO,CACR,ECzDA,SAAkB3W,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAmCJ,IA9BA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHoU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO,CACR,ECjEA,SAAkB9W,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EAuCJ,IAlCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHuU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO,CACR,EC7EA,SAAkBjX,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA2CJ,IAtCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH0U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAO,CACR,ECvFA,SAAkBpX,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA+CJ,IA1CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH6U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAO,CACR,ECjGA,SAAkBvX,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAmDJ,IA9CAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHgV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO,CACR,EC3GA,SAAkB1X,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAuDJ,IAlDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHmV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO,CACR,ECrHA,SAAmB7X,GAClB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA2DJ,IAtDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHsV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO,CACR,GXxFIitB,GAAiB,CY3CrB,SAAkBjlC,GACjB,QAAKA,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,OAIlC,ECLA,SAAkB6B,GACjB,IAAI8C,EACA/F,EACAsZ,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGb8S,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACD,OAAO,CACR,EC1BA,SAAkBrW,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA8BJ,IAzBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbiT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD,OAAO,CACR,ECnDA,SAAkBxW,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAkCJ,IA7BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGboT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO,CACR,EC7DA,SAAkB3W,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAsCJ,IAjCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbuT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO,CACR,ECrEA,SAAkB9W,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA0CJ,IArCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGb0T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO,CACR,ECjFA,SAAkBjX,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA8CJ,IAzCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGb6T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAO,CACR,EC3FA,SAAkBpX,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkDJ,IA7CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbgU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAO,CACR,ECrGA,SAAkBvX,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbmU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO,CACR,EC/GA,SAAkB1X,GACjB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbsU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO,CACR,ECzHA,SAAmB7X,GAClB,IAAI8C,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbyU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO,CACR,GtBlFIktB,GAAgB,CuB3DpB,SAAkBllC,GACjB,SAAKA,EAAE4C,KAAM5C,EAAE7B,UAAY6B,EAAE4C,KAAM5C,EAAE7B,OAAO,GAI7C,ECLA,SAAkB6B,GACjB,IAAI8C,EACAuT,EACAC,EACA1F,EACA2F,EAeJ,IAVAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH2T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACD,OAAO,CACR,ECtBA,SAAkBrW,GACjB,IAAI8C,EACAuT,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA2BJ,IAtBAvW,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH8T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD,OAAO,CACR,EC/CA,SAAkBxW,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EA+BJ,IA1BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHiU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO,CACR,ECzDA,SAAkB3W,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAmCJ,IA9BA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHoU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO,CACR,ECjEA,SAAkB9W,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EAuCJ,IAlCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHuU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO,CACR,EC7EA,SAAkBjX,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA2CJ,IAtCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH0U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAO,CACR,ECvFA,SAAkBpX,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA+CJ,IA1CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH6U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAO,CACR,ECjGA,SAAkBvX,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAmDJ,IA9CAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHgV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO,CACR,EC3GA,SAAkB1X,GACjB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAuDJ,IAlDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHmV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO,CACR,ECrHA,SAAmB7X,GAClB,IAAI8C,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA2DJ,IAtDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLgP,EAAKtR,EAAElC,UAGNwY,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHsV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO,CACR,GjC9DImtB,GAAgB,CkClEpB,SAAyBnlC,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHqH,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CAGH,OAAO,CACR,ECxEA,SAAyBxW,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO,CACR,EC7FA,SAAyB3W,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO,CACR,EChHA,SAAyB9W,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO,CACR,ECnIA,SAAyBjX,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAO,CACR,ECtJA,SAAyBpX,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAO,CACR,ECzKA,SAAyBvX,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO,CACR,EC5LA,SAAyB1X,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHyI,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO,CACR,EC/MA,SAA0B7X,GACzB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACA7X,GAsBJ,IAhBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH4I,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMzT,EAAM8N,GACX,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO,CACR,G1CvJIotB,GAAyB,C2C1E7B,SAAyBplC,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZkV,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CAGH,OAAO,CACR,EC5EA,SAAyBxW,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZoV,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO,CACR,ECjGA,SAAyB3W,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZuV,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO,CACR,ECpHA,SAAyB9W,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZ0V,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO,CACR,ECvIA,SAAyBjX,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZ6V,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAO,CACR,EC1JA,SAAyBpX,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZgW,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAO,CACR,EC7KA,SAAyBvX,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZmW,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO,CACR,EChMA,SAAyB1X,GACxB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAyBJ,IAnBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZsW,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO,CACR,ECnNA,SAA0B7X,GACzB,IAAIsY,EACAxV,EACA/F,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA7X,GAyBJ,IAnBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZyW,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAMxZ,EAAK+F,EAAM8N,GAChB,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO,CACR,GnDnJIqtB,GAAwB,CoDxF5B,SAAyBrlC,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHqH,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CAGH,OAAO,CACR,ECxEA,SAAyBxW,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO,CACR,EC7FA,SAAyB3W,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO,CACR,EChHA,SAAyB9W,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO,CACR,ECnIA,SAAyBjX,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAO,CACR,ECtJA,SAAyBpX,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAO,CACR,ECzKA,SAAyBvX,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO,CACR,EC5LA,SAAyB1X,GACxB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAsBJ,IAhBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHyI,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO,CACR,EC/MA,SAA0B7X,GACzB,IAAIsY,EACAxV,EACAuT,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACA7X,GAsBJ,IAhBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GAGPgH,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH4I,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAQzT,EAAM8N,KAAQ9N,EAAM8N,EAAG,GAC9B,OAAO,EAERA,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO,CACR,G5DjIIqC,GAAW2qB,GAAMluC,OAAS,E6D5I9B,IAAIqf,GAAO,QCAX,IAAIA,GAAO,QC0CX,IAAI6uB,GAAQ,CCCZ,SAAkBhlC,EAAG6F,EAAWgI,GAC/B,QAAKhI,EAAUzN,KAAMyV,EAAS7N,EAAE4C,KAAM5C,EAAE7B,QAAU,GAAI6B,EAAEoD,IAIzD,ECLA,SAAkBpD,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAuT,EACAC,EACA1F,EACA2F,EAeJ,IAVAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH2T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAM,CAAE2F,GAAMvW,EAAEoD,KACpD,OAAO,EAERwN,GAAMyF,CACN,CACD,OAAO,CACR,ECnBA,SAAkBrW,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA6BJ,IAxBAvW,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH8T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEuF,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACrE,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD,OAAO,CACR,EClDA,SAAkBxW,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAiCJ,IA5BA1W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHiU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE0F,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACzE,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO,CACR,EC5DA,SAAkB3W,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAqCJ,IAhCA7W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHoU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE6F,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC7E,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO,CACR,ECpEA,SAAkB9W,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EAyCJ,IApCAhX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHuU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEgG,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACjF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO,CACR,EChFA,SAAkBjX,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA6CJ,IAxCAnX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH0U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEmG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACrF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAO,CACR,EC1FA,SAAkBpX,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAiDJ,IA5CAtX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGH6U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEsG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACzF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAO,CACR,ECpGA,SAAkBvX,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAqDJ,IAhDAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHgV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEyG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC7F,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO,CACR,EC9GA,SAAkB1X,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAyDJ,IApDA5X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHmV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE4G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACjG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO,CACR,ECxHA,SAAmB7X,EAAG6F,EAAWgI,GAChC,IAAI/K,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA6DJ,IAxDA/X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGHsV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE+G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACrG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO,CACR,GXhIIitB,GAAiB,CYTrB,SAAkBjlC,EAAG6F,EAAWgI,GAC/B,QAAKhI,EAAUzN,KAAMyV,EAAS7N,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,QAAU,GAAI6B,EAAEoD,IAI3E,ECLA,SAAkBpD,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACA/F,EACAsZ,EACAC,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGb8S,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAM,CAAE2F,GAAMvW,EAAEoD,KACzD,OAAO,EAERwN,GAAMyF,CACN,CACD,OAAO,CACR,ECvBA,SAAkBrW,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACArW,EACAmW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EAgCJ,IA3BAvW,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbiT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEuF,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC1E,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD,OAAO,CACR,ECtDA,SAAkBxW,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAxW,EACAmW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAoCJ,IA/BA1W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGboT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE0F,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC9E,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAO,CACR,EChEA,SAAkB3W,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACA3W,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAwCJ,IAnCA7W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbuT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE6F,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAClF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO,CACR,ECxEA,SAAkB9W,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACA9W,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA4CJ,IAvCAhX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGb0T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEgG,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACtF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO,CACR,ECpFA,SAAkBjX,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAjX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EAgDJ,IA3CAnX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGb6T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEmG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC1F,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAO,CACR,EC9FA,SAAkBpX,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACApX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAoDJ,IA/CAtX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbgU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEsG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC9F,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAO,CACR,ECxGA,SAAkBvX,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAwDJ,IAnDAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbmU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEyG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAClG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAO,CACR,EClHA,SAAkB1X,EAAG6F,EAAWgI,GAC/B,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA4DJ,IAvDA5X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbsU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE4G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACtG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO,CACR,EC5HA,SAAmB7X,EAAG6F,EAAWgI,GAChC,IAAI/K,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAgEJ,IA3DA/X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACY,IAAxBwL,GAAegP,IAEnBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGbyU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE+G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC1G,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO,CACR,GtB1HImtB,GAAgB,CuBjBpB,SAAyBnlC,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHqH,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEwH,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC3E,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CAGH,OAAO,CACR,EC1EA,SAAyBxW,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE0H,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAClF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO,CACR,EC/FA,SAAyB3W,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE6H,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACzF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO,CACR,EClHA,SAAyB9W,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEgI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAChG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO,CACR,ECrIA,SAAyBjX,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEmI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACvG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAO,CACR,ECxJA,SAAyBpX,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEsI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC9G,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAO,CACR,EC3KA,SAAyBvX,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EAuBJ,IAjBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEyI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACrH,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO,CACR,EC9LA,SAAyB1X,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,GAuBJ,IAjBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGHyI,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE4I,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC5H,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO,CACR,ECjNA,SAA0B7X,EAAG6F,EAAWgI,GACvC,IAAIyK,EACAxV,EACAhE,EACAuX,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GAuBJ,IAjBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGH4I,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,GAAKnZ,EAAG,GAAImZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,GAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE+I,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACnI,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO,CACR,G/B1MIotB,GAAyB,CgCzB7B,SAAyBplC,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACA+B,EACApY,EACAqY,EACA/V,EACA6O,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAtW,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZkV,EAAKxY,EAAG,GAAIwY,EAAK,GAStB,IARKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEwH,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAChF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CAGH,OAAO,CACR,EC9EA,SAAyBxW,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACA4B,EACAK,EACAzY,EACAqY,EACA/V,EACAC,EACA4O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZoV,EAAK1Y,EAAG,GAAI0Y,EAAK,GAStB,IARKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE0H,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACvF,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAO,CACR,ECnGA,SAAyB3W,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA3Y,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZuV,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE6H,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC9F,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO,CACR,ECtHA,SAAyB9W,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA9Y,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZ0V,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEgI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACrG,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO,CACR,ECzIA,SAAyBjX,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAjZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAjX,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZ6V,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEmI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC5G,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAO,CACR,EC5JA,SAAyBpX,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACApZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACApX,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZgW,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEsI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACnH,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAO,CACR,EC/KA,SAAyBvX,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvZ,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvX,EA0BJ,IApBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,EAAEiP,GACPxS,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZmW,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEyI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC1H,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAO,CACR,EClMA,SAAyB1X,EAAG6F,EAAWgI,GACtC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACA1X,GA0BJ,IApBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZsW,GAAK5Z,EAAG,GAAI4Z,GAAK,GAStB,IARKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,EAAOsB,GAAGzI,EAAG,GACbsI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE4I,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACjI,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO,CACR,ECrNA,SAA0B7X,EAAG6F,EAAWgI,GACvC,IAAIyK,EACAxV,EACAhE,EACA/B,EACAsZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7Z,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA0BJ,IApBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPmR,EAAKjP,GAAEiP,GACPxS,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,OAGrBuZ,EAAKzY,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyT,EAAM/E,EAAG,GAGTvU,EAAMiD,EAAEyD,UAAU,GAGZyW,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,GAAKnZ,EAAG,GAAImZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,GAAGhI,EAAG,GACd6H,GAAKhZ,EAAG,GAAIgZ,GAAK,GAUtB,IATKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,GAAG7H,EAAG,GACd0H,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAKvY,EAAG,GAAIuY,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IAAO,CAC7B,IAAM1Q,EAAUzN,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE+I,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACxI,OAAO,EAERwN,GAAMyF,CACN,CACDzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO,CACR,GxCtMIqC,GAAW2qB,GAAMluC,OAAS,EyClE9B,SAASggC,GAAM92B,EAAG7J,GACjB,IAAI6M,EAMJ,IAAMurB,GAA8Bp4B,EAHpC6M,EAAKG,GAAUnD,IAId,MAAM,IAAI3F,UAAWiB,EAAQ,wHAAyH0H,EAAI7M,IAQ3J,OAFAqI,GAAQ,CAHJw4B,GAAiB7gC,EAAO6M,EAAIE,GAAUlD,GAAKuD,GAAUvD,IAG5CA,IAENA,CACR,CCzCA,IAAImW,GAAO,QCAX,IAAIA,GAAO,QC2CX,IAAImvB,GAAM,CCoBV,SAAgBtlC,EAAGuR,EAAG/C,EAAKX,GAC1B0D,EAAE3O,KAAM2O,EAAEpT,QAAWqQ,EAAIpW,KAAMyV,EAAS7N,EAAE4C,KAAM5C,EAAE7B,QAAU,GAAI6B,EAAEoD,IACnE,ECFA,SAAgBpD,EAAGuR,EAAG/C,EAAKX,GAC1B,IAAI/K,EACA2lB,EACApS,EACAuZ,EACAtZ,EACA1F,EACAa,EACA8E,EAkBJ,IAbAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GACjB8xB,EAAMre,EAAEzT,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGH2T,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAM,CAAE2F,GAAMvW,EAAEoD,KACtDwN,GAAMyF,EACN5E,GAAMme,CAER,ECvBA,SAAgB5vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAoZ,EACAC,EACA/wB,EACAqB,EACAmW,EACAG,EACAnF,EACAke,EACA5e,EACAa,EACA8E,EACAG,EAoCJ,IA/BAvW,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGhF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGH8T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEuF,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACvEwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACF,EC7DA,SAAgB7vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAiZ,EACAC,EACAC,EACAhxB,EACAqB,EACAmW,EACAG,EACAG,EACAtF,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EA0CJ,IArCA1W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGHiU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE0F,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC3EwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACF,EC3EA,SAAgB9vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACA8Y,EACAC,EACAC,EACAC,EACAjxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EAgDJ,IA3CA7W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGHoU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE6F,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC/EwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACF,ECzFA,SAAgB/vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACA2Y,EACAC,EACAC,EACAC,EACAC,EACAlxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDAhX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGHuU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEgG,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACnFwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACF,ECrGA,SAAgBhwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EA4DJ,IAvDAnX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGH0U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEmG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACvFwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACF,ECrHA,SAAgBjwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkEJ,IA7DAtX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGH6U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEsG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC3FwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACF,ECnIA,SAAgBlwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACArxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAwEJ,IAnEAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGHgV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEyG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KAC/FwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CACF,ECjJA,SAAgBnwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8EJ,IAzEA5X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGHmV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE4G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACnGwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CACDvf,GAAMiH,EACNpG,GAAM2e,CACN,CACF,EC/JA,SAAiBpwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACvC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAvxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAoFJ,IA/EA/X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,GACxBa,EAAMb,EAAI,GAAQ1X,EAAG0X,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,GACxBa,EAAMb,EAAI,GAAQ1X,EAAG0X,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGHsV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE+G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,KACvGwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CACDvf,GAAMiH,EACNpG,GAAM2e,CACN,CACDxf,GAAMoH,EACNvG,GAAM4e,CACN,CACF,GX9LIkV,GAAe,CY4BnB,SAAgBvlC,EAAGuR,EAAG/C,EAAKX,GAC1B0D,EAAE9N,UAAW,GAAK8N,EAAE3O,KAAM2O,EAAEpT,OAAQqQ,EAAIpW,KAAMyV,EAAS7N,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,QAAU,GAAI6B,EAAEoD,KACpG,ECFA,SAAgBpD,EAAGuR,EAAG/C,EAAKX,GAC1B,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAuZ,EACAtZ,EACA1F,EACAa,EACA8E,EAsBJ,IAjBAD,EAAKtW,EAAE9B,MAAO,GACdmY,EAAMrW,EAAElC,QAAS,GACjB8xB,EAAMre,EAAEzT,QAAS,GAGjB8S,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGb8S,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAM,CAAE2F,GAAMvW,EAAEoD,MAC7DwN,GAAMyF,EACN5E,GAAMme,CAER,EC7BA,SAAgB5vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAoZ,EACAC,EACA/wB,EACAqB,EACAmW,EACAG,EACAnF,EACAke,EACA5e,EACAa,EACA8E,EACAG,EAwCJ,IAnCAvW,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGhF,EAAG,GACxBxS,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGbiT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEuF,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAC9EwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACF,ECnEA,SAAgB7vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACApS,EACAG,EACAG,EACAiZ,EACAC,EACAC,EACAhxB,EACA/B,EACAC,EACAmD,EACAmW,EACAG,EACAG,EACAtF,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EA8CJ,IAzCA1W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGboT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE0F,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAClFwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACF,ECjFA,SAAgB9vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACA8Y,EACAC,EACAC,EACAC,EACAjxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EAoDJ,IA/CA7W,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGbuT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE6F,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MACtFwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACF,EC/FA,SAAgB/vB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACA2Y,EACAC,EACAC,EACAC,EACAC,EACAlxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDAhX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGb0T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEgG,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAC1FwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACF,EC3GA,SAAgBhwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EAgEJ,IA3DAnX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGb6T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEmG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAC9FwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACF,EC3HA,SAAgBjwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsEJ,IAjEAtX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGbgU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEsG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAClGwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACF,ECzIA,SAAgBlwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACArxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA4EJ,IAvEAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGbmU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAEyG,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MACtGwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CACF,ECvJA,SAAgBnwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACtC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkFJ,IA7EA5X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGbsU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE4G,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAC1GwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CACDvf,GAAMiH,EACNpG,GAAM2e,CACN,CACF,ECrKA,SAAiBpwB,EAAGuR,EAAG2S,EAAY1V,EAAKX,GACvC,IAAI/K,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAvxB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAke,EACA5e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GAwFJ,IAnFA/X,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,EAAEzT,QACPgB,EAAMmS,GAAQ9Q,EAAGrJ,QACZotB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,GACxBa,EAAMb,EAAI,GAAQ1X,EAAG0X,EAAG,KAGxBlZ,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTkW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBse,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQlZ,EAAGkZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ/Y,EAAG+Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ5Y,EAAG4Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQzY,EAAGyY,EAAG,GACxBS,EAAMT,EAAI,GAAQtY,EAAGsY,EAAG,GACxBU,EAAMV,EAAI,GAAQnY,EAAGmY,EAAG,GACxBW,EAAMX,EAAI,GAAQhY,EAAGgY,EAAG,GACxBY,EAAMZ,EAAI,GAAQ7X,EAAG6X,EAAG,GACxBa,EAAMb,EAAI,GAAQ1X,EAAG0X,EAAG,GACxB1wB,EAAMwb,GAASxb,IAGhB8R,EAAK5Q,EAAE7B,OACPsT,EAAKF,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAMuU,EAAE9N,UAAW,GAGbyU,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBvZ,EAAKyrB,EAAMhX,EAAIjD,EAAIpW,KAAMyV,EAAS9Q,EAAK+F,EAAM8N,GAAMO,GAAM,CAAE+G,GAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,EAAIH,GAAMzX,GAAOkB,EAAEoD,MAC9GwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CACDvf,GAAMiH,EACNpG,GAAM2e,CACN,CACDxf,GAAMoH,EACNvG,GAAM4e,CACN,CACF,GtB5MImV,GAAc,CuBElB,SAAuBxlC,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAoZ,EACAC,EACAtX,EACAiY,EACA1xB,EACAqB,EACAqY,EACA/V,EACA6O,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,EACAgC,EACAC,EACAtW,EA2BJ,IArBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,EAAEiP,GACPke,EAAKntB,EAAEmtB,GACP1wB,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGH7W,EAAKxY,EAAG,GAAIwY,EAAK,GAUtB,IATKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBkf,EAAM9H,EAAO/P,EAAG6W,EAAG,GACb9W,EAAKvY,EAAG,GAAIuY,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAOG,EAAGpH,EAAG,GAClBG,EAAK+e,EAAO9X,EAAG8W,EAAG,GAGlBhZ,EAAMlF,EAAG,GAAMkH,EAAGlH,EAAG,GACrBue,EAAML,EAAG,GAAMhX,EAAGgX,EAAG,GAGf9Y,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEwH,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC7EwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CAGJ,ECvFA,SAAuB7vB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAiZ,EACAC,EACAC,EACAvX,EACAK,EACA4X,EACAC,EACA3xB,EACAqB,EACAqY,EACA/V,EACAC,EACA4O,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EA2BJ,IArBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,EAAEiP,GACPke,EAAKntB,EAAEmtB,GACP1wB,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGH3W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAUtB,IATKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBmf,EAAM/H,EAAO7P,EAAG2W,EAAG,GACb7W,EAAKxY,EAAG,GAAIwY,EAAK,GAYtB,IAXKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBwe,EAAMN,EAAG,GAAO/sB,EAAG+sB,EAAG,GACtBjX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,EAAG6W,EAAG,GACd9W,EAAKvY,EAAG,GAAIuY,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,EAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBue,EAAML,EAAG,GAAOhX,EAAGgX,EAAG,GAGhB3Y,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE0H,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACpFwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CAIL,ECjHA,SAAuB9vB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACA8Y,EACAC,EACAC,EACAC,EACAxX,EACAK,EACAE,EACAha,EACA0xB,EACAC,EACAC,EACAvwB,EACAmW,EACAG,EACAG,EACAG,EACAzF,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA3W,EA2BJ,IArBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,EAAEiP,GACPke,EAAKntB,EAAEmtB,GACP1wB,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGHxW,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKV,GACTvB,EAAKiC,EACLA,EAAK,IAELjC,EAAKuB,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACnBof,EAAMhI,EAAO1P,EAAGwW,EAAG,GACb3W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAYtB,IAXKA,EAAKP,GACT1B,EAAKiC,EACLA,EAAK,IAELjC,EAAK0B,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAOsF,EAAGtF,EAAG,GACtBye,EAAMP,EAAG,GAAO5Y,EAAG4Y,EAAG,GACtB5W,EAAME,EAAQD,EAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,EAAG2W,EAAG,GACd7W,EAAKxY,EAAG,GAAIwY,EAAK,GAYtB,IAXKA,EAAKL,GACT7B,EAAKkC,EACLA,EAAK,IAELlC,EAAK6B,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOmF,EAAGnF,EAAG,GACtBwe,EAAMN,EAAG,GAAO/Y,EAAG+Y,EAAG,GACtBjX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,EAAG6W,EAAG,GACd9W,EAAKvY,EAAG,GAAIuY,EAAK,GAiBtB,IAhBKA,EAAKJ,GACThC,EAAKoC,EACLA,EAAK,IAELpC,EAAKgC,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,EAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOgF,EAAGhF,EAAG,GACtBue,EAAML,EAAG,GAAOlZ,EAAGkZ,EAAG,GAGhBxY,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAE6H,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAC3FwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CAKN,ECzIA,SAAuB/vB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACA2Y,EACAC,EACAC,EACAC,EACAC,EACAzX,EACAK,EACAE,EACAG,EACAna,EACA0xB,EACAC,EACAC,EACAC,EACAxwB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACA9W,EA2BJ,IArBAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,EAAEiP,GACPke,EAAKntB,EAAEmtB,GACP1wB,EAAMwb,GAASjY,EAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGHrW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKb,GACTpB,EAAKiC,EACLA,EAAK,IAELjC,EAAKoB,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACnBqf,EAAMjI,EAAOvP,EAAGqW,EAAG,GACbxW,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKV,GACTvB,EAAKiC,EACLA,EAAK,IAELjC,EAAKuB,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyF,EAAGzF,EAAG,GACtB0e,EAAMR,EAAG,GAAOzY,EAAGyY,EAAG,GACtB1W,EAAMG,EAAQD,EAAG1H,EAAG,GACpBof,EAAMC,EAAQ3X,EAAGwW,EAAG,GACd3W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAYtB,IAXKA,EAAKP,GACT1B,EAAKiC,EACLA,EAAK,IAELjC,EAAK0B,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAOsF,EAAGtF,EAAG,GACtBye,EAAMP,EAAG,GAAO5Y,EAAG4Y,EAAG,GACtB5W,EAAME,EAAQD,EAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,EAAG2W,EAAG,GACd7W,EAAKxY,EAAG,GAAIwY,EAAK,GAYtB,IAXKA,EAAKL,GACT7B,EAAKkC,EACLA,EAAK,IAELlC,EAAK6B,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOmF,EAAGnF,EAAG,GACtBwe,EAAMN,EAAG,GAAO/Y,EAAG+Y,EAAG,GACtBjX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,EAAG6W,EAAG,GACd9W,EAAKvY,EAAG,GAAIuY,EAAK,GAiBtB,IAhBKA,EAAKJ,GACThC,EAAKoC,EACLA,EAAK,IAELpC,EAAKgC,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,EAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOgF,EAAGhF,EAAG,GACtBue,EAAML,EAAG,GAAOlZ,EAAGkZ,EAAG,GAGhBrY,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEgI,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KAClGwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CAMP,ECjKA,SAAuBhwB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwY,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1X,EACAK,EACAE,EACAG,EACAG,EACAoX,EACAC,EACAC,EACAC,EACAC,EACA9xB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,GACAjX,GA2BJ,IArBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,GAAEiP,GACPke,EAAKntB,GAAEmtB,GACP1wB,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGHlW,GAAKnZ,EAAG,GAAImZ,GAAK,GAUtB,IATKA,GAAKhB,GACTjB,EAAKiC,GACLA,GAAK,IAELjC,EAAKiB,EACLgB,IAAMhB,GAEPc,EAAMX,EAAOa,GAAGhI,EAAG,GACnBsf,EAAMlI,EAAOpP,GAAGkW,EAAG,GACbrW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKb,GACTpB,EAAKiC,EACLA,EAAK,IAELjC,EAAKoB,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4F,EAAG5F,EAAG,GACtB2e,EAAMT,EAAG,GAAOtY,EAAGsY,EAAG,GACtBvW,EAAMG,EAAQD,EAAG7H,EAAG,GACpBqf,EAAMC,EAAQzX,EAAGqW,EAAG,GACdxW,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKV,GACTvB,EAAKiC,EACLA,EAAK,IAELjC,EAAKuB,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyF,EAAGzF,EAAG,GACtB0e,EAAMR,EAAG,GAAOzY,EAAGyY,EAAG,GACtB1W,EAAMG,EAAQD,EAAG1H,EAAG,GACpBof,EAAMC,EAAQ3X,EAAGwW,EAAG,GACd3W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAYtB,IAXKA,EAAKP,GACT1B,EAAKiC,EACLA,EAAK,IAELjC,EAAK0B,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAOsF,EAAGtF,EAAG,GACtBye,EAAMP,EAAG,GAAO5Y,EAAG4Y,EAAG,GACtB5W,EAAME,EAAQD,EAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,EAAG2W,EAAG,GACd7W,EAAKxY,EAAG,GAAIwY,EAAK,GAYtB,IAXKA,EAAKL,GACT7B,EAAKkC,EACLA,EAAK,IAELlC,EAAK6B,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOmF,EAAGnF,EAAG,GACtBwe,EAAMN,EAAG,GAAO/Y,EAAG+Y,EAAG,GACtBjX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,EAAG6W,EAAG,GACd9W,EAAKvY,EAAG,GAAIuY,EAAK,GAiBtB,IAhBKA,EAAKJ,GACThC,EAAKoC,EACLA,EAAK,IAELpC,EAAKgC,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,EAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOgF,EAAGhF,EAAG,GACtBue,EAAML,EAAG,GAAOlZ,EAAGkZ,EAAG,GAGhBlY,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEmI,GAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI6B,EAAGhC,EAAI8B,EAAGjC,EAAIgC,EAAGnC,GAAMzX,GAAOkB,EAAEoD,KACzGwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CAOR,ECzLA,SAAuBjwB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAiX,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/xB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACApX,GA2BJ,IArBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,GAAEiP,GACPke,EAAKntB,GAAEmtB,GACP1wB,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGH/V,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKnB,GACTd,EAAKiC,GACLA,GAAK,IAELjC,EAAKc,EACLmB,IAAMnB,GAEPiB,EAAMd,EAAOgB,GAAGnI,EAAG,GACnBuf,EAAMnI,EAAOjP,GAAG+V,EAAG,GACblW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTjB,EAAKiC,GACLA,GAAK,IAELjC,EAAKiB,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+F,EAAG/F,EAAG,GACtB4e,EAAMV,EAAG,GAAOnY,EAAGmY,EAAG,GACtBpW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBsf,EAAMC,EAAQvX,GAAGkW,EAAG,GACdrW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKb,GACTpB,EAAKiC,GACLA,GAAK,IAELjC,EAAKoB,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4F,EAAG5F,EAAG,GACtB2e,EAAMT,EAAG,GAAOtY,EAAGsY,EAAG,GACtBvW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBqf,EAAMC,EAAQzX,GAAGqW,EAAG,GACdxW,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKV,GACTvB,EAAKiC,GACLA,GAAK,IAELjC,EAAKuB,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyF,EAAGzF,EAAG,GACtB0e,EAAMR,EAAG,GAAOzY,EAAGyY,EAAG,GACtB1W,EAAMG,EAAQD,GAAG1H,EAAG,GACpBof,EAAMC,EAAQ3X,GAAGwW,EAAG,GACd3W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAYtB,IAXKA,GAAKP,GACT1B,EAAKiC,GACLA,GAAK,IAELjC,EAAK0B,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAOsF,EAAGtF,EAAG,GACtBye,EAAMP,EAAG,GAAO5Y,EAAG4Y,EAAG,GACtB5W,EAAME,EAAQD,GAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,GAAG2W,EAAG,GACd7W,GAAKxY,EAAG,GAAIwY,GAAK,GAYtB,IAXKA,GAAKL,GACT7B,EAAKkC,GACLA,GAAK,IAELlC,EAAK6B,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOmF,EAAGnF,EAAG,GACtBwe,EAAMN,EAAG,GAAO/Y,EAAG+Y,EAAG,GACtBjX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,GAAG6W,EAAG,GACd9W,GAAKvY,EAAG,GAAIuY,GAAK,GAiBtB,IAhBKA,GAAKJ,GACThC,EAAKoC,GACLA,GAAK,IAELpC,EAAKgC,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,GAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOgF,EAAGhF,EAAG,GACtBue,EAAML,EAAG,GAAOlZ,EAAGkZ,EAAG,GAGhB/X,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEsI,GAAGhC,GAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI6B,GAAGhC,EAAI8B,GAAGjC,EAAIgC,GAAGnC,GAAMzX,GAAOkB,EAAEoD,KAChHwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CAQT,ECjNA,SAAuBlwB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA8W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhyB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAke,EACA/W,EACAiQ,EACA9X,EACAa,EACA8E,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAvX,GA2BJ,IArBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,GAAEiP,GACPke,EAAKntB,GAAEmtB,GACP1wB,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGH5V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKtB,GACTX,EAAKiC,GACLA,GAAK,IAELjC,EAAKW,EACLsB,IAAMtB,GAEPoB,EAAMjB,EAAOmB,GAAGtI,EAAG,GACnBwf,EAAMpI,EAAO9O,GAAG4V,EAAG,GACb/V,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTd,EAAKiC,GACLA,GAAK,IAELjC,EAAKc,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkG,EAAGlG,EAAG,GACtB6e,EAAMX,EAAG,GAAOhY,EAAGgY,EAAG,GACtBjW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBuf,EAAMC,EAAQrX,GAAG+V,EAAG,GACdlW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTjB,EAAKiC,GACLA,GAAK,IAELjC,EAAKiB,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+F,EAAG/F,EAAG,GACtB4e,EAAMV,EAAG,GAAOnY,EAAGmY,EAAG,GACtBpW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBsf,EAAMC,EAAQvX,GAAGkW,EAAG,GACdrW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKb,GACTpB,EAAKiC,GACLA,GAAK,IAELjC,EAAKoB,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4F,EAAG5F,EAAG,GACtB2e,EAAMT,EAAG,GAAOtY,EAAGsY,EAAG,GACtBvW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBqf,EAAMC,EAAQzX,GAAGqW,EAAG,GACdxW,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKV,GACTvB,EAAKiC,GACLA,GAAK,IAELjC,EAAKuB,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyF,EAAGzF,EAAG,GACtB0e,EAAMR,EAAG,GAAOzY,EAAGyY,EAAG,GACtB1W,EAAMG,EAAQD,GAAG1H,EAAG,GACpBof,EAAMC,EAAQ3X,GAAGwW,EAAG,GACd3W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAYtB,IAXKA,GAAKP,GACT1B,EAAKiC,GACLA,GAAK,IAELjC,EAAK0B,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAOsF,EAAGtF,EAAG,GACtBye,EAAMP,EAAG,GAAO5Y,EAAG4Y,EAAG,GACtB5W,EAAME,EAAQD,GAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,GAAG2W,EAAG,GACd7W,GAAKxY,EAAG,GAAIwY,GAAK,GAYtB,IAXKA,GAAKL,GACT7B,EAAKkC,GACLA,GAAK,IAELlC,EAAK6B,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOmF,EAAGnF,EAAG,GACtBwe,EAAMN,EAAG,GAAO/Y,EAAG+Y,EAAG,GACtBjX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,GAAG6W,EAAG,GACd9W,GAAKvY,EAAG,GAAIuY,GAAK,GAiBtB,IAhBKA,GAAKJ,GACThC,EAAKoC,GACLA,GAAK,IAELpC,EAAKgC,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,GAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOgF,EAAGhF,EAAG,GACtBue,EAAML,EAAG,GAAOlZ,EAAGkZ,EAAG,GAGhB5X,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBkS,EAAMhX,GAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,GAAMO,GAAM,CAAEyI,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI8B,GAAGjC,GAAIgC,GAAGnC,GAAMzX,GAAOkB,EAAEoD,KACvHwN,GAAMyF,EACN5E,GAAMme,EAEPhf,GAAM4F,EACN/E,GAAMoe,CACN,CACDjf,GAAM+F,EACNlF,GAAMqe,CACN,CACDlf,GAAMkG,EACNrF,GAAMse,CACN,CACDnf,GAAMqG,EACNxF,GAAMue,CACN,CACDpf,GAAMwG,EACN3F,GAAMwe,CACN,CACDrf,GAAM2G,EACN9F,GAAMye,CACN,CACDtf,GAAM8G,EACNjG,GAAM0e,CACN,CASV,ECzOA,SAAuBnwB,EAAGuR,EAAG/C,EAAKX,GACjC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjyB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAke,EACA/W,GACAiQ,GACA9X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GA2BJ,IArBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,EAAKjP,GAAEiP,GACPke,EAAKntB,GAAEmtB,GACP1wB,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GAGHzV,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTR,EAAKiC,GACLA,GAAK,IAELjC,EAAKQ,EACLyB,IAAMzB,GAEPuB,EAAMpB,GAAOsB,GAAGzI,EAAG,GACnByf,EAAMrI,GAAO3O,GAAGyV,EAAG,GACb5V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKtB,GACTX,EAAKiC,GACLA,GAAK,IAELjC,EAAKW,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqG,EAAGrG,EAAG,GACtB8e,EAAMZ,EAAG,GAAO7X,EAAG6X,EAAG,GACtB9V,EAAMG,EAAQD,GAAGtI,EAAG,GACpBwf,EAAMC,EAAQnX,GAAG4V,EAAG,GACd/V,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTd,EAAKiC,GACLA,GAAK,IAELjC,EAAKc,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkG,EAAGlG,EAAG,GACtB6e,EAAMX,EAAG,GAAOhY,EAAGgY,EAAG,GACtBjW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBuf,EAAMC,EAAQrX,GAAG+V,EAAG,GACdlW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTjB,EAAKiC,GACLA,GAAK,IAELjC,EAAKiB,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+F,EAAG/F,EAAG,GACtB4e,EAAMV,EAAG,GAAOnY,EAAGmY,EAAG,GACtBpW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBsf,EAAMC,EAAQvX,GAAGkW,EAAG,GACdrW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKb,GACTpB,EAAKiC,GACLA,GAAK,IAELjC,EAAKoB,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4F,EAAG5F,EAAG,GACtB2e,EAAMT,EAAG,GAAOtY,EAAGsY,EAAG,GACtBvW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBqf,EAAMC,EAAQzX,GAAGqW,EAAG,GACdxW,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKV,GACTvB,EAAKiC,GACLA,GAAK,IAELjC,EAAKuB,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyF,EAAGzF,EAAG,GACtB0e,EAAMR,EAAG,GAAOzY,EAAGyY,EAAG,GACtB1W,EAAMG,EAAQD,GAAG1H,EAAG,GACpBof,EAAMC,EAAQ3X,GAAGwW,EAAG,GACd3W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAYtB,IAXKA,GAAKP,GACT1B,EAAKiC,GACLA,GAAK,IAELjC,EAAK0B,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAOsF,EAAGtF,EAAG,GACtBye,EAAMP,EAAG,GAAO5Y,EAAG4Y,EAAG,GACtB5W,EAAME,EAAQD,GAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,GAAG2W,EAAG,GACd7W,GAAKxY,EAAG,GAAIwY,GAAK,GAYtB,IAXKA,GAAKL,GACT7B,EAAKkC,GACLA,GAAK,IAELlC,EAAK6B,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOmF,EAAGnF,EAAG,GACtBwe,EAAMN,EAAG,GAAO/Y,EAAG+Y,EAAG,GACtBjX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,GAAG6W,EAAG,GACd9W,GAAKvY,EAAG,GAAIuY,GAAK,GAiBtB,IAhBKA,GAAKJ,GACThC,EAAKoC,GACLA,GAAK,IAELpC,EAAKgC,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK+e,EAAQ9X,GAAG8W,EAAG,GAGnBhZ,EAAMlF,EAAG,GAAOgF,EAAGhF,EAAG,GACtBue,EAAML,EAAG,GAAOlZ,EAAGkZ,EAAG,GAGhBzX,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KACtBkS,EAAMhX,IAAOjD,EAAIpW,KAAMyV,EAAS/K,EAAM8N,IAAMO,GAAM,CAAE4I,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI6B,GAAGhC,GAAI8B,GAAGjC,GAAIgC,GAAGnC,IAAMzX,GAAOkB,EAAEoD,KAC9HwN,IAAMyF,EACN5E,IAAMme,EAEPhf,IAAM4F,EACN/E,IAAMoe,CACN,CACDjf,IAAM+F,EACNlF,IAAMqe,CACN,CACDlf,IAAMkG,EACNrF,IAAMse,CACN,CACDnf,IAAMqG,EACNxF,IAAMue,CACN,CACDpf,IAAMwG,EACN3F,IAAMwe,CACN,CACDrf,IAAM2G,EACN9F,IAAMye,CACN,CACDtf,IAAM8G,EACNjG,IAAM0e,CACN,CACDvf,IAAMiH,EACNpG,IAAM2e,CACN,CAUX,ECjQA,SAAwBpwB,EAAGuR,EAAG/C,EAAKX,GAClC,IAAIyK,EACAxV,EACA2lB,EACApS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlyB,EACAqB,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA3G,GACAke,GACA/W,GACAiQ,GACA9X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA2BJ,IArBAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GACP1wB,EAAMwb,GAASjY,GAAEvD,KAGjBwZ,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,GAAG,GACTse,EAAMJ,GAAG,GAGHtV,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAK5B,GACTL,GAAKiC,GACLA,GAAK,IAELjC,GAAKK,EA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AIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KACtBq1B,EAAMK,GAAOz9B,EAAK1L,EAAM8N,GAAM6X,EAAMhX,GAAMsmB,EAAME,IAChDrnB,GAAMyF,EACN5E,GAAMme,EACNqI,GAAMD,EACNiU,GAAMC,EAEPt7B,GAAM4F,EACN/E,GAAMoe,EACNoI,GAAMC,EACN+T,GAAME,CACN,CACDv7B,GAAM+F,EACNlF,GAAMqe,EACNmI,GAAME,EACN8T,GAAMG,CACN,CACDx7B,GAAMkG,EACNrF,GAAMse,EACNkI,GAAMG,EACN6T,GAAMI,CACN,CACDz7B,GAAMqG,EACNxF,GAAMue,EACNiI,GAAMI,EACN4T,GAAMK,CACN,CACD17B,GAAMwG,EACN3F,GAAMwe,EACNgI,GAAMK,EACN2T,GAAMM,CACN,CACD37B,GAAM2G,EACN9F,GAAMye,EACN+H,GAAMM,EACN0T,GAAMO,CACN,CACF,ECpMA,SAAoBxsC,EAAGuR,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC3C,IAAI1L,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA6H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA0T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtsC,EACAmW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAke,EACAmI,EACA6T,GACA56B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GA4GJ,IAvGAzX,EAAKH,EAAE9B,MACPoT,EAAKtR,EAAElC,QACP0xB,EAAKje,E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EAAMhX,IAAMo7B,EAAM9U,EAAME,MACrErnB,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CACD57B,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,EACNyT,IAAMQ,CACN,CACF,ECpOA,SAAoBzsC,EAAGuR,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC3C,IAAI1L,EACA2lB,EACAsP,EACA6T,EACA96B,EACA8nB,EACAiU,EACAC,EACAz2B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAyT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAvsC,EACAmW,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAxG,GACAke,GACAmI,GACA6T,GACA56B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GA4HJ,IAvHA5X,EAAKH,EAAE9B,MACPoT,GAAKtR,EAAElC,QACP0xB,GAAKje,EAAEzT,QACP65B,GAAKlrB,EAAE3O,QACP0tC,GAAK34B,EAAE/U,QACFomB,GAEJ5N,EAAKnW,EAAI,GACTsW,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI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IAAMgoB,EAAMnQ,EAAMhX,IAAMo7B,EAAM9U,EAAME,MACrErnB,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CACD57B,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,EACNyT,IAAMQ,CACN,CACD77B,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,EACNwT,IAAMS,CACN,CACF,EC1PA,SAAqB1sC,EAAGuR,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC5C,IAAI1L,EACA2lB,EACAsP,EACA6T,EACA96B,EACA8nB,EACAiU,EACAC,EACAz2B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAwT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAxsC,GACAmW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3G,GACAke,GACAmI,GACA6T,GACA56B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GAsIJ,IAjIA/X,GAAKH,EAAE9B,MACPoT,GAAKtR,EAAElC,QACP0xB,GAAKje,EAAEzT,QACP65B,GAAKlrB,EAAE3O,QACP0tC,GAAK34B,EAAE/U,QACFomB,GAEJ5N,GAAKnW,GAAI,GACTsW,GAAKtW,GAAI,GACTyW,GAAKzW,GAAI,GACT4W,GAAK5W,GAAI,GACT+W,GAAK/W,GAAI,GACTkX,GAAKlX,GAAI,GACTqX,GAAKrX,GAAI,GACTwX,GAAKxX,GAAI,GACT2X,GAAK3X,GAAI,GACT8X,GAAK9X,GAAI,GACTkW,EAAM/E,GAAI,GACVkF,EAAMlF,GAAI,GAAQgF,GAAGhF,GAAG,GACxBqF,EAAMrF,GAAI,GAAQmF,GAAGnF,GAAG,GACxBwF,EAAMxF,GAAI,GAAQsF,GAAGtF,GAAG,GACxB2F,EAAM3F,GAAI,GAAQyF,GAAGzF,GAAG,GACxB8F,EAAM9F,GAAI,GAAQ4F,GAAG5F,GAAG,GACxBiG,EAAMjG,GAAI,GAAQ+F,GAAG/F,GAAG,GACxBoG,EAAMpG,GAAI,GAAQkG,GAAGlG,GAAG,GACxBuG,EAAMvG,GAAI,GAAQqG,GAAGrG,GAAG,GACxB0G,EAAM1G,GAAI,GAAQwG,GAAGxG,GAAG,GACxBse,EAAMJ,GAAI,GACVK,EAAML,GAAI,GAAQlZ,GAAGkZ,GAAG,GACxBM,EAAMN,GAAI,GAAQ/Y,GAAG+Y,GAAG,GACxBO,EAAMP,GAAI,GAAQ5Y,GAAG4Y,GAAG,GACxBQ,EAAMR,GAAI,GAAQzY,GAAGyY,GAAG,GACxBS,EAAMT,GAAI,GAAQtY,GAAGsY,GAAG,GACxBU,EAAMV,GAAI,GAAQnY,GAAGmY,GAAG,GACxBW,EAAMX,GAAI,GAAQhY,GAAGgY,GAAG,GACxBY,EAAMZ,GAAI,GAAQ7X,GAAG6X,GAAG,GACxBa,EAAMb,GAAI,GAAQ1X,GAAG0X,GAAG,GACxBwI,EAAML,GAAI,GACVO,EAAMP,GAAI,GAAQrhB,GAAGqhB,GAAG,GACxBQ,EAAMR,GAAI,GAAQlhB,GAAGkhB,GAAG,GACxBS,EAAMT,GAAI,GAAQ/gB,GAAG+gB,GAAG,GACxBU,EAAMV,GAAI,GAAQ5gB,GAAG4gB,GAAG,GACxBW,EAAMX,GAAI,GAAQzgB,GAAGygB,GAAG,GACxBY,EAAMZ,GAAI,GAAQtgB,GAAGsgB,GAAG,GACxBa,EAAMb,GAAI,GAAQngB,GAAGmgB,GAAG,GACxBc,EAAMd,GAAI,GAAQhgB,GAAGggB,GAAG,GACxBe,EAAMf,GAAI,GAAQ7f,GAAG6f,GAAG,GACxBuU,EAAMV,GAAI,GACVW,EAAMX,GAAI,GAAQl1B,GAAGk1B,GAAG,GACxBY,EAAMZ,GAAI,GAAQ/0B,GAAG+0B,GAAG,GACxBa,EAAMb,GAAI,GAAQ50B,GAAG40B,GAAG,GACxBc,EAAMd,GAAI,GAAQz0B,GAAGy0B,GAAG,GACxBe,EAAMf,GAAI,GAAQt0B,GAAGs0B,GAAG,GACxBgB,EAAMhB,GAAI,GAAQn0B,GAAGm0B,GAAG,GACxBiB,EAAMjB,GAAI,GAAQh0B,GAAGg0B,GAAG,GACxBkB,EAAMlB,GAAI,GAAQ7zB,GAAG6zB,GAAG,GACxBmB,EAAMnB,GAAI,GAAQ1zB,GAAG0zB,GAAG,KAGxBl1B,GAAKnW,GAAI,GACTsW,GAAKtW,GAAI,GACTyW,GAAKzW,GAAI,GACT4W,GAAK5W,GAAI,GACT+W,GAAK/W,GAAI,GACTkX,GAAKlX,GAAI,GACTqX,GAAKrX,GAAI,GACTwX,GAAKxX,GAAI,GACT2X,GAAK3X,GAAI,GACT8X,GAAK9X,GAAI,GACTkW,EAAM/E,GAAI,GACVkF,EAAMlF,GAAI,GAAQgF,GAAGhF,GAAG,GACxBqF,EAAMrF,GAAI,GAAQmF,GAAGnF,GAAG,GACxBwF,EAAMxF,GAAI,GAAQsF,GAAGtF,GAAG,GACxB2F,EAAM3F,GAAI,GAAQyF,GAAGzF,GAAG,GACxB8F,EAAM9F,GAAI,GAAQ4F,GAAG5F,GAAG,GACxBiG,EAAMjG,GAAI,GAAQ+F,GAAG/F,GAAG,GACxBoG,EAAMpG,GAAI,GAAQkG,GAAGlG,GAAG,GACxBuG,EAAMvG,GAAI,GAAQqG,GAAGrG,GAAG,GACxB0G,EAAM1G,GAAI,GAAQwG,GAAGxG,GAAG,GACxBse,EAAMJ,GAAI,GACVK,EAAML,GAAI,GAAQlZ,GAAGkZ,GAAG,GACxBM,EAAMN,GAAI,GAAQ/Y,GAAG+Y,GAAG,GACxBO,EAAMP,GAAI,GAAQ5Y,GAAG4Y,GAAG,GACxBQ,EAAMR,GAAI,GAAQzY,GAAGyY,GAAG,GACxBS,EAAMT,GAAI,GAAQtY,GAAGsY,GAAG,GACxBU,EAAMV,GAAI,GAAQnY,GAAGmY,GAAG,GACxBW,EAAMX,GAAI,GAAQhY,GAAGgY,GAAG,GACxBY,EAAMZ,GAAI,GAAQ7X,GAAG6X,GAAG,GACxBa,EAAMb,GAAI,GAAQ1X,GAAG0X,GAAG,GACxBwI,EAAML,GAAI,GACVO,EAAMP,GAAI,GAAQrhB,GAAGqhB,GAAG,GACxBQ,EAAMR,GAAI,GAAQlhB,GAAGkhB,GAAG,GACxBS,EAAMT,GAAI,GAAQ/gB,GAAG+gB,GAAG,GACxBU,EAAMV,GAAI,GAAQ5gB,GAAG4gB,GAAG,GACxBW,EAAMX,GAAI,GAAQzgB,GAAGygB,GAAG,GACxBY,EAAMZ,GAAI,GAAQtgB,GAAGsgB,GAAG,GACxBa,EAAMb,GAAI,GAAQngB,GAAGmgB,GAAG,GACxBc,EAAMd,GAAI,GAAQhgB,GAAGggB,GAAG,GACxBe,EAAMf,GAAI,GAAQ7f,GAAG6f,GAAG,GACxBuU,EAAMV,GAAI,GACVW,EAAMX,GAAI,GAAQl1B,GAAGk1B,GAAG,GACxBY,EAAMZ,GAAI,GAAQ/0B,GAAG+0B,GAAG,GACxBa,EAAMb,GAAI,GAAQ50B,GAAG40B,GAAG,GACxBc,EAAMd,GAAI,GAAQz0B,GAAGy0B,GAAG,GACxBe,EAAMf,GAAI,GAAQt0B,GAAGs0B,GAAG,GACxBgB,EAAMhB,GAAI,GAAQn0B,GAAGm0B,GAAG,GACxBiB,EAAMjB,GAAI,GAAQh0B,GAAGg0B,GAAG,GACxBkB,EAAMlB,GAAI,GAAQ7zB,GAAG6zB,GAAG,GACxBmB,EAAMnB,GAAI,GAAQ1zB,GAAG0zB,GAAG,IAGzB56B,GAAK5Q,EAAE7B,OACPsT,GAAKF,EAAEpT,OACP85B,GAAKxrB,EAAEtO,OACP8tC,GAAKp5B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KACTgpC,EAAO/4B,EAAEjQ,KAGTkO,EAAO9Q,EAAEyD,UAAW,GACpBm1B,EAAOrnB,EAAE9N,UAAW,GACpBopC,EAAOh6B,EAAEpP,UAAW,GACpBqpC,EAAOrgC,EAAEhJ,UAAW,GAGdyU,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KACtBu2B,EAAMlB,EAAMK,GAAIz9B,EAAKsC,EAAMhO,EAAM8N,IAAMgoB,EAAMnQ,EAAMhX,IAAMo7B,EAAM9U,EAAME,MACrErnB,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CACD57B,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,EACNyT,IAAMQ,CACN,CACD77B,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,EACNwT,IAAMS,CACN,CACD97B,IAAMoH,EACNvG,IAAM4e,EACN4H,IAAMS,EACNuT,IAAMU,CACN,CACF,GtBtTII,GAAkB,CuB8BtB,SAA2B/sC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAoZ,EACAC,EACAmI,EACAE,EACAgU,EACAC,EACA5zB,EACAiY,EACAuI,EACAiU,EACA7sC,EACAqY,EACA/V,EACA6O,EACAke,EACAmI,EACA6T,EACA/yB,EACAiQ,EACAsQ,EACAiU,EACAr8B,EACAa,EACAwmB,EACAgU,EACA11B,EACAG,EACAgC,EACAC,EACAtW,EAkCJ,IA5BAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U,EAAE/U,UACpDqC,GACPmR,EAAKjP,EAAEiP,GACPke,EAAKntB,EAAEmtB,GACPmI,EAAKt1B,EAAEs1B,GACP6T,EAAKnpC,EAAEmpC,GAGPlzB,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,MAAO2T,EAAE3T,OAGhDuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OACP66B,EAAKvsB,EAAEtO,OACP8uC,EAAKp6B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KACTgpC,EAAO/4B,EAAEjQ,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GACTwI,EAAML,EAAG,GACTuU,EAAMV,EAAG,GAGH7yB,EAAKxY,EAAG,GAAIwY,EAAK,GAYtB,IAXKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBkf,EAAM9H,EAAO/P,EAAG6W,EAAG,GACnBuJ,EAAMC,EAAOrgB,EAAGgf,EAAG,GACnBqV,EAAMC,EAAOt0B,EAAG6yB,EAAG,GACb9yB,EAAKvY,EAAG,GAAIuY,EAAK,GAqBtB,IApBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,EAAG8W,EAAG,GACnByI,EAAKc,EAAQrgB,EAAGif,EAAG,GACnBsU,EAAKe,EAAQt0B,EAAG8yB,EAAG,GAGnBh1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBue,EAAML,EAAG,GAAOhX,EAAGgX,EAAG,GACtB0I,EAAMP,EAAG,GAAOnf,EAAGmf,EAAG,GACtBwU,EAAMX,EAAG,GAAOhzB,EAAGgzB,EAAG,GAGhB90B,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBq1B,EAAMK,GAAOz9B,EAAK1L,EAAM8N,GAAM6X,EAAMhX,GAAMsmB,EAAME,IAChDrnB,GAAMyF,EACN5E,GAAMme,EACNqI,GAAMD,EACNiU,GAAMC,EAEPt7B,GAAM4F,EACN/E,GAAMoe,EACNoI,GAAMC,EACN+T,GAAME,CACN,CAGJ,ECrHA,SAA2BnsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAiZ,EACAC,EACAC,EACAkI,EACAE,EACAC,EACA+T,EACAC,EACAC,EACA7zB,EACAK,EACA4X,EACAC,EACAsI,EACAE,EACA+T,EACAE,EACA/sC,EACAqY,EACA/V,EACAC,EACA4O,EACAke,EACAmI,EACA6T,EACA/yB,EACAiQ,EACAsQ,EACAiU,EACAr8B,EACAa,EACAwmB,EACAgU,EACA11B,EACAG,EACAG,EACA6B,EACAC,EACAE,EACAxW,EAkCJ,IA5BAlC,GADAkC,EAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U,EAAE/U,UACpDqC,GACPmR,EAAKjP,EAAEiP,GACPke,EAAKntB,EAAEmtB,GACPmI,EAAKt1B,EAAEs1B,GACP6T,EAAKnpC,EAAEmpC,GAGPlzB,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,MAAO2T,EAAE3T,OAGhDuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OACP66B,EAAKvsB,EAAEtO,OACP8uC,EAAKp6B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KACTgpC,EAAO/4B,EAAEjQ,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GACTwI,EAAML,EAAG,GACTuU,EAAMV,EAAG,GAGH3yB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAYtB,IAXKA,EAAKP,GACT5V,EAAKmW,EACLA,EAAK,IAELnW,EAAK4V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBmf,EAAM/H,EAAO7P,EAAG2W,EAAG,GACnByJ,EAAMD,EAAOngB,EAAG8e,EAAG,GACnBuV,EAAMD,EAAOp0B,EAAG2yB,EAAG,GACb7yB,EAAKxY,EAAG,GAAIwY,EAAK,GAgBtB,IAfKA,EAAKL,GACT7V,EAAKkW,EACLA,EAAK,IAELlW,EAAK6V,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBwe,EAAMN,EAAG,GAAO/sB,EAAG+sB,EAAG,GACtB2I,EAAMR,EAAG,GAAOl1B,EAAGk1B,EAAG,GACtByU,EAAMZ,EAAG,GAAO/oC,EAAG+oC,EAAG,GACtBjzB,EAAMK,EAAQD,EAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,EAAG6W,EAAG,GACpBuJ,EAAME,EAAQtgB,EAAGgf,EAAG,GACpBqV,EAAME,EAAQv0B,EAAG6yB,EAAG,GACd9yB,EAAKvY,EAAG,GAAIuY,EAAK,GAqBtB,IApBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,EAAG8W,EAAG,GACnByI,EAAKc,EAAQrgB,EAAGif,EAAG,GACnBsU,EAAKe,EAAQt0B,EAAG8yB,EAAG,GAGnBh1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBue,EAAML,EAAG,GAAOhX,EAAGgX,EAAG,GACtB0I,EAAMP,EAAG,GAAOnf,EAAGmf,EAAG,GACtBwU,EAAMX,EAAG,GAAOhzB,EAAGgzB,EAAG,GAGhB30B,EAAK,EAAGA,EAAKnU,EAAImU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKjU,EAAIiU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBq1B,EAAMK,GAAOz9B,EAAK1L,EAAM8N,GAAM6X,EAAMhX,GAAMsmB,EAAME,IAChDrnB,GAAMyF,EACN5E,GAAMme,EACNqI,GAAMD,EACNiU,GAAMC,EAEPt7B,GAAM4F,EACN/E,GAAMoe,EACNoI,GAAMC,EACN+T,GAAME,CACN,CACDv7B,GAAM+F,EACNlF,GAAMqe,EACNmI,GAAME,EACN8T,GAAMG,CACN,CAIL,ECzJA,SAA2BpsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAG,EACA8Y,EACAC,EACAC,EACAC,EACAiI,EACAE,EACAC,EACAC,EACA8T,EACAC,EACAC,EACAC,EACA9zB,EACAK,EACAE,EACA0X,EACAC,EACAC,EACAqI,EACAE,EACAC,EACA8T,EACAE,EACAC,EACAhtC,EACAqY,EACA/V,EACAC,EACAqW,EACAzH,EACAke,EACAmI,EACA6T,EACA/yB,EACAiQ,EACAsQ,EACAiU,EACAr8B,EACAa,EACAwmB,EACAgU,GACA11B,GACAG,GACAG,GACAG,GACA0B,GACAC,GACAE,GACAG,GACA3W,GAkCJ,IA5BAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U,EAAE/U,UACpDqC,GACPmR,EAAKjP,GAAEiP,GACPke,EAAKntB,GAAEmtB,GACPmI,EAAKt1B,GAAEs1B,GACP6T,EAAKnpC,GAAEmpC,GAGPlzB,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,MAAO2T,EAAE3T,OAGhDuZ,EAAKzY,EAAE7B,OACPuqB,EAAKnX,EAAEpT,OACP66B,EAAKvsB,EAAEtO,OACP8uC,EAAKp6B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KACTgpC,EAAO/4B,EAAEjQ,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GACTwI,EAAML,EAAG,GACTuU,EAAMV,EAAG,GAGHxyB,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPQ,EAAML,EAAOO,GAAG1H,EAAG,GACnBof,EAAMhI,EAAO1P,GAAGwW,EAAG,GACnB0J,EAAMF,EAAOhgB,GAAG2e,EAAG,GACnBwV,EAAMF,EAAOj0B,GAAGwyB,EAAG,GACb3yB,GAAK1Y,EAAG,GAAI0Y,GAAK,GAgBtB,IAfKA,GAAKP,GACT5V,EAAKmW,GACLA,GAAK,IAELnW,EAAK4V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBye,EAAMP,EAAG,GAAO9sB,EAAG8sB,EAAG,GACtB4I,EAAMT,EAAG,GAAOj1B,EAAGi1B,EAAG,GACtB0U,EAAMb,EAAG,GAAO9oC,EAAG8oC,EAAG,GACtB5yB,EAAME,EAAQD,GAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,GAAG2W,EAAG,GACpByJ,EAAMC,EAAQrgB,GAAG8e,EAAG,GACpBuV,EAAMC,EAAQt0B,GAAG2yB,EAAG,GACd7yB,GAAKxY,EAAG,GAAIwY,GAAK,GAgBtB,IAfKA,GAAKL,GACT7V,EAAKkW,GACLA,GAAK,IAELlW,EAAK6V,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBwe,EAAMN,EAAG,GAAO/sB,EAAG+sB,EAAG,GACtB2I,EAAMR,EAAG,GAAOl1B,EAAGk1B,EAAG,GACtByU,EAAMZ,EAAG,GAAO/oC,EAAG+oC,EAAG,GACtBjzB,EAAMK,EAAQD,GAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,GAAG6W,EAAG,GACpBuJ,EAAME,EAAQtgB,GAAGgf,EAAG,GACpBqV,EAAME,EAAQv0B,GAAG6yB,EAAG,GACd9yB,GAAKvY,EAAG,GAAIuY,GAAK,GAqBtB,IApBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK+e,EAAQ9X,GAAG8W,EAAG,GACnByI,EAAKc,EAAQrgB,GAAGif,EAAG,GACnBsU,GAAKe,EAAQt0B,GAAG8yB,EAAG,GAGnBh1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBue,EAAML,EAAG,GAAOhX,EAAGgX,EAAG,GACtB0I,EAAMP,EAAG,GAAOnf,EAAGmf,EAAG,GACtBwU,EAAMX,EAAG,GAAOhzB,EAAGgzB,EAAG,GAGhBx0B,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKnU,EAAImU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKjU,EAAIiU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBq1B,EAAMK,IAAOz9B,EAAK1L,EAAM8N,GAAM6X,EAAMhX,GAAMsmB,EAAME,IAChDrnB,GAAMyF,EACN5E,GAAMme,EACNqI,GAAMD,EACNiU,IAAMC,EAEPt7B,GAAM4F,EACN/E,GAAMoe,EACNoI,GAAMC,EACN+T,IAAME,CACN,CACDv7B,GAAM+F,EACNlF,GAAMqe,EACNmI,GAAME,EACN8T,IAAMG,CACN,CACDx7B,GAAMkG,EACNrF,GAAMse,EACNkI,GAAMG,EACN6T,IAAMI,CACN,CAKN,EC3LA,SAA2BrsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAG,EACAG,EACA2Y,EACAC,EACAC,EACAC,EACAC,EACAgI,EACAE,EACAC,EACAC,EACAC,EACA6T,EACAC,EACAC,EACAC,EACAC,EACA/zB,EACAK,EACAE,EACAG,EACAuX,EACAC,EACAC,EACAC,EACAoI,EACAE,EACAC,EACAC,EACA6T,EACAE,EACAC,EACAC,EACAjtC,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACA5H,EACAke,EACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAuB,GACAC,GACAE,GACAG,GACAG,GACA9W,GAkCJ,IA5BAlC,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U,EAAE/U,UACpDqC,GACPmR,EAAKjP,GAAEiP,GACPke,EAAKntB,GAAEmtB,GACPmI,GAAKt1B,GAAEs1B,GACP6T,GAAKnpC,GAAEmpC,GAGPlzB,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,MAAO2T,EAAE3T,OAGhDuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OACP66B,GAAKvsB,EAAEtO,OACP8uC,GAAKp6B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KACTgpC,EAAO/4B,EAAEjQ,KAGTyT,EAAM/E,EAAG,GACTse,EAAMJ,EAAG,GACTwI,EAAML,GAAG,GACTuU,EAAMV,GAAG,GAGHryB,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPW,EAAMR,GAAOU,GAAG7H,EAAG,GACnBqf,EAAMjI,GAAOvP,GAAGqW,EAAG,GACnB2J,EAAMH,GAAO7f,GAAGwe,GAAG,GACnByV,EAAMH,GAAO9zB,GAAGqyB,GAAG,GACbxyB,GAAK7Y,EAAG,GAAI6Y,GAAK,GAgBtB,IAfKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtB0e,EAAMR,EAAG,GAAOzW,EAAGyW,EAAG,GACtB6I,EAAMV,GAAG,GAAO5e,EAAG4e,GAAG,GACtB2U,EAAMd,GAAG,GAAOzyB,EAAGyyB,GAAG,GACtB1yB,EAAMG,EAAQD,GAAG1H,EAAG,GACpBof,EAAMC,EAAQ3X,GAAGwW,EAAG,GACpB0J,EAAMC,EAAQngB,GAAG2e,GAAG,GACpBwV,EAAMC,EAAQp0B,GAAGwyB,GAAG,GACd3yB,GAAK1Y,EAAG,GAAI0Y,GAAK,GAgBtB,IAfKA,GAAKP,GACT5V,EAAKmW,GACLA,GAAK,IAELnW,EAAK4V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO5O,EAAG4O,EAAG,GACtBye,EAAMP,EAAG,GAAO9sB,EAAG8sB,EAAG,GACtB4I,EAAMT,GAAG,GAAOj1B,EAAGi1B,GAAG,GACtB0U,EAAMb,GAAG,GAAO9oC,EAAG8oC,GAAG,GACtB5yB,EAAME,EAAQD,GAAGvH,EAAG,GACpBmf,EAAMC,EAAQ7X,GAAG2W,EAAG,GACpByJ,EAAMC,EAAQrgB,GAAG8e,GAAG,GACpBuV,EAAMC,EAAQt0B,GAAG2yB,GAAG,GACd7yB,GAAKxY,EAAG,GAAIwY,GAAK,GAgBtB,IAfKA,GAAKL,GACT7V,EAAKkW,GACLA,GAAK,IAELlW,EAAK6V,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAO7O,EAAG6O,EAAG,GACtBwe,EAAMN,EAAG,GAAO/sB,EAAG+sB,EAAG,GACtB2I,EAAMR,GAAG,GAAOl1B,EAAGk1B,GAAG,GACtByU,EAAMZ,GAAG,GAAO/oC,EAAG+oC,GAAG,GACtBjzB,EAAMK,EAAQD,GAAGrH,EAAG,GACpBkf,EAAMC,EAAQ9X,GAAG6W,EAAG,GACpBuJ,EAAME,EAAQtgB,GAAGgf,GAAG,GACpBqV,EAAME,EAAQv0B,GAAG6yB,GAAG,GACd9yB,GAAKvY,EAAG,GAAIuY,GAAK,GAqBtB,IApBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK+e,EAAQ9X,GAAG8W,EAAG,GACnByI,GAAKc,EAAQrgB,GAAGif,GAAG,GACnBsU,GAAKe,EAAQt0B,GAAG8yB,GAAG,GAGnBh1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBue,EAAML,EAAG,GAAOhX,EAAGgX,EAAG,GACtB0I,EAAMP,GAAG,GAAOnf,EAAGmf,GAAG,GACtBwU,EAAMX,GAAG,GAAOhzB,EAAGgzB,GAAG,GAGhBr0B,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKnU,EAAImU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKjU,EAAIiU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBq1B,EAAMK,IAAOz9B,EAAK1L,EAAM8N,IAAM6X,EAAMhX,IAAMsmB,EAAME,KAChDrnB,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CAMP,EC7NA,SAA2BtsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwY,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+H,EACAE,EACAC,EACAC,EACAC,EACAC,EACA4T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAh0B,EACAK,EACAE,EACAG,EACAG,EACAoX,EACAC,EACAC,EACAC,EACAC,EACAmI,EACAE,EACAC,EACAC,EACAC,EACA4T,EACAE,EACAC,EACAC,EACAC,EACAltC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACA/H,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAoB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAjX,GAkCJ,IA5BAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QA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K+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKnU,GAAImU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKjU,GAAIiU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtBq1B,EAAMK,IAAOz9B,EAAK1L,EAAM8N,IAAM6X,EAAMhX,IAAMsmB,EAAME,KAChDrnB,IAAMyF,EACN5E,IAAMme,EACNqI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CAQT,ECjSA,SAA2BxsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA6H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA0T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAl0B,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA8W,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAiI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACA0T,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAptC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACArI,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8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AMme,EACNqI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CACD57B,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,EACNyT,IAAMQ,CACN,CACD77B,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,EACNwT,IAAMS,CACN,CAUX,ECrWA,SAA4B1sC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACvC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACAv1B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAwT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAp0B,EACAK,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAwW,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA+H,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAwT,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAttC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr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CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CAOR,ECzQA,SAA2BvsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACA96B,EACA8nB,EACAiU,EACAC,EACAz2B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAqY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA8H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAj0B,EACAK,EACAE,EACAG,EACAG,EACAG,EACAiX,EACAC,EACAC,EACAC,EACAC,EACAC,EACAkI,GACAE,GACAC,GACAC,GACAC,GACAC,GACA2T,GACAE,GACAC,GACAC,GACAC,GACAC,GACAntC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAlI,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACApX,GAwCJ,IAlCAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U,EAAE/U,UACpDqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GACPmI,GAAKt1B,GAAEs1B,GACP6T,GAAKnpC,GAAEmpC,GAGPlzB,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,MAAO2T,EAAE3T,OAGhDuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OACP66B,GAAKvsB,EAAEtO,OACP8uC,GAAKp6B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KA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ACN,CAQT,EC3SA,SAA2BxsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACA96B,EACA8nB,EACAiU,EACAC,EACAz2B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA6H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA0T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAl0B,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA8W,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAiI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACA0T,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAptC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACArI,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAvX,GAwCJ,IAlCAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U,EAAE/U,UACpDqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GACPmI,GAAKt1B,GAAEs1B,GACP6T,GAAKnpC,GAAEmpC,GAGPlzB,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,MAAOuN,EAAEvN,MAAO2T,EAAE3T,OAGhDuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OACP66B,GAAKvsB,EAAEtO,OACP8uC,GAAKp6B,EAAE1U,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KACTm1B,EAAOtrB,EAAE7J,KACTgpC,EAAO/4B,EAAEjQ,KAGTyT,EAAM/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qI,IAAMD,EACNiU,IAAMC,EAEPt7B,IAAM4F,EACN/E,IAAMoe,EACNoI,IAAMC,EACN+T,IAAME,CACN,CACDv7B,IAAM+F,EACNlF,IAAMqe,EACNmI,IAAME,EACN8T,IAAMG,CACN,CACDx7B,IAAMkG,EACNrF,IAAMse,EACNkI,IAAMG,EACN6T,IAAMI,CACN,CACDz7B,IAAMqG,EACNxF,IAAMue,EACNiI,IAAMI,EACN4T,IAAMK,CACN,CACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CACD57B,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,EACNyT,IAAMQ,CACN,CASV,EC7UA,SAA2BzsC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACA96B,EACA8nB,EACAiU,EACAC,EACAz2B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAyT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAn0B,EACAK,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACA2W,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAgI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAyT,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACArtC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAxI,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GA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ACD17B,IAAMwG,EACN3F,IAAMwe,EACNgI,IAAMK,EACN2T,IAAMM,CACN,CACD37B,IAAM2G,EACN9F,IAAMye,EACN+H,IAAMM,EACN0T,IAAMO,CACN,CACD57B,IAAM8G,EACNjG,IAAM0e,EACN8H,IAAMO,EACNyT,IAAMQ,CACN,CACD77B,IAAMiH,EACNpG,IAAM2e,EACN6H,IAAMQ,EACNwT,IAAMS,CACN,CAUX,EC/WA,SAA4B1sC,EAAGuR,EAAG9E,EAAGoG,EAAGrE,GACvC,IAAI8J,EACAxV,EACA2lB,EACAsP,EACA6T,EACA96B,EACA8nB,EACAiU,EACAC,EACAz2B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAwT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAp0B,GACAK,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAwW,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA+H,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAwT,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAttC,GACAqY,GACA/V,GACAC,GACAqW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAke,GACAmI,GACA6T,GACA/yB,GACAiQ,GACAsQ,GACAiU,GACAr8B,GACAa,GACAwmB,GACAgU,GACA11B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GAwCJ,IAlCAlC,IADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,QAAS2O,EAAE3O,QAAS+U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AM4F,EACN/E,IAAMoe,CACN,CACDjf,GAAM+F,EACNlF,IAAMqe,CACN,CACDlf,GAAMkG,EACNrF,IAAMse,CACN,CACDnf,GAAMqG,EACNxF,IAAMue,CACN,CACDpf,GAAMwG,EACN3F,IAAMwe,CACN,CACDrf,GAAM2G,EACN9F,IAAMye,CACN,CACDtf,GAAM8G,EACNjG,IAAM0e,CACN,CASV,ECpPA,SAAyBnwB,EAAGuR,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACAxV,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA+X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5wB,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,GACAke,GACA/W,GACAiQ,GACA9X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GAGPlX,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OAGP2E,EAAO9C,EAAE4C,KACT6lB,EAAOlX,EAAE3O,KAGTyT,EAAM/E,GAAG,GACTse,EAAMJ,GAAG,GAGTzyB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAMuU,EAAE9N,UAAU,GAGlBnN,GAAI,EACEyjB,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACL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EAAS9Q,EAAK+F,EAAM8N,IAAMta,GAAG,CAAEsa,GAAIa,IAAM,CAAEzR,EAAGuR,MAE5DvU,EAAKyrB,EAAMhX,GAAIjD,EAAKtN,KAErB0P,IAAMyF,EACN5E,IAAMme,EACNt5B,IAAK,EAENsa,IAAM4F,EACN/E,IAAMoe,CACN,CACDjf,IAAM+F,EACNlF,IAAMqe,CACN,CACDlf,IAAMkG,EACNrF,IAAMse,CACN,CACDnf,IAAMqG,EACNxF,IAAMue,CACN,CACDpf,IAAMwG,EACN3F,IAAMwe,CACN,CACDrf,IAAM2G,EACN9F,IAAMye,CACN,CACDtf,IAAM8G,EACNjG,IAAM0e,CACN,CACDvf,IAAMiH,EACNpG,IAAM2e,CACN,CAUX,EC5QA,SAA0BpwB,EAAGuR,EAAG/C,EAAKV,EAAMD,GAC1C,IAAIyK,EACAxV,EACA2lB,EACA1rB,EACAC,EACAqZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA4X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAwW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7wB,EACAqY,EACA/V,EACAC,EACAqW,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAke,GACA/W,GACAiQ,GACA9X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAIgP,GAAWrR,EAAE9B,MAAO8B,EAAElC,QAASyT,EAAEzT,UAC9BqC,GACPmR,GAAKjP,GAAEiP,GACPke,GAAKntB,GAAEmtB,GAGPlX,EAAQ3C,GAAW3V,EAAEd,MAAOqS,EAAErS,OAG9BuZ,GAAKzY,EAAE7B,OACPuqB,GAAKnX,EAAEpT,OAGP2E,EAAO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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 15e948f..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import ns from '../docs/types/index'; -export = ns; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 1cb37d9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict";var r=require('@stdlib/utils-define-read-only-property/dist'),e={};r(e,"any",require('@stdlib/ndarray-base-any/dist'));r(e,"anyBy",require('@stdlib/ndarray-base-any-by/dist'));r(e,"appendSingletonDimensions",require('@stdlib/ndarray-base-append-singleton-dimensions/dist'));r(e,"assert",require('@stdlib/ndarray-base-assert/dist'));r(e,"assign",require('@stdlib/ndarray-base-assign/dist'));r(e,"assignDiagonal",require('@stdlib/ndarray-base-assign-diagonal/dist'));r(e,"assignScalar",require('@stdlib/ndarray-base-assign-scalar/dist'));r(e,"atleast1d",require('@stdlib/ndarray-base-atleast1d/dist'));r(e,"atleast2d",require('@stdlib/ndarray-base-atleast2d/dist'));r(e,"atleast3d",require('@stdlib/ndarray-base-atleast3d/dist'));r(e,"atleastnd",require('@stdlib/ndarray-base-atleastnd/dist'));r(e,"binary",require('@stdlib/ndarray-base-binary/dist'));r(e,"binaryInputCastingDataType",require('@stdlib/ndarray-base-binary-input-casting-dtype/dist'));r(e,"binaryLoopOrder",require('@stdlib/ndarray-base-binary-loop-interchange-order/dist'));r(e,"binaryOutputDataType",require('@stdlib/ndarray-base-binary-output-dtype/dist'));r(e,"binaryReduceStrided1d",require('@stdlib/ndarray-base-binary-reduce-strided1d/dist'));r(e,"binaryReduceStrided1dDispatch",require('@stdlib/ndarray-base-binary-reduce-strided1d-dispatch/dist'));r(e,"binaryReduceStrided1dDispatchFactory",require('@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory/dist'));r(e,"binaryBlockSize",require('@stdlib/ndarray-base-binary-tiling-block-size/dist'));r(e,"bind2vind",require('@stdlib/ndarray-base-bind2vind/dist'));r(e,"broadcastArray",require('@stdlib/ndarray-base-broadcast-array/dist'));r(e,"broadcastArrayExceptDimensions",require('@stdlib/ndarray-base-broadcast-array-except-dimensions/dist'));r(e,"broadcastArrays",require('@stdlib/ndarray-base-broadcast-arrays/dist'));r(e,"broadcastScalar",require('@stdlib/ndarray-base-broadcast-scalar/dist'));r(e,"broadcastScalarLike",require('@stdlib/ndarray-base-broadcast-scalar-like/dist'));r(e,"broadcastShapes",require('@stdlib/ndarray-base-broadcast-shapes/dist'));r(e,"buffer",require('@stdlib/ndarray-base-buffer/dist'));r(e,"bufferCtors",require('@stdlib/ndarray-base-buffer-ctors/dist'));r(e,"bufferDataType",require('@stdlib/ndarray-base-buffer-dtype/dist'));r(e,"bufferDataTypeEnum",require('@stdlib/ndarray-base-buffer-dtype-enum/dist'));r(e,"bytesPerElement",require('@stdlib/ndarray-base-bytes-per-element/dist'));r(e,"char2dtype",require('@stdlib/ndarray-base-char2dtype/dist'));r(e,"clampIndex",require('@stdlib/ndarray-base-clamp-index/dist'));r(e,"clipIndex",require('@stdlib/ndarray-base-clip-index/dist'));r(e,"complementShape",require('@stdlib/ndarray-base-complement-shape/dist'));r(e,"consensusOrder",require('@stdlib/ndarray-base-consensus-order/dist'));r(e,"copy",require('@stdlib/ndarray-base-copy/dist'));r(e,"countFalsy",require('@stdlib/ndarray-base-count-falsy/dist'));r(e,"countIf",require('@stdlib/ndarray-base-count-if/dist'));r(e,"countTruthy",require('@stdlib/ndarray-base-count-truthy/dist'));r(e,"ndarray",require('@stdlib/ndarray-base-ctor/dist'));r(e,"data",require('@stdlib/ndarray-base-data-buffer/dist'));r(e,"descriptor",require('@stdlib/ndarray-base-descriptor/dist'));r(e,"diagonal",require('@stdlib/ndarray-base-diagonal/dist'));r(e,"dtype",require('@stdlib/ndarray-base-dtype/dist'));r(e,"dtypeAlignment",require('@stdlib/ndarray-base-dtype-alignment/dist'));r(e,"dtypeChar",require('@stdlib/ndarray-base-dtype-char/dist'));r(e,"dtypeChars",require('@stdlib/ndarray-base-dtype-chars/dist'));r(e,"dtypeDesc",require('@stdlib/ndarray-base-dtype-desc/dist'));r(e,"dtypeEnum2Str",require('@stdlib/ndarray-base-dtype-enum2str/dist'));r(e,"dtypeEnums",require('@stdlib/ndarray-base-dtype-enums/dist'));r(e,"dtypeObjects",require('@stdlib/ndarray-base-dtype-objects/dist'));r(e,"dtypeResolveEnum",require('@stdlib/ndarray-base-dtype-resolve-enum/dist'));r(e,"dtypeResolveStr",require('@stdlib/ndarray-base-dtype-resolve-str/dist'));r(e,"dtypeStr2Enum",require('@stdlib/ndarray-base-dtype-str2enum/dist'));r(e,"dtypeStrings",require('@stdlib/ndarray-base-dtype-strings/dist'));r(e,"dtype2c",require('@stdlib/ndarray-base-dtype2c/dist'));r(e,"dtypes2enums",require('@stdlib/ndarray-base-dtypes2enums/dist'));r(e,"dtypes2signatures",require('@stdlib/ndarray-base-dtypes2signatures/dist'));r(e,"dtypes2strings",require('@stdlib/ndarray-base-dtypes2strings/dist'));r(e,"empty",require('@stdlib/ndarray-base-empty/dist'));r(e,"emptyLike",require('@stdlib/ndarray-base-empty-like/dist'));r(e,"every",require('@stdlib/ndarray-base-every/dist'));r(e,"everyBy",require('@stdlib/ndarray-base-every-by/dist'));r(e,"expandDimensions",require('@stdlib/ndarray-base-expand-dimensions/dist'));r(e,"falses",require('@stdlib/ndarray-base-falses/dist'));r(e,"falsesLike",require('@stdlib/ndarray-base-falses-like/dist'));r(e,"fill",require('@stdlib/ndarray-base-fill/dist'));r(e,"fillBy",require('@stdlib/ndarray-base-fill-by/dist'));r(e,"fillDiagonal",require('@stdlib/ndarray-base-fill-diagonal/dist'));r(e,"find",require('@stdlib/ndarray-base-find/dist'));r(e,"flag",require('@stdlib/ndarray-base-flag/dist'));r(e,"flags",require('@stdlib/ndarray-base-flags/dist'));r(e,"flattenShape",require('@stdlib/ndarray-base-flatten-shape/dist'));r(e,"flattenShapeFrom",require('@stdlib/ndarray-base-flatten-shape-from/dist'));r(e,"fliplr",require('@stdlib/ndarray-base-fliplr/dist'));r(e,"flipud",require('@stdlib/ndarray-base-flipud/dist'));r(e,"forEach",require('@stdlib/ndarray-base-for-each/dist'));r(e,"array2ndarray",require('@stdlib/ndarray-base-from-array/dist'));r(e,"scalar2ndarray",require('@stdlib/ndarray-base-from-scalar/dist'));r(e,"scalar2ndarrayLike",require('@stdlib/ndarray-base-from-scalar-like/dist'));r(e,"full",require('@stdlib/ndarray-base-full/dist'));r(e,"fullBy",require('@stdlib/ndarray-base-full-by/dist'));r(e,"includes",require('@stdlib/ndarray-base-includes/dist'));r(e,"ind",require('@stdlib/ndarray-base-ind/dist'));r(e,"ind2sub",require('@stdlib/ndarray-base-ind2sub/dist'));r(e,"iterationOrder",require('@stdlib/ndarray-base-iteration-order/dist'));r(e,"loopOrder",require('@stdlib/ndarray-base-loop-interchange-order/dist'));r(e,"map",require('@stdlib/ndarray-base-map/dist'));r(e,"maxViewBufferIndex",require('@stdlib/ndarray-base-max-view-buffer-index/dist'));r(e,"maybeBroadcastArray",require('@stdlib/ndarray-base-maybe-broadcast-array/dist'));r(e,"maybeBroadcastArrayExceptDimensions",require('@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions/dist'));r(e,"maybeBroadcastArrays",require('@stdlib/ndarray-base-maybe-broadcast-arrays/dist'));r(e,"metaDataProps",require('@stdlib/ndarray-base-meta-data-props/dist'));r(e,"minSignedIntegerDataType",require('@stdlib/ndarray-base-min-signed-integer-dtype/dist'));r(e,"minUnsignedIntegerDataType",require('@stdlib/ndarray-base-min-unsigned-integer-dtype/dist'));r(e,"minViewBufferIndex",require('@stdlib/ndarray-base-min-view-buffer-index/dist'));r(e,"minmaxViewBufferIndex",require('@stdlib/ndarray-base-minmax-view-buffer-index/dist'));r(e,"nans",require('@stdlib/ndarray-base-nans/dist'));r(e,"nansLike",require('@stdlib/ndarray-base-nans-like/dist'));r(e,"ndarraylike2descriptor",require('@stdlib/ndarray-base-ndarraylike2descriptor/dist'));r(e,"ndarraylike2ndarray",require('@stdlib/ndarray-base-ndarraylike2ndarray/dist'));r(e,"ndarraylike2object",require('@stdlib/ndarray-base-ndarraylike2object/dist'));r(e,"ndarraylike2scalar",require('@stdlib/ndarray-base-ndarraylike2scalar/dist'));r(e,"ndims",require('@stdlib/ndarray-base-ndims/dist'));r(e,"nextCartesianIndex",require('@stdlib/ndarray-base-next-cartesian-index/dist'));r(e,"nonsingletonDimensions",require('@stdlib/ndarray-base-nonsingleton-dimensions/dist'));r(e,"normalizeIndex",require('@stdlib/ndarray-base-normalize-index/dist'));r(e,"normalizeIndices",require('@stdlib/ndarray-base-normalize-indices/dist'));r(e,"nullary",require('@stdlib/ndarray-base-nullary/dist'));r(e,"nullaryLoopOrder",require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'));r(e,"nullaryStrided1d",require('@stdlib/ndarray-base-nullary-strided1d/dist'));r(e,"nullaryStrided1dDispatch",require('@stdlib/ndarray-base-nullary-strided1d-dispatch/dist'));r(e,"nullaryStrided1dDispatchFactory",require('@stdlib/ndarray-base-nullary-strided1d-dispatch-factory/dist'));r(e,"nullaryBlockSize",require('@stdlib/ndarray-base-nullary-tiling-block-size/dist'));r(e,"nulls",require('@stdlib/ndarray-base-nulls/dist'));r(e,"nullsLike",require('@stdlib/ndarray-base-nulls-like/dist'));r(e,"numel",require('@stdlib/ndarray-base-numel/dist'));r(e,"numelDimension",require('@stdlib/ndarray-base-numel-dimension/dist'));r(e,"offset",require('@stdlib/ndarray-base-offset/dist'));r(e,"offsets",require('@stdlib/ndarray-base-offsets/dist'));r(e,"ones",require('@stdlib/ndarray-base-ones/dist'));r(e,"onesLike",require('@stdlib/ndarray-base-ones-like/dist'));r(e,"order",require('@stdlib/ndarray-base-order/dist'));r(e,"outputDataType",require('@stdlib/ndarray-base-output-dtype/dist'));r(e,"outputOrder",require('@stdlib/ndarray-base-output-order/dist'));r(e,"outputPolicyEnum2Str",require('@stdlib/ndarray-base-output-policy-enum2str/dist'));r(e,"outputPolicyResolveEnum",require('@stdlib/ndarray-base-output-policy-resolve-enum/dist'));r(e,"outputPolicyResolveStr",require('@stdlib/ndarray-base-output-policy-resolve-str/dist'));r(e,"outputPolicyStr2Enum",require('@stdlib/ndarray-base-output-policy-str2enum/dist'));r(e,"pop",require('@stdlib/ndarray-base-pop/dist'));r(e,"prependSingletonDimensions",require('@stdlib/ndarray-base-prepend-singleton-dimensions/dist'));r(e,"promoteDataTypes",require('@stdlib/ndarray-base-promote-dtypes/dist'));r(e,"quaternaryLoopOrder",require('@stdlib/ndarray-base-quaternary-loop-interchange-order/dist'));r(e,"quaternaryBlockSize",require('@stdlib/ndarray-base-quaternary-tiling-block-size/dist'));r(e,"quinaryLoopOrder",require('@stdlib/ndarray-base-quinary-loop-interchange-order/dist'));r(e,"quinaryBlockSize",require('@stdlib/ndarray-base-quinary-tiling-block-size/dist'));r(e,"reinterpretBoolean",require('@stdlib/ndarray-base-reinterpret-boolean/dist'));r(e,"reinterpretComplex",require('@stdlib/ndarray-base-reinterpret-complex/dist'));r(e,"reinterpretComplex64",require('@stdlib/ndarray-base-reinterpret-complex64/dist'));r(e,"reinterpretComplex128",require('@stdlib/ndarray-base-reinterpret-complex128/dist'));r(e,"removeSingletonDimensions",require('@stdlib/ndarray-base-remove-singleton-dimensions/dist'));r(e,"reverse",require('@stdlib/ndarray-base-reverse/dist'));r(e,"reverseDimension",require('@stdlib/ndarray-base-reverse-dimension/dist'));r(e,"reverseDimensions",require('@stdlib/ndarray-base-reverse-dimensions/dist'));r(e,"rot90",require('@stdlib/ndarray-base-rot90/dist'));r(e,"rot180",require('@stdlib/ndarray-base-rot180/dist'));r(e,"rotl90",require('@stdlib/ndarray-base-rotl90/dist'));r(e,"rotr90",require('@stdlib/ndarray-base-rotr90/dist'));r(e,"serializeMetaData",require('@stdlib/ndarray-base-serialize-meta-data/dist'));r(e,"setDescriptorOffsets",require('@stdlib/ndarray-base-set-descriptor-offsets/dist'));r(e,"shape",require('@stdlib/ndarray-base-shape/dist'));r(e,"shape2strides",require('@stdlib/ndarray-base-shape2strides/dist'));r(e,"shift",require('@stdlib/ndarray-base-shift/dist'));r(e,"singletonDimensions",require('@stdlib/ndarray-base-singleton-dimensions/dist'));r(e,"slice",require('@stdlib/ndarray-base-slice/dist'));r(e,"sliceAssign",require('@stdlib/ndarray-base-slice-assign/dist'));r(e,"sliceDimension",require('@stdlib/ndarray-base-slice-dimension/dist'));r(e,"sliceDimensionFrom",require('@stdlib/ndarray-base-slice-dimension-from/dist'));r(e,"sliceDimensionTo",require('@stdlib/ndarray-base-slice-dimension-to/dist'));r(e,"sliceFrom",require('@stdlib/ndarray-base-slice-from/dist'));r(e,"sliceTo",require('@stdlib/ndarray-base-slice-to/dist'));r(e,"some",require('@stdlib/ndarray-base-some/dist'));r(e,"someBy",require('@stdlib/ndarray-base-some-by/dist'));r(e,"spreadDimensions",require('@stdlib/ndarray-base-spread-dimensions/dist'));r(e,"stride",require('@stdlib/ndarray-base-stride/dist'));r(e,"strides",require('@stdlib/ndarray-base-strides/dist'));r(e,"strides2offset",require('@stdlib/ndarray-base-strides2offset/dist'));r(e,"strides2order",require('@stdlib/ndarray-base-strides2order/dist'));r(e,"sub2ind",require('@stdlib/ndarray-base-sub2ind/dist'));r(e,"ternary",require('@stdlib/ndarray-base-ternary/dist'));r(e,"ternaryLoopOrder",require('@stdlib/ndarray-base-ternary-loop-interchange-order/dist'));r(e,"ternaryOutputDataType",require('@stdlib/ndarray-base-ternary-output-dtype/dist'));r(e,"ternaryBlockSize",require('@stdlib/ndarray-base-ternary-tiling-block-size/dist'));r(e,"tile",require('@stdlib/ndarray-base-tile/dist'));r(e,"blockSize",require('@stdlib/ndarray-base-tiling-block-size/dist'));r(e,"ndarray2array",require('@stdlib/ndarray-base-to-array/dist'));r(e,"toFlippedlr",require('@stdlib/ndarray-base-to-flippedlr/dist'));r(e,"toFlippedud",require('@stdlib/ndarray-base-to-flippedud/dist'));r(e,"toNormalizedIndices",require('@stdlib/ndarray-base-to-normalized-indices/dist'));r(e,"toReversed",require('@stdlib/ndarray-base-to-reversed/dist'));r(e,"toReversedDimension",require('@stdlib/ndarray-base-to-reversed-dimension/dist'));r(e,"toReversedDimensions",require('@stdlib/ndarray-base-to-reversed-dimensions/dist'));r(e,"toRot90",require('@stdlib/ndarray-base-to-rot90/dist'));r(e,"toRot180",require('@stdlib/ndarray-base-to-rot180/dist'));r(e,"toRotl90",require('@stdlib/ndarray-base-to-rotl90/dist'));r(e,"toRotr90",require('@stdlib/ndarray-base-to-rotr90/dist'));r(e,"toTransposed",require('@stdlib/ndarray-base-to-transposed/dist'));r(e,"toUnflattened",require('@stdlib/ndarray-base-to-unflattened/dist'));r(e,"toUniqueNormalizedIndices",require('@stdlib/ndarray-base-to-unique-normalized-indices/dist'));r(e,"transpose",require('@stdlib/ndarray-base-transpose/dist'));r(e,"trues",require('@stdlib/ndarray-base-trues/dist'));r(e,"truesLike",require('@stdlib/ndarray-base-trues-like/dist'));r(e,"unary",require('@stdlib/ndarray-base-unary/dist'));r(e,"unaryAccumulate",require('@stdlib/ndarray-base-unary-accumulate/dist'));r(e,"unaryAddonDispatch",require('@stdlib/ndarray-base-unary-addon-dispatch/dist'));r(e,"unaryBy",require('@stdlib/ndarray-base-unary-by/dist'));r(e,"unaryInputCastingDataType",require('@stdlib/ndarray-base-unary-input-casting-dtype/dist'));r(e,"unaryLoopOrder",require('@stdlib/ndarray-base-unary-loop-interchange-order/dist'));r(e,"unaryOutputDataType",require('@stdlib/ndarray-base-unary-output-dtype/dist'));r(e,"unaryReduceStrided1d",require('@stdlib/ndarray-base-unary-reduce-strided1d/dist'));r(e,"unaryReduceStrided1dAssignStruct",require('@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct/dist'));r(e,"unaryReduceStrided1dBy",require('@stdlib/ndarray-base-unary-reduce-strided1d-by/dist'));r(e,"unaryReduceStrided1dDispatch",require('@stdlib/ndarray-base-unary-reduce-strided1d-dispatch/dist'));r(e,"unaryReduceStrided1dDispatchBy",require('@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by/dist'));r(e,"unaryReduceStrided1dDispatchByFactory",require('@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory/dist'));r(e,"unaryReduceStrided1dDispatchFactory",require('@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory/dist'));r(e,"unaryReduceSubarray",require('@stdlib/ndarray-base-unary-reduce-subarray/dist'));r(e,"unaryReduceSubarrayBy",require('@stdlib/ndarray-base-unary-reduce-subarray-by/dist'));r(e,"unaryStrided1d",require('@stdlib/ndarray-base-unary-strided1d/dist'));r(e,"unaryStrided1dDispatch",require('@stdlib/ndarray-base-unary-strided1d-dispatch/dist'));r(e,"unaryStrided1dDispatchFactory",require('@stdlib/ndarray-base-unary-strided1d-dispatch-factory/dist'));r(e,"unaryBlockSize",require('@stdlib/ndarray-base-unary-tiling-block-size/dist'));r(e,"unflatten",require('@stdlib/ndarray-base-unflatten/dist'));r(e,"unflattenShape",require('@stdlib/ndarray-base-unflatten-shape/dist'));r(e,"vind2bind",require('@stdlib/ndarray-base-vind2bind/dist'));r(e,"wrapIndex",require('@stdlib/ndarray-base-wrap-index/dist'));r(e,"zeros",require('@stdlib/ndarray-base-zeros/dist'));r(e,"zerosLike",require('@stdlib/ndarray-base-zeros-like/dist'));r(e,"zip2views1d",require('@stdlib/ndarray-base-zip2views1d/dist'));module.exports=e; -/** @license Apache-2.0 */ -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index b52ccd6..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: function-object, napi, unary\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils-define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name any\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/any}\n*/\nsetReadOnly( ns, 'any', require( '@stdlib/ndarray-base-any' ) );\n\n/**\n* @name anyBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/any-by}\n*/\nsetReadOnly( ns, 'anyBy', require( '@stdlib/ndarray-base-any-by' ) );\n\n/**\n* @name appendSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/append-singleton-dimensions}\n*/\nsetReadOnly( ns, 'appendSingletonDimensions', require( '@stdlib/ndarray-base-append-singleton-dimensions' ) );\n\n/**\n* @name assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base/assert}\n*/\nsetReadOnly( ns, 'assert', require( '@stdlib/ndarray-base-assert' ) );\n\n/**\n* @name assign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign}\n*/\nsetReadOnly( ns, 'assign', require( '@stdlib/ndarray-base-assign' ) );\n\n/**\n* @name assignDiagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign-diagonal}\n*/\nsetReadOnly( ns, 'assignDiagonal', require( '@stdlib/ndarray-base-assign-diagonal' ) );\n\n/**\n* @name assignScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign-scalar}\n*/\nsetReadOnly( ns, 'assignScalar', require( '@stdlib/ndarray-base-assign-scalar' ) );\n\n/**\n* @name atleast1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast1d}\n*/\nsetReadOnly( ns, 'atleast1d', require( '@stdlib/ndarray-base-atleast1d' ) );\n\n/**\n* @name atleast2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast2d}\n*/\nsetReadOnly( ns, 'atleast2d', require( '@stdlib/ndarray-base-atleast2d' ) );\n\n/**\n* @name atleast3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast3d}\n*/\nsetReadOnly( ns, 'atleast3d', require( '@stdlib/ndarray-base-atleast3d' ) );\n\n/**\n* @name atleastnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleastnd}\n*/\nsetReadOnly( ns, 'atleastnd', require( '@stdlib/ndarray-base-atleastnd' ) );\n\n/**\n* @name binary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary}\n*/\nsetReadOnly( ns, 'binary', require( '@stdlib/ndarray-base-binary' ) );\n\n/**\n* @name binaryInputCastingDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-input-casting-dtype}\n*/\nsetReadOnly( ns, 'binaryInputCastingDataType', require( '@stdlib/ndarray-base-binary-input-casting-dtype' ) );\n\n/**\n* @name binaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'binaryLoopOrder', require( '@stdlib/ndarray-base-binary-loop-interchange-order' ) );\n\n/**\n* @name binaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-output-dtype}\n*/\nsetReadOnly( ns, 'binaryOutputDataType', require( '@stdlib/ndarray-base-binary-output-dtype' ) );\n\n/**\n* @name binaryReduceStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d}\n*/\nsetReadOnly( ns, 'binaryReduceStrided1d', require( '@stdlib/ndarray-base-binary-reduce-strided1d' ) );\n\n/**\n* @name binaryReduceStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch}\n*/\nsetReadOnly( ns, 'binaryReduceStrided1dDispatch', require( '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch' ) );\n\n/**\n* @name binaryReduceStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch-factory}\n*/\nsetReadOnly( ns, 'binaryReduceStrided1dDispatchFactory', require( '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory' ) );\n\n/**\n* @name binaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-tiling-block-size}\n*/\nsetReadOnly( ns, 'binaryBlockSize', require( '@stdlib/ndarray-base-binary-tiling-block-size' ) );\n\n/**\n* @name bind2vind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bind2vind}\n*/\nsetReadOnly( ns, 'bind2vind', require( '@stdlib/ndarray-base-bind2vind' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( '@stdlib/ndarray-base-broadcast-array' ) );\n\n/**\n* @name broadcastArrayExceptDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array-except-dimensions}\n*/\nsetReadOnly( ns, 'broadcastArrayExceptDimensions', require( '@stdlib/ndarray-base-broadcast-array-except-dimensions' ) );\n\n/**\n* @name broadcastArrays\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-arrays}\n*/\nsetReadOnly( ns, 'broadcastArrays', require( '@stdlib/ndarray-base-broadcast-arrays' ) );\n\n/**\n* @name broadcastScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar}\n*/\nsetReadOnly( ns, 'broadcastScalar', require( '@stdlib/ndarray-base-broadcast-scalar' ) );\n\n/**\n* @name broadcastScalarLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar-like}\n*/\nsetReadOnly( ns, 'broadcastScalarLike', require( '@stdlib/ndarray-base-broadcast-scalar-like' ) );\n\n/**\n* @name broadcastShapes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-shapes}\n*/\nsetReadOnly( ns, 'broadcastShapes', require( '@stdlib/ndarray-base-broadcast-shapes' ) );\n\n/**\n* @name buffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer}\n*/\nsetReadOnly( ns, 'buffer', require( '@stdlib/ndarray-base-buffer' ) );\n\n/**\n* @name bufferCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-ctors}\n*/\nsetReadOnly( ns, 'bufferCtors', require( '@stdlib/ndarray-base-buffer-ctors' ) );\n\n/**\n* @name bufferDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype}\n*/\nsetReadOnly( ns, 'bufferDataType', require( '@stdlib/ndarray-base-buffer-dtype' ) );\n\n/**\n* @name bufferDataTypeEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype-enum}\n*/\nsetReadOnly( ns, 'bufferDataTypeEnum', require( '@stdlib/ndarray-base-buffer-dtype-enum' ) );\n\n/**\n* @name bytesPerElement\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bytes-per-element}\n*/\nsetReadOnly( ns, 'bytesPerElement', require( '@stdlib/ndarray-base-bytes-per-element' ) );\n\n/**\n* @name char2dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/char2dtype}\n*/\nsetReadOnly( ns, 'char2dtype', require( '@stdlib/ndarray-base-char2dtype' ) );\n\n/**\n* @name clampIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clamp-index}\n*/\nsetReadOnly( ns, 'clampIndex', require( '@stdlib/ndarray-base-clamp-index' ) );\n\n/**\n* @name clipIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clip-index}\n*/\nsetReadOnly( ns, 'clipIndex', require( '@stdlib/ndarray-base-clip-index' ) );\n\n/**\n* @name complementShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/complement-shape}\n*/\nsetReadOnly( ns, 'complementShape', require( '@stdlib/ndarray-base-complement-shape' ) );\n\n/**\n* @name consensusOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/consensus-order}\n*/\nsetReadOnly( ns, 'consensusOrder', require( '@stdlib/ndarray-base-consensus-order' ) );\n\n/**\n* @name copy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/copy}\n*/\nsetReadOnly( ns, 'copy', require( '@stdlib/ndarray-base-copy' ) );\n\n/**\n* @name countFalsy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-falsy}\n*/\nsetReadOnly( ns, 'countFalsy', require( '@stdlib/ndarray-base-count-falsy' ) );\n\n/**\n* @name countIf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-if}\n*/\nsetReadOnly( ns, 'countIf', require( '@stdlib/ndarray-base-count-if' ) );\n\n/**\n* @name countTruthy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-truthy}\n*/\nsetReadOnly( ns, 'countTruthy', require( '@stdlib/ndarray-base-count-truthy' ) );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ctor}\n*/\nsetReadOnly( ns, 'ndarray', require( '@stdlib/ndarray-base-ctor' ) );\n\n/**\n* @name data\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/data-buffer}\n*/\nsetReadOnly( ns, 'data', require( '@stdlib/ndarray-base-data-buffer' ) );\n\n/**\n* @name descriptor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/descriptor}\n*/\nsetReadOnly( ns, 'descriptor', require( '@stdlib/ndarray-base-descriptor' ) );\n\n/**\n* @name diagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/diagonal}\n*/\nsetReadOnly( ns, 'diagonal', require( '@stdlib/ndarray-base-diagonal' ) );\n\n/**\n* @name dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype}\n*/\nsetReadOnly( ns, 'dtype', require( '@stdlib/ndarray-base-dtype' ) );\n\n/**\n* @name dtypeAlignment\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-alignment}\n*/\nsetReadOnly( ns, 'dtypeAlignment', require( '@stdlib/ndarray-base-dtype-alignment' ) );\n\n/**\n* @name dtypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-char}\n*/\nsetReadOnly( ns, 'dtypeChar', require( '@stdlib/ndarray-base-dtype-char' ) );\n\n/**\n* @name dtypeChars\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-chars}\n*/\nsetReadOnly( ns, 'dtypeChars', require( '@stdlib/ndarray-base-dtype-chars' ) );\n\n/**\n* @name dtypeDesc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-desc}\n*/\nsetReadOnly( ns, 'dtypeDesc', require( '@stdlib/ndarray-base-dtype-desc' ) );\n\n/**\n* @name dtypeEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enum2str}\n*/\nsetReadOnly( ns, 'dtypeEnum2Str', require( '@stdlib/ndarray-base-dtype-enum2str' ) );\n\n/**\n* @name dtypeEnums\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enums}\n*/\nsetReadOnly( ns, 'dtypeEnums', require( '@stdlib/ndarray-base-dtype-enums' ) );\n\n/**\n* @name dtypeObjects\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-objects}\n*/\nsetReadOnly( ns, 'dtypeObjects', require( '@stdlib/ndarray-base-dtype-objects' ) );\n\n/**\n* @name dtypeResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-enum}\n*/\nsetReadOnly( ns, 'dtypeResolveEnum', require( '@stdlib/ndarray-base-dtype-resolve-enum' ) );\n\n/**\n* @name dtypeResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-str}\n*/\nsetReadOnly( ns, 'dtypeResolveStr', require( '@stdlib/ndarray-base-dtype-resolve-str' ) );\n\n/**\n* @name dtypeStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-str2enum}\n*/\nsetReadOnly( ns, 'dtypeStr2Enum', require( '@stdlib/ndarray-base-dtype-str2enum' ) );\n\n/**\n* @name dtypeStrings\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-strings}\n*/\nsetReadOnly( ns, 'dtypeStrings', require( '@stdlib/ndarray-base-dtype-strings' ) );\n\n/**\n* @name dtype2c\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype2c}\n*/\nsetReadOnly( ns, 'dtype2c', require( '@stdlib/ndarray-base-dtype2c' ) );\n\n/**\n* @name dtypes2enums\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2enums}\n*/\nsetReadOnly( ns, 'dtypes2enums', require( '@stdlib/ndarray-base-dtypes2enums' ) );\n\n/**\n* @name dtypes2signatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2signatures}\n*/\nsetReadOnly( ns, 'dtypes2signatures', require( '@stdlib/ndarray-base-dtypes2signatures' ) );\n\n/**\n* @name dtypes2strings\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2strings}\n*/\nsetReadOnly( ns, 'dtypes2strings', require( '@stdlib/ndarray-base-dtypes2strings' ) );\n\n/**\n* @name empty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty}\n*/\nsetReadOnly( ns, 'empty', require( '@stdlib/ndarray-base-empty' ) );\n\n/**\n* @name emptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty-like}\n*/\nsetReadOnly( ns, 'emptyLike', require( '@stdlib/ndarray-base-empty-like' ) );\n\n/**\n* @name every\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/every}\n*/\nsetReadOnly( ns, 'every', require( '@stdlib/ndarray-base-every' ) );\n\n/**\n* @name everyBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/every-by}\n*/\nsetReadOnly( ns, 'everyBy', require( '@stdlib/ndarray-base-every-by' ) );\n\n/**\n* @name expandDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/expand-dimensions}\n*/\nsetReadOnly( ns, 'expandDimensions', require( '@stdlib/ndarray-base-expand-dimensions' ) );\n\n/**\n* @name falses\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/falses}\n*/\nsetReadOnly( ns, 'falses', require( '@stdlib/ndarray-base-falses' ) );\n\n/**\n* @name falsesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/falses-like}\n*/\nsetReadOnly( ns, 'falsesLike', require( '@stdlib/ndarray-base-falses-like' ) );\n\n/**\n* @name fill\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill}\n*/\nsetReadOnly( ns, 'fill', require( '@stdlib/ndarray-base-fill' ) );\n\n/**\n* @name fillBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill-by}\n*/\nsetReadOnly( ns, 'fillBy', require( '@stdlib/ndarray-base-fill-by' ) );\n\n/**\n* @name fillDiagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill-diagonal}\n*/\nsetReadOnly( ns, 'fillDiagonal', require( '@stdlib/ndarray-base-fill-diagonal' ) );\n\n/**\n* @name find\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/find}\n*/\nsetReadOnly( ns, 'find', require( '@stdlib/ndarray-base-find' ) );\n\n/**\n* @name flag\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flag}\n*/\nsetReadOnly( ns, 'flag', require( '@stdlib/ndarray-base-flag' ) );\n\n/**\n* @name flags\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flags}\n*/\nsetReadOnly( ns, 'flags', require( '@stdlib/ndarray-base-flags' ) );\n\n/**\n* @name flattenShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flatten-shape}\n*/\nsetReadOnly( ns, 'flattenShape', require( '@stdlib/ndarray-base-flatten-shape' ) );\n\n/**\n* @name flattenShapeFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flatten-shape-from}\n*/\nsetReadOnly( ns, 'flattenShapeFrom', require( '@stdlib/ndarray-base-flatten-shape-from' ) );\n\n/**\n* @name fliplr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fliplr}\n*/\nsetReadOnly( ns, 'fliplr', require( '@stdlib/ndarray-base-fliplr' ) );\n\n/**\n* @name flipud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flipud}\n*/\nsetReadOnly( ns, 'flipud', require( '@stdlib/ndarray-base-flipud' ) );\n\n/**\n* @name forEach\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/for-each}\n*/\nsetReadOnly( ns, 'forEach', require( '@stdlib/ndarray-base-for-each' ) );\n\n/**\n* @name array2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-array}\n*/\nsetReadOnly( ns, 'array2ndarray', require( '@stdlib/ndarray-base-from-array' ) );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar}\n*/\nsetReadOnly( ns, 'scalar2ndarray', require( '@stdlib/ndarray-base-from-scalar' ) );\n\n/**\n* @name scalar2ndarrayLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar-like}\n*/\nsetReadOnly( ns, 'scalar2ndarrayLike', require( '@stdlib/ndarray-base-from-scalar-like' ) );\n\n/**\n* @name full\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/full}\n*/\nsetReadOnly( ns, 'full', require( '@stdlib/ndarray-base-full' ) );\n\n/**\n* @name fullBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/full-by}\n*/\nsetReadOnly( ns, 'fullBy', require( '@stdlib/ndarray-base-full-by' ) );\n\n/**\n* @name includes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/includes}\n*/\nsetReadOnly( ns, 'includes', require( '@stdlib/ndarray-base-includes' ) );\n\n/**\n* @name ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind}\n*/\nsetReadOnly( ns, 'ind', require( '@stdlib/ndarray-base-ind' ) );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind2sub}\n*/\nsetReadOnly( ns, 'ind2sub', require( '@stdlib/ndarray-base-ind2sub' ) );\n\n/**\n* @name iterationOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/iteration-order}\n*/\nsetReadOnly( ns, 'iterationOrder', require( '@stdlib/ndarray-base-iteration-order' ) );\n\n/**\n* @name loopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/loop-interchange-order}\n*/\nsetReadOnly( ns, 'loopOrder', require( '@stdlib/ndarray-base-loop-interchange-order' ) );\n\n/**\n* @name map\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/map}\n*/\nsetReadOnly( ns, 'map', require( '@stdlib/ndarray-base-map' ) );\n\n/**\n* @name maxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/max-view-buffer-index}\n*/\nsetReadOnly( ns, 'maxViewBufferIndex', require( '@stdlib/ndarray-base-max-view-buffer-index' ) );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array}\n*/\nsetReadOnly( ns, 'maybeBroadcastArray', require( '@stdlib/ndarray-base-maybe-broadcast-array' ) );\n\n/**\n* @name maybeBroadcastArrayExceptDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array-except-dimensions}\n*/\nsetReadOnly( ns, 'maybeBroadcastArrayExceptDimensions', require( '@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions' ) );\n\n/**\n* @name maybeBroadcastArrays\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-arrays}\n*/\nsetReadOnly( ns, 'maybeBroadcastArrays', require( '@stdlib/ndarray-base-maybe-broadcast-arrays' ) );\n\n/**\n* @name metaDataProps\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/meta-data-props}\n*/\nsetReadOnly( ns, 'metaDataProps', require( '@stdlib/ndarray-base-meta-data-props' ) );\n\n/**\n* @name minSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-signed-integer-dtype}\n*/\nsetReadOnly( ns, 'minSignedIntegerDataType', require( '@stdlib/ndarray-base-min-signed-integer-dtype' ) );\n\n/**\n* @name minUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-unsigned-integer-dtype}\n*/\nsetReadOnly( ns, 'minUnsignedIntegerDataType', require( '@stdlib/ndarray-base-min-unsigned-integer-dtype' ) );\n\n/**\n* @name minViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-view-buffer-index}\n*/\nsetReadOnly( ns, 'minViewBufferIndex', require( '@stdlib/ndarray-base-min-view-buffer-index' ) );\n\n/**\n* @name minmaxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/minmax-view-buffer-index}\n*/\nsetReadOnly( ns, 'minmaxViewBufferIndex', require( '@stdlib/ndarray-base-minmax-view-buffer-index' ) );\n\n/**\n* @name nans\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nans}\n*/\nsetReadOnly( ns, 'nans', require( '@stdlib/ndarray-base-nans' ) );\n\n/**\n* @name nansLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nans-like}\n*/\nsetReadOnly( ns, 'nansLike', require( '@stdlib/ndarray-base-nans-like' ) );\n\n/**\n* @name ndarraylike2descriptor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2descriptor}\n*/\nsetReadOnly( ns, 'ndarraylike2descriptor', require( '@stdlib/ndarray-base-ndarraylike2descriptor' ) );\n\n/**\n* @name ndarraylike2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2ndarray}\n*/\nsetReadOnly( ns, 'ndarraylike2ndarray', require( '@stdlib/ndarray-base-ndarraylike2ndarray' ) );\n\n/**\n* @name ndarraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2object}\n*/\nsetReadOnly( ns, 'ndarraylike2object', require( '@stdlib/ndarray-base-ndarraylike2object' ) );\n\n/**\n* @name ndarraylike2scalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2scalar}\n*/\nsetReadOnly( ns, 'ndarraylike2scalar', require( '@stdlib/ndarray-base-ndarraylike2scalar' ) );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndims}\n*/\nsetReadOnly( ns, 'ndims', require( '@stdlib/ndarray-base-ndims' ) );\n\n/**\n* @name nextCartesianIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/next-cartesian-index}\n*/\nsetReadOnly( ns, 'nextCartesianIndex', require( '@stdlib/ndarray-base-next-cartesian-index' ) );\n\n/**\n* @name nonsingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nonsingleton-dimensions}\n*/\nsetReadOnly( ns, 'nonsingletonDimensions', require( '@stdlib/ndarray-base-nonsingleton-dimensions' ) );\n\n/**\n* @name normalizeIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-index}\n*/\nsetReadOnly( ns, 'normalizeIndex', require( '@stdlib/ndarray-base-normalize-index' ) );\n\n/**\n* @name normalizeIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-indices}\n*/\nsetReadOnly( ns, 'normalizeIndices', require( '@stdlib/ndarray-base-normalize-indices' ) );\n\n/**\n* @name nullary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary}\n*/\nsetReadOnly( ns, 'nullary', require( '@stdlib/ndarray-base-nullary' ) );\n\n/**\n* @name nullaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'nullaryLoopOrder', require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ) );\n\n/**\n* @name nullaryStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d}\n*/\nsetReadOnly( ns, 'nullaryStrided1d', require( '@stdlib/ndarray-base-nullary-strided1d' ) );\n\n/**\n* @name nullaryStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch}\n*/\nsetReadOnly( ns, 'nullaryStrided1dDispatch', require( '@stdlib/ndarray-base-nullary-strided1d-dispatch' ) );\n\n/**\n* @name nullaryStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch-factory}\n*/\nsetReadOnly( ns, 'nullaryStrided1dDispatchFactory', require( '@stdlib/ndarray-base-nullary-strided1d-dispatch-factory' ) );\n\n/**\n* @name nullaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-tiling-block-size}\n*/\nsetReadOnly( ns, 'nullaryBlockSize', require( '@stdlib/ndarray-base-nullary-tiling-block-size' ) );\n\n/**\n* @name nulls\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nulls}\n*/\nsetReadOnly( ns, 'nulls', require( '@stdlib/ndarray-base-nulls' ) );\n\n/**\n* @name nullsLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nulls-like}\n*/\nsetReadOnly( ns, 'nullsLike', require( '@stdlib/ndarray-base-nulls-like' ) );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel}\n*/\nsetReadOnly( ns, 'numel', require( '@stdlib/ndarray-base-numel' ) );\n\n/**\n* @name numelDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel-dimension}\n*/\nsetReadOnly( ns, 'numelDimension', require( '@stdlib/ndarray-base-numel-dimension' ) );\n\n/**\n* @name offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offset}\n*/\nsetReadOnly( ns, 'offset', require( '@stdlib/ndarray-base-offset' ) );\n\n/**\n* @name offsets\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offsets}\n*/\nsetReadOnly( ns, 'offsets', require( '@stdlib/ndarray-base-offsets' ) );\n\n/**\n* @name ones\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ones}\n*/\nsetReadOnly( ns, 'ones', require( '@stdlib/ndarray-base-ones' ) );\n\n/**\n* @name onesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ones-like}\n*/\nsetReadOnly( ns, 'onesLike', require( '@stdlib/ndarray-base-ones-like' ) );\n\n/**\n* @name order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/order}\n*/\nsetReadOnly( ns, 'order', require( '@stdlib/ndarray-base-order' ) );\n\n/**\n* @name outputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-dtype}\n*/\nsetReadOnly( ns, 'outputDataType', require( '@stdlib/ndarray-base-output-dtype' ) );\n\n/**\n* @name outputOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-order}\n*/\nsetReadOnly( ns, 'outputOrder', require( '@stdlib/ndarray-base-output-order' ) );\n\n/**\n* @name outputPolicyEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-enum2str}\n*/\nsetReadOnly( ns, 'outputPolicyEnum2Str', require( '@stdlib/ndarray-base-output-policy-enum2str' ) );\n\n/**\n* @name outputPolicyResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-enum}\n*/\nsetReadOnly( ns, 'outputPolicyResolveEnum', require( '@stdlib/ndarray-base-output-policy-resolve-enum' ) );\n\n/**\n* @name outputPolicyResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-str}\n*/\nsetReadOnly( ns, 'outputPolicyResolveStr', require( '@stdlib/ndarray-base-output-policy-resolve-str' ) );\n\n/**\n* @name outputPolicyStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-str2enum}\n*/\nsetReadOnly( ns, 'outputPolicyStr2Enum', require( '@stdlib/ndarray-base-output-policy-str2enum' ) );\n\n/**\n* @name pop\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/pop}\n*/\nsetReadOnly( ns, 'pop', require( '@stdlib/ndarray-base-pop' ) );\n\n/**\n* @name prependSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/prepend-singleton-dimensions}\n*/\nsetReadOnly( ns, 'prependSingletonDimensions', require( '@stdlib/ndarray-base-prepend-singleton-dimensions' ) );\n\n/**\n* @name promoteDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/promote-dtypes}\n*/\nsetReadOnly( ns, 'promoteDataTypes', require( '@stdlib/ndarray-base-promote-dtypes' ) );\n\n/**\n* @name quaternaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quaternary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'quaternaryLoopOrder', require( '@stdlib/ndarray-base-quaternary-loop-interchange-order' ) );\n\n/**\n* @name quaternaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quaternary-tiling-block-size}\n*/\nsetReadOnly( ns, 'quaternaryBlockSize', require( '@stdlib/ndarray-base-quaternary-tiling-block-size' ) );\n\n/**\n* @name quinaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quinary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'quinaryLoopOrder', require( '@stdlib/ndarray-base-quinary-loop-interchange-order' ) );\n\n/**\n* @name quinaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quinary-tiling-block-size}\n*/\nsetReadOnly( ns, 'quinaryBlockSize', require( '@stdlib/ndarray-base-quinary-tiling-block-size' ) );\n\n/**\n* @name reinterpretBoolean\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-boolean}\n*/\nsetReadOnly( ns, 'reinterpretBoolean', require( '@stdlib/ndarray-base-reinterpret-boolean' ) );\n\n/**\n* @name reinterpretComplex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex}\n*/\nsetReadOnly( ns, 'reinterpretComplex', require( '@stdlib/ndarray-base-reinterpret-complex' ) );\n\n/**\n* @name reinterpretComplex64\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex64}\n*/\nsetReadOnly( ns, 'reinterpretComplex64', require( '@stdlib/ndarray-base-reinterpret-complex64' ) );\n\n/**\n* @name reinterpretComplex128\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex128}\n*/\nsetReadOnly( ns, 'reinterpretComplex128', require( '@stdlib/ndarray-base-reinterpret-complex128' ) );\n\n/**\n* @name removeSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/remove-singleton-dimensions}\n*/\nsetReadOnly( ns, 'removeSingletonDimensions', require( '@stdlib/ndarray-base-remove-singleton-dimensions' ) );\n\n/**\n* @name reverse\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse}\n*/\nsetReadOnly( ns, 'reverse', require( '@stdlib/ndarray-base-reverse' ) );\n\n/**\n* @name reverseDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimension}\n*/\nsetReadOnly( ns, 'reverseDimension', require( '@stdlib/ndarray-base-reverse-dimension' ) );\n\n/**\n* @name reverseDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimensions}\n*/\nsetReadOnly( ns, 'reverseDimensions', require( '@stdlib/ndarray-base-reverse-dimensions' ) );\n\n/**\n* @name rot90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rot90}\n*/\nsetReadOnly( ns, 'rot90', require( '@stdlib/ndarray-base-rot90' ) );\n\n/**\n* @name rot180\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rot180}\n*/\nsetReadOnly( ns, 'rot180', require( '@stdlib/ndarray-base-rot180' ) );\n\n/**\n* @name rotl90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rotl90}\n*/\nsetReadOnly( ns, 'rotl90', require( '@stdlib/ndarray-base-rotl90' ) );\n\n/**\n* @name rotr90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rotr90}\n*/\nsetReadOnly( ns, 'rotr90', require( '@stdlib/ndarray-base-rotr90' ) );\n\n/**\n* @name serializeMetaData\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/serialize-meta-data}\n*/\nsetReadOnly( ns, 'serializeMetaData', require( '@stdlib/ndarray-base-serialize-meta-data' ) );\n\n/**\n* @name setDescriptorOffsets\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/set-descriptor-offsets}\n*/\nsetReadOnly( ns, 'setDescriptorOffsets', require( '@stdlib/ndarray-base-set-descriptor-offsets' ) );\n\n/**\n* @name shape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape}\n*/\nsetReadOnly( ns, 'shape', require( '@stdlib/ndarray-base-shape' ) );\n\n/**\n* @name shape2strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape2strides}\n*/\nsetReadOnly( ns, 'shape2strides', require( '@stdlib/ndarray-base-shape2strides' ) );\n\n/**\n* @name shift\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shift}\n*/\nsetReadOnly( ns, 'shift', require( '@stdlib/ndarray-base-shift' ) );\n\n/**\n* @name singletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/singleton-dimensions}\n*/\nsetReadOnly( ns, 'singletonDimensions', require( '@stdlib/ndarray-base-singleton-dimensions' ) );\n\n/**\n* @name slice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice}\n*/\nsetReadOnly( ns, 'slice', require( '@stdlib/ndarray-base-slice' ) );\n\n/**\n* @name sliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-assign}\n*/\nsetReadOnly( ns, 'sliceAssign', require( '@stdlib/ndarray-base-slice-assign' ) );\n\n/**\n* @name sliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension}\n*/\nsetReadOnly( ns, 'sliceDimension', require( '@stdlib/ndarray-base-slice-dimension' ) );\n\n/**\n* @name sliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-from}\n*/\nsetReadOnly( ns, 'sliceDimensionFrom', require( '@stdlib/ndarray-base-slice-dimension-from' ) );\n\n/**\n* @name sliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-to}\n*/\nsetReadOnly( ns, 'sliceDimensionTo', require( '@stdlib/ndarray-base-slice-dimension-to' ) );\n\n/**\n* @name sliceFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-from}\n*/\nsetReadOnly( ns, 'sliceFrom', require( '@stdlib/ndarray-base-slice-from' ) );\n\n/**\n* @name sliceTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-to}\n*/\nsetReadOnly( ns, 'sliceTo', require( '@stdlib/ndarray-base-slice-to' ) );\n\n/**\n* @name some\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/some}\n*/\nsetReadOnly( ns, 'some', require( '@stdlib/ndarray-base-some' ) );\n\n/**\n* @name someBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/some-by}\n*/\nsetReadOnly( ns, 'someBy', require( '@stdlib/ndarray-base-some-by' ) );\n\n/**\n* @name spreadDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/spread-dimensions}\n*/\nsetReadOnly( ns, 'spreadDimensions', require( '@stdlib/ndarray-base-spread-dimensions' ) );\n\n/**\n* @name stride\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/stride}\n*/\nsetReadOnly( ns, 'stride', require( '@stdlib/ndarray-base-stride' ) );\n\n/**\n* @name strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides}\n*/\nsetReadOnly( ns, 'strides', require( '@stdlib/ndarray-base-strides' ) );\n\n/**\n* @name strides2offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2offset}\n*/\nsetReadOnly( ns, 'strides2offset', require( '@stdlib/ndarray-base-strides2offset' ) );\n\n/**\n* @name strides2order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2order}\n*/\nsetReadOnly( ns, 'strides2order', require( '@stdlib/ndarray-base-strides2order' ) );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/sub2ind}\n*/\nsetReadOnly( ns, 'sub2ind', require( '@stdlib/ndarray-base-sub2ind' ) );\n\n/**\n* @name ternary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary}\n*/\nsetReadOnly( ns, 'ternary', require( '@stdlib/ndarray-base-ternary' ) );\n\n/**\n* @name ternaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'ternaryLoopOrder', require( '@stdlib/ndarray-base-ternary-loop-interchange-order' ) );\n\n/**\n* @name ternaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-output-dtype}\n*/\nsetReadOnly( ns, 'ternaryOutputDataType', require( '@stdlib/ndarray-base-ternary-output-dtype' ) );\n\n/**\n* @name ternaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-tiling-block-size}\n*/\nsetReadOnly( ns, 'ternaryBlockSize', require( '@stdlib/ndarray-base-ternary-tiling-block-size' ) );\n\n/**\n* @name tile\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/tile}\n*/\nsetReadOnly( ns, 'tile', require( '@stdlib/ndarray-base-tile' ) );\n\n/**\n* @name blockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/tiling-block-size}\n*/\nsetReadOnly( ns, 'blockSize', require( '@stdlib/ndarray-base-tiling-block-size' ) );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-array}\n*/\nsetReadOnly( ns, 'ndarray2array', require( '@stdlib/ndarray-base-to-array' ) );\n\n/**\n* @name toFlippedlr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-flippedlr}\n*/\nsetReadOnly( ns, 'toFlippedlr', require( '@stdlib/ndarray-base-to-flippedlr' ) );\n\n/**\n* @name toFlippedud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-flippedud}\n*/\nsetReadOnly( ns, 'toFlippedud', require( '@stdlib/ndarray-base-to-flippedud' ) );\n\n/**\n* @name toNormalizedIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-normalized-indices}\n*/\nsetReadOnly( ns, 'toNormalizedIndices', require( '@stdlib/ndarray-base-to-normalized-indices' ) );\n\n/**\n* @name toReversed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed}\n*/\nsetReadOnly( ns, 'toReversed', require( '@stdlib/ndarray-base-to-reversed' ) );\n\n/**\n* @name toReversedDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed-dimension}\n*/\nsetReadOnly( ns, 'toReversedDimension', require( '@stdlib/ndarray-base-to-reversed-dimension' ) );\n\n/**\n* @name toReversedDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed-dimensions}\n*/\nsetReadOnly( ns, 'toReversedDimensions', require( '@stdlib/ndarray-base-to-reversed-dimensions' ) );\n\n/**\n* @name toRot90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rot90}\n*/\nsetReadOnly( ns, 'toRot90', require( '@stdlib/ndarray-base-to-rot90' ) );\n\n/**\n* @name toRot180\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rot180}\n*/\nsetReadOnly( ns, 'toRot180', require( '@stdlib/ndarray-base-to-rot180' ) );\n\n/**\n* @name toRotl90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rotl90}\n*/\nsetReadOnly( ns, 'toRotl90', require( '@stdlib/ndarray-base-to-rotl90' ) );\n\n/**\n* @name toRotr90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rotr90}\n*/\nsetReadOnly( ns, 'toRotr90', require( '@stdlib/ndarray-base-to-rotr90' ) );\n\n/**\n* @name toTransposed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-transposed}\n*/\nsetReadOnly( ns, 'toTransposed', require( '@stdlib/ndarray-base-to-transposed' ) );\n\n/**\n* @name toUnflattened\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-unflattened}\n*/\nsetReadOnly( ns, 'toUnflattened', require( '@stdlib/ndarray-base-to-unflattened' ) );\n\n/**\n* @name toUniqueNormalizedIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-unique-normalized-indices}\n*/\nsetReadOnly( ns, 'toUniqueNormalizedIndices', require( '@stdlib/ndarray-base-to-unique-normalized-indices' ) );\n\n/**\n* @name transpose\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/transpose}\n*/\nsetReadOnly( ns, 'transpose', require( '@stdlib/ndarray-base-transpose' ) );\n\n/**\n* @name trues\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/trues}\n*/\nsetReadOnly( ns, 'trues', require( '@stdlib/ndarray-base-trues' ) );\n\n/**\n* @name truesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/trues-like}\n*/\nsetReadOnly( ns, 'truesLike', require( '@stdlib/ndarray-base-trues-like' ) );\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary}\n*/\nsetReadOnly( ns, 'unary', require( '@stdlib/ndarray-base-unary' ) );\n\n/**\n* @name unaryAccumulate\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-accumulate}\n*/\nsetReadOnly( ns, 'unaryAccumulate', require( '@stdlib/ndarray-base-unary-accumulate' ) );\n\n/**\n* @name unaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-addon-dispatch}\n*/\nsetReadOnly( ns, 'unaryAddonDispatch', require( '@stdlib/ndarray-base-unary-addon-dispatch' ) );\n\n/**\n* @name unaryBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-by}\n*/\nsetReadOnly( ns, 'unaryBy', require( '@stdlib/ndarray-base-unary-by' ) );\n\n/**\n* @name unaryInputCastingDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-input-casting-dtype}\n*/\nsetReadOnly( ns, 'unaryInputCastingDataType', require( '@stdlib/ndarray-base-unary-input-casting-dtype' ) );\n\n/**\n* @name unaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'unaryLoopOrder', require( '@stdlib/ndarray-base-unary-loop-interchange-order' ) );\n\n/**\n* @name unaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-output-dtype}\n*/\nsetReadOnly( ns, 'unaryOutputDataType', require( '@stdlib/ndarray-base-unary-output-dtype' ) );\n\n/**\n* @name unaryReduceStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1d', require( '@stdlib/ndarray-base-unary-reduce-strided1d' ) );\n\n/**\n* @name unaryReduceStrided1dAssignStruct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-assign-struct}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1dAssignStruct', require( '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct' ) );\n\n/**\n* @name unaryReduceStrided1dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-by}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1dBy', require( '@stdlib/ndarray-base-unary-reduce-strided1d-by' ) );\n\n/**\n* @name unaryReduceStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1dDispatch', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch' ) );\n\n/**\n* @name unaryReduceStrided1dDispatchBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchBy', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by' ) );\n\n/**\n* @name unaryReduceStrided1dDispatchByFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by-factory}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchByFactory', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory' ) );\n\n/**\n* @name unaryReduceStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-factory}\n*/\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchFactory', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory' ) );\n\n/**\n* @name unaryReduceSubarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray}\n*/\nsetReadOnly( ns, 'unaryReduceSubarray', require( '@stdlib/ndarray-base-unary-reduce-subarray' ) );\n\n/**\n* @name unaryReduceSubarrayBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray-by}\n*/\nsetReadOnly( ns, 'unaryReduceSubarrayBy', require( '@stdlib/ndarray-base-unary-reduce-subarray-by' ) );\n\n/**\n* @name unaryStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d}\n*/\nsetReadOnly( ns, 'unaryStrided1d', require( '@stdlib/ndarray-base-unary-strided1d' ) );\n\n/**\n* @name unaryStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch}\n*/\nsetReadOnly( ns, 'unaryStrided1dDispatch', require( '@stdlib/ndarray-base-unary-strided1d-dispatch' ) );\n\n/**\n* @name unaryStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch-factory}\n*/\nsetReadOnly( ns, 'unaryStrided1dDispatchFactory', require( '@stdlib/ndarray-base-unary-strided1d-dispatch-factory' ) );\n\n/**\n* @name unaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-tiling-block-size}\n*/\nsetReadOnly( ns, 'unaryBlockSize', require( '@stdlib/ndarray-base-unary-tiling-block-size' ) );\n\n/**\n* @name unflatten\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unflatten}\n*/\nsetReadOnly( ns, 'unflatten', require( '@stdlib/ndarray-base-unflatten' ) );\n\n/**\n* @name unflattenShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unflatten-shape}\n*/\nsetReadOnly( ns, 'unflattenShape', require( '@stdlib/ndarray-base-unflatten-shape' ) );\n\n/**\n* @name vind2bind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/vind2bind}\n*/\nsetReadOnly( ns, 'vind2bind', require( '@stdlib/ndarray-base-vind2bind' ) );\n\n/**\n* @name wrapIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/wrap-index}\n*/\nsetReadOnly( ns, 'wrapIndex', require( '@stdlib/ndarray-base-wrap-index' ) );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros}\n*/\nsetReadOnly( ns, 'zeros', require( '@stdlib/ndarray-base-zeros' ) );\n\n/**\n* @name zerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros-like}\n*/\nsetReadOnly( ns, 'zerosLike', require( '@stdlib/ndarray-base-zeros-like' ) );\n\n/**\n* @name zip2views1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zip2views1d}\n*/\nsetReadOnly( ns, 'zip2views1d', require( '@stdlib/ndarray-base-zip2views1d' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n"], - "mappings": "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", - "names": ["setReadOnly", "ns"] -} diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts deleted file mode 100644 index fedb8c6..0000000 --- a/docs/types/index.d.ts +++ /dev/null @@ -1,6462 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/* eslint-disable max-lines */ - -import any = require( '@stdlib/ndarray-base-any' ); -import anyBy = require( '@stdlib/ndarray-base-any-by' ); -import appendSingletonDimensions = require( '@stdlib/ndarray-base-append-singleton-dimensions' ); -import assert = require( '@stdlib/ndarray-base-assert' ); -import assign = require( '@stdlib/ndarray-base-assign' ); -import assignDiagonal = require( '@stdlib/ndarray-base-assign-diagonal' ); -import assignScalar = require( '@stdlib/ndarray-base-assign-scalar' ); -import atleast1d = require( '@stdlib/ndarray-base-atleast1d' ); -import atleast2d = require( '@stdlib/ndarray-base-atleast2d' ); -import atleast3d = require( '@stdlib/ndarray-base-atleast3d' ); -import atleastnd = require( '@stdlib/ndarray-base-atleastnd' ); -import binary = require( '@stdlib/ndarray-base-binary' ); -import binaryInputCastingDataType = require( '@stdlib/ndarray-base-binary-input-casting-dtype' ); -import binaryLoopOrder = require( '@stdlib/ndarray-base-binary-loop-interchange-order' ); -import binaryOutputDataType = require( '@stdlib/ndarray-base-binary-output-dtype' ); -import binaryReduceStrided1dDispatch = require( '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch' ); -import binaryReduceStrided1dDispatchFactory = require( '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory' ); -import binaryBlockSize = require( '@stdlib/ndarray-base-binary-tiling-block-size' ); -import bind2vind = require( '@stdlib/ndarray-base-bind2vind' ); -import broadcastArray = require( '@stdlib/ndarray-base-broadcast-array' ); -import broadcastArrayExceptDimensions = require( '@stdlib/ndarray-base-broadcast-array-except-dimensions' ); -import broadcastArrays = require( '@stdlib/ndarray-base-broadcast-arrays' ); -import broadcastScalar = require( '@stdlib/ndarray-base-broadcast-scalar' ); -import broadcastScalarLike = require( '@stdlib/ndarray-base-broadcast-scalar-like' ); -import broadcastShapes = require( '@stdlib/ndarray-base-broadcast-shapes' ); -import buffer = require( '@stdlib/ndarray-base-buffer' ); -import bufferCtors = require( '@stdlib/ndarray-base-buffer-ctors' ); -import bufferDataType = require( '@stdlib/ndarray-base-buffer-dtype' ); -import bufferDataTypeEnum = require( '@stdlib/ndarray-base-buffer-dtype-enum' ); -import bytesPerElement = require( '@stdlib/ndarray-base-bytes-per-element' ); -import char2dtype = require( '@stdlib/ndarray-base-char2dtype' ); -import clampIndex = require( '@stdlib/ndarray-base-clamp-index' ); -import clipIndex = require( '@stdlib/ndarray-base-clip-index' ); -import complementShape = require( '@stdlib/ndarray-base-complement-shape' ); -import consensusOrder = require( '@stdlib/ndarray-base-consensus-order' ); -import copy = require( '@stdlib/ndarray-base-copy' ); -import countFalsy = require( '@stdlib/ndarray-base-count-falsy' ); -import countIf = require( '@stdlib/ndarray-base-count-if' ); -import countTruthy = require( '@stdlib/ndarray-base-count-truthy' ); -import ndarray = require( '@stdlib/ndarray-base-ctor' ); -import data = require( '@stdlib/ndarray-base-data-buffer' ); -import descriptor = require( '@stdlib/ndarray-base-descriptor' ); -import diagonal = require( '@stdlib/ndarray-base-diagonal' ); -import dtype = require( '@stdlib/ndarray-base-dtype' ); -import dtypeAlignment = require( '@stdlib/ndarray-base-dtype-alignment' ); -import dtypeChar = require( '@stdlib/ndarray-base-dtype-char' ); -import dtypeChars = require( '@stdlib/ndarray-base-dtype-chars' ); -import dtypeDesc = require( '@stdlib/ndarray-base-dtype-desc' ); -import dtypeEnum2Str = require( '@stdlib/ndarray-base-dtype-enum2str' ); -import dtypeEnums = require( '@stdlib/ndarray-base-dtype-enums' ); -import dtypeObjects = require( '@stdlib/ndarray-base-dtype-objects' ); -import dtypeResolveEnum = require( '@stdlib/ndarray-base-dtype-resolve-enum' ); -import dtypeResolveStr = require( '@stdlib/ndarray-base-dtype-resolve-str' ); -import dtypeStr2Enum = require( '@stdlib/ndarray-base-dtype-str2enum' ); -import dtypeStrings = require( '@stdlib/ndarray-base-dtype-strings' ); -import dtype2c = require( '@stdlib/ndarray-base-dtype2c' ); -import dtypes2enums = require( '@stdlib/ndarray-base-dtypes2enums' ); -import dtypes2signatures = require( '@stdlib/ndarray-base-dtypes2signatures' ); -import dtypes2strings = require( '@stdlib/ndarray-base-dtypes2strings' ); -import empty = require( '@stdlib/ndarray-base-empty' ); -import emptyLike = require( '@stdlib/ndarray-base-empty-like' ); -import every = require( '@stdlib/ndarray-base-every' ); -import everyBy = require( '@stdlib/ndarray-base-every-by' ); -import expandDimensions = require( '@stdlib/ndarray-base-expand-dimensions' ); -import falses = require( '@stdlib/ndarray-base-falses' ); -import falsesLike = require( '@stdlib/ndarray-base-falses-like' ); -import fill = require( '@stdlib/ndarray-base-fill' ); -import fillBy = require( '@stdlib/ndarray-base-fill-by' ); -import fillDiagonal = require( '@stdlib/ndarray-base-fill-diagonal' ); -import find = require( '@stdlib/ndarray-base-find' ); -import flag = require( '@stdlib/ndarray-base-flag' ); -import flags = require( '@stdlib/ndarray-base-flags' ); -import flattenShape = require( '@stdlib/ndarray-base-flatten-shape' ); -import flattenShapeFrom = require( '@stdlib/ndarray-base-flatten-shape-from' ); -import fliplr = require( '@stdlib/ndarray-base-fliplr' ); -import flipud = require( '@stdlib/ndarray-base-flipud' ); -import forEach = require( '@stdlib/ndarray-base-for-each' ); -import array2ndarray = require( '@stdlib/ndarray-base-from-array' ); -import scalar2ndarray = require( '@stdlib/ndarray-base-from-scalar' ); -import scalar2ndarrayLike = require( '@stdlib/ndarray-base-from-scalar-like' ); -import full = require( '@stdlib/ndarray-base-full' ); -import fullBy = require( '@stdlib/ndarray-base-full-by' ); -import includes = require( '@stdlib/ndarray-base-includes' ); -import ind = require( '@stdlib/ndarray-base-ind' ); -import ind2sub = require( '@stdlib/ndarray-base-ind2sub' ); -import iterationOrder = require( '@stdlib/ndarray-base-iteration-order' ); -import loopOrder = require( '@stdlib/ndarray-base-loop-interchange-order' ); -import map = require( '@stdlib/ndarray-base-map' ); -import maxViewBufferIndex = require( '@stdlib/ndarray-base-max-view-buffer-index' ); -import maybeBroadcastArray = require( '@stdlib/ndarray-base-maybe-broadcast-array' ); -import maybeBroadcastArrayExceptDimensions = require( '@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions' ); -import maybeBroadcastArrays = require( '@stdlib/ndarray-base-maybe-broadcast-arrays' ); -import metaDataProps = require( '@stdlib/ndarray-base-meta-data-props' ); -import minSignedIntegerDataType = require( '@stdlib/ndarray-base-min-signed-integer-dtype' ); -import minUnsignedIntegerDataType = require( '@stdlib/ndarray-base-min-unsigned-integer-dtype' ); -import minViewBufferIndex = require( '@stdlib/ndarray-base-min-view-buffer-index' ); -import minmaxViewBufferIndex = require( '@stdlib/ndarray-base-minmax-view-buffer-index' ); -import nans = require( '@stdlib/ndarray-base-nans' ); -import nansLike = require( '@stdlib/ndarray-base-nans-like' ); -import ndarraylike2descriptor = require( '@stdlib/ndarray-base-ndarraylike2descriptor' ); -import ndarraylike2ndarray = require( '@stdlib/ndarray-base-ndarraylike2ndarray' ); -import ndarraylike2object = require( '@stdlib/ndarray-base-ndarraylike2object' ); -import ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' ); -import ndims = require( '@stdlib/ndarray-base-ndims' ); -import nextCartesianIndex = require( '@stdlib/ndarray-base-next-cartesian-index' ); -import nonsingletonDimensions = require( '@stdlib/ndarray-base-nonsingleton-dimensions' ); -import normalizeIndex = require( '@stdlib/ndarray-base-normalize-index' ); -import normalizeIndices = require( '@stdlib/ndarray-base-normalize-indices' ); -import nullary = require( '@stdlib/ndarray-base-nullary' ); -import nullaryLoopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -import nullaryStrided1dDispatch = require( '@stdlib/ndarray-base-nullary-strided1d-dispatch' ); -import nullaryStrided1dDispatchFactory = require( '@stdlib/ndarray-base-nullary-strided1d-dispatch-factory' ); -import nullaryBlockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -import nulls = require( '@stdlib/ndarray-base-nulls' ); -import nullsLike = require( '@stdlib/ndarray-base-nulls-like' ); -import numel = require( '@stdlib/ndarray-base-numel' ); -import numelDimension = require( '@stdlib/ndarray-base-numel-dimension' ); -import offset = require( '@stdlib/ndarray-base-offset' ); -import offsets = require( '@stdlib/ndarray-base-offsets' ); -import ones = require( '@stdlib/ndarray-base-ones' ); -import onesLike = require( '@stdlib/ndarray-base-ones-like' ); -import order = require( '@stdlib/ndarray-base-order' ); -import outputDataType = require( '@stdlib/ndarray-base-output-dtype' ); -import outputOrder = require( '@stdlib/ndarray-base-output-order' ); -import outputPolicyEnum2Str = require( '@stdlib/ndarray-base-output-policy-enum2str' ); -import outputPolicyResolveEnum = require( '@stdlib/ndarray-base-output-policy-resolve-enum' ); -import outputPolicyResolveStr = require( '@stdlib/ndarray-base-output-policy-resolve-str' ); -import outputPolicyStr2Enum = require( '@stdlib/ndarray-base-output-policy-str2enum' ); -import pop = require( '@stdlib/ndarray-base-pop' ); -import prependSingletonDimensions = require( '@stdlib/ndarray-base-prepend-singleton-dimensions' ); -import promoteDataTypes = require( '@stdlib/ndarray-base-promote-dtypes' ); -import quaternaryLoopOrder = require( '@stdlib/ndarray-base-quaternary-loop-interchange-order' ); -import quaternaryBlockSize = require( '@stdlib/ndarray-base-quaternary-tiling-block-size' ); -import quinaryLoopOrder = require( '@stdlib/ndarray-base-quinary-loop-interchange-order' ); -import quinaryBlockSize = require( '@stdlib/ndarray-base-quinary-tiling-block-size' ); -import reinterpretBoolean = require( '@stdlib/ndarray-base-reinterpret-boolean' ); -import reinterpretComplex = require( '@stdlib/ndarray-base-reinterpret-complex' ); -import reinterpretComplex64 = require( '@stdlib/ndarray-base-reinterpret-complex64' ); -import reinterpretComplex128 = require( '@stdlib/ndarray-base-reinterpret-complex128' ); -import removeSingletonDimensions = require( '@stdlib/ndarray-base-remove-singleton-dimensions' ); -import reverse = require( '@stdlib/ndarray-base-reverse' ); -import reverseDimension = require( '@stdlib/ndarray-base-reverse-dimension' ); -import reverseDimensions = require( '@stdlib/ndarray-base-reverse-dimensions' ); -import rot90 = require( '@stdlib/ndarray-base-rot90' ); -import rot180 = require( '@stdlib/ndarray-base-rot180' ); -import rotl90 = require( '@stdlib/ndarray-base-rotl90' ); -import rotr90 = require( '@stdlib/ndarray-base-rotr90' ); -import serializeMetaData = require( '@stdlib/ndarray-base-serialize-meta-data' ); -import setDescriptorOffsets = require( '@stdlib/ndarray-base-set-descriptor-offsets' ); -import shape = require( '@stdlib/ndarray-base-shape' ); -import shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -import shift = require( '@stdlib/ndarray-base-shift' ); -import singletonDimensions = require( '@stdlib/ndarray-base-singleton-dimensions' ); -import slice = require( '@stdlib/ndarray-base-slice' ); -import sliceAssign = require( '@stdlib/ndarray-base-slice-assign' ); -import sliceDimension = require( '@stdlib/ndarray-base-slice-dimension' ); -import sliceDimensionFrom = require( '@stdlib/ndarray-base-slice-dimension-from' ); -import sliceDimensionTo = require( '@stdlib/ndarray-base-slice-dimension-to' ); -import sliceFrom = require( '@stdlib/ndarray-base-slice-from' ); -import sliceTo = require( '@stdlib/ndarray-base-slice-to' ); -import some = require( '@stdlib/ndarray-base-some' ); -import someBy = require( '@stdlib/ndarray-base-some-by' ); -import spreadDimensions = require( '@stdlib/ndarray-base-spread-dimensions' ); -import stride = require( '@stdlib/ndarray-base-stride' ); -import strides = require( '@stdlib/ndarray-base-strides' ); -import strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -import strides2order = require( '@stdlib/ndarray-base-strides2order' ); -import sub2ind = require( '@stdlib/ndarray-base-sub2ind' ); -import ternary = require( '@stdlib/ndarray-base-ternary' ); -import ternaryLoopOrder = require( '@stdlib/ndarray-base-ternary-loop-interchange-order' ); -import ternaryOutputDataType = require( '@stdlib/ndarray-base-ternary-output-dtype' ); -import ternaryBlockSize = require( '@stdlib/ndarray-base-ternary-tiling-block-size' ); -import tile = require( '@stdlib/ndarray-base-tile' ); -import blockSize = require( '@stdlib/ndarray-base-tiling-block-size' ); -import ndarray2array = require( '@stdlib/ndarray-base-to-array' ); -import toFlippedlr = require( '@stdlib/ndarray-base-to-flippedlr' ); -import toFlippedud = require( '@stdlib/ndarray-base-to-flippedud' ); -import toNormalizedIndices = require( '@stdlib/ndarray-base-to-normalized-indices' ); -import toReversed = require( '@stdlib/ndarray-base-to-reversed' ); -import toReversedDimension = require( '@stdlib/ndarray-base-to-reversed-dimension' ); -import toReversedDimensions = require( '@stdlib/ndarray-base-to-reversed-dimensions' ); -import toRot90 = require( '@stdlib/ndarray-base-to-rot90' ); -import toRot180 = require( '@stdlib/ndarray-base-to-rot180' ); -import toRotl90 = require( '@stdlib/ndarray-base-to-rotl90' ); -import toRotr90 = require( '@stdlib/ndarray-base-to-rotr90' ); -import toTransposed = require( '@stdlib/ndarray-base-to-transposed' ); -import toUnflattened = require( '@stdlib/ndarray-base-to-unflattened' ); -import toUniqueNormalizedIndices = require( '@stdlib/ndarray-base-to-unique-normalized-indices' ); -import transpose = require( '@stdlib/ndarray-base-transpose' ); -import trues = require( '@stdlib/ndarray-base-trues' ); -import truesLike = require( '@stdlib/ndarray-base-trues-like' ); -import unary = require( '@stdlib/ndarray-base-unary' ); -import unaryAccumulate = require( '@stdlib/ndarray-base-unary-accumulate' ); -import unaryAddonDispatch = require( '@stdlib/ndarray-base-unary-addon-dispatch' ); -import unaryBy = require( '@stdlib/ndarray-base-unary-by' ); -import unaryInputCastingDataType = require( '@stdlib/ndarray-base-unary-input-casting-dtype' ); -import unaryLoopOrder = require( '@stdlib/ndarray-base-unary-loop-interchange-order' ); -import unaryOutputDataType = require( '@stdlib/ndarray-base-unary-output-dtype' ); -import unaryReduceStrided1dDispatch = require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch' ); -import unaryReduceStrided1dDispatchBy = require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by' ); -import unaryReduceStrided1dDispatchByFactory = require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory' ); -import unaryReduceStrided1dDispatchFactory = require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory' ); -import unaryReduceSubarrayBy = require( '@stdlib/ndarray-base-unary-reduce-subarray-by' ); -import unaryStrided1dDispatch = require( '@stdlib/ndarray-base-unary-strided1d-dispatch' ); -import unaryStrided1dDispatchFactory = require( '@stdlib/ndarray-base-unary-strided1d-dispatch-factory' ); -import unaryBlockSize = require( '@stdlib/ndarray-base-unary-tiling-block-size' ); -import unflatten = require( '@stdlib/ndarray-base-unflatten' ); -import unflattenShape = require( '@stdlib/ndarray-base-unflatten-shape' ); -import vind2bind = require( '@stdlib/ndarray-base-vind2bind' ); -import wrapIndex = require( '@stdlib/ndarray-base-wrap-index' ); -import zeros = require( '@stdlib/ndarray-base-zeros' ); -import zerosLike = require( '@stdlib/ndarray-base-zeros-like' ); -import zip2views1d = require( '@stdlib/ndarray-base-zip2views1d' ); - -/** -* Interface describing the `base` namespace. -*/ -interface Namespace { - /** - * Tests whether at least one element in an ndarray is truthy. - * - * @param arrays - array-like object containing an input ndarray - * @returns boolean indicating whether at least one element is truthy - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Test elements: - * var out = ns.any( [ x ] ); - * // returns true - */ - any: typeof any; - - /** - * Tests whether at least one element in an ndarray passes a test implemented by a predicate function. - * - * @param arrays - array-like object containing an input ndarray - * @param predicate - predicate function - * @param thisArg - predicate function execution context - * @returns boolean indicating whether at least one element passes a test - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * function predicate( value ) { - * return value > 0.0; - * } - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Test elements: - * var out = ns.anyBy( [ x ], predicate ); - * // returns true - */ - anyBy: typeof anyBy; - - /** - * Returns an array with a specified number of appended singleton dimensions. - * - * @param x - input array - * @param n - number of singleton dimensions to append - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.appendSingletonDimensions( x, 3, false ); - * // returns [ [ [ [ [ 1 ] ] ], [ [ [ 2 ] ] ] ], [ [ [ [ 3 ] ] ], [ [ [ 4 ] ] ] ] ] - */ - appendSingletonDimensions: typeof appendSingletonDimensions; - - /** - * Base ndarray assertion utilities. - */ - assert: typeof assert; - - /** - * Assigns elements in an ndarray to elements in an ndarray. - * - * @param arrays - array-like object containing one input ndarray and one output ndarray - * @throws arrays must have the same number of dimensions - * @throws arrays must have the same shape - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * var ybuf = new Float64Array( 6 ); - * - * // Define the shape of the input and output arrays: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * var sy = [ 2, 2, 1 ]; - * - * // Define the index offsets: - * var ox = 1; - * var oy = 0; - * - * // Create the input and output ndarrays: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var y = ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * - * // Copy elements: - * ns.assign( [ x, y ] ); - * - * console.log( y.data ); - * // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ] - */ - assign: typeof assign; - - /** - * Assigns elements from a broadcasted input ndarray to a specified diagonal of an output ndarray. - * - * ## Notes - * - * - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension. - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function assigns to the main diagonal; when `k > 0`, the function assigns to a diagonal above the main diagonal; and when `k < 0`, the function assigns to a diagonal below the main diagonal. - * - The input ndarray must be broadcast compatible with the output ndarray view defined by the specified diagonal. - * - * @param arrays - array-like object containing one input array and one output array - * @param dims - dimension indices defining the plane in which to assign elements to the diagonal - * @param k - diagonal offset - * @returns output ndarray - * - * @example - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = scalar2ndarray( 1.0 ); - * // returns - * - * var y = zeros( [ 3, 3 ] ); - * // returns [ [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ] - * - * var out = ns.assignDiagonal( [ x, y ], [ 0, 1 ], 0 ); - * // returns [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ] - * - * var bool = ( out === y ); - * // returns true - */ - assignDiagonal: typeof assignDiagonal; - - /** - * Assigns a scalar value to every element of an output ndarray. - * - * @param arrays - array-like object containing a zero-dimensional input ndarray containing the scalar value and one output ndarray - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * // Create a zero-dimensional ndarray containing the scalar value: - * var x = scalar2ndarray( 5.0, { - * 'dtype': 'float64' - * }); - * - * // Create a data buffer: - * var ybuf = new Float64Array( 4 ); - * - * // Define the shape of the output array: - * var shape = [ 2, 2 ]; - * - * // Define the array strides: - * var sy = [ 2, 1 ]; - * - * // Define the index offset: - * var oy = 0; - * - * // Create the output ndarray: - * var y = ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * - * // Assign the scalar value: - * ns.assignScalar( [ x, y ] ); - * - * console.log( y.data ); - * // => [ 5.0, 5.0, 5.0, 5.0 ] - */ - assignScalar: typeof assignScalar; - - /** - * Converts a list of values (scalars and/or ndarrays) to ndarrays having at least one dimension. - * - * @param arrays - array-like object containing a list of scalars and/or ndarrays - * @returns an array of ndarrays - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * - * var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] ); - * // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] - * - * var y = scalar2ndarray( 3.14 ); - * // returns [ 3.14 ] - * - * var out = ns.atleast1d( [ x, y ] ); - * // returns [ , ] - */ - atleast1d: typeof atleast1d; - - /** - * Converts a list of values (scalars and/or ndarrays) to ndarrays having at least two dimensions. - * - * @param arrays - array-like object containing a list of scalars and/or ndarrays - * @returns an array of ndarrays - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * - * var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] ); - * // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] - * - * var y = scalar2ndarray( 3.14 ); - * // returns [ 3.14 ] - * - * var out = ns.atleast2d( [ x, y ] ); - * // returns [ , ] - */ - atleast2d: typeof atleast2d; - - /** - * Converts a list of values (scalars and/or ndarrays) to ndarrays having at least three dimensions. - * - * @param arrays - array-like object containing a list of scalars and/or ndarrays - * @returns an array of ndarrays - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * - * var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] ); - * // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] - * - * var y = scalar2ndarray( 3.14 ); - * // returns [ 3.14 ] - * - * var out = ns.atleast3d( [ x, y ] ); - * // returns [ , ] - */ - atleast3d: typeof atleast3d; - - /** - * Converts a list of values (scalars and/or ndarrays) to ndarrays having at least a specified number of dimensions. - * - * @param ndims - minimum number of dimensions - * @param arrays - array-like object containing a list of scalars and/or ndarrays - * @returns an array of ndarrays - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] ); - * // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] - * - * var y = array( [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ] ); - * // returns [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ] - * - * var out = ns.atleastnd( 3, [ x, y ] ); - * // returns [ , ] - */ - atleastnd: typeof atleastnd; - - /** - * Applies a binary callback to elements in input ndarrays and assigns results to elements in an output ndarray. - * - * @param arrays - array-like object containing two input ndarrays and one output ndarray - * @param fcn - binary callback - * @throws arrays must have the same number of dimensions - * @throws arrays must have the same shape - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var getData = require( '@stdlib/ndarray-data-buffer' ); - * - * function add( a, b ) { - * return a + b; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * var zbuf = new Float64Array( 6 ); - * - * // Define the shape of the input and output arrays: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 2, 2, 1 ]; - * var sy = [ 2, 2, 1 ]; - * var sz = [ 2, 2, 1 ]; - * - * // Define the index offsets: - * var ox = 0; - * var oy = 0; - * var oz = 0; - * - * // Create the input and output ndarrays: - * var x = new ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var y = new ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * var z = new ndarray( 'float64', zbuf, shape, sz, oz, 'row-major' ); - * - * // Apply the ns.binary function: - * ns.binary( [ x, y, z ], add ); - * - * console.log( getData( z ) ); - * // => [ 2.0, 4.0, 6.0, 8.0, 10.0, 12.0 ] - */ - binary: typeof binary; - - /** - * Resolves the casting data type for an input ndarray provided to a binary function. - * - * @param idtype1 - input ndarray data type - * @param idtype2 - additional input ndarray data type - * @param odtype - output ndarray data type - * @param policy - input ndarray casting data type policy - * @returns input ndarray casting data type - * - * @example - * var dt = ns.binaryInputCastingDataType( 'float64', 'float64', 'float64', 'none' ); - * // returns - */ - binaryInputCastingDataType: typeof binaryInputCastingDataType; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned object has the following properties: - * - * - **sh**: dimensions sorted in loop order. - * - **sx**: first input ndarray strides sorted in loop order. - * - **sy**: second input ndarray strides sorted in loop order. - * - **sz**: output ndarray strides sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of array strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * - Cache performance may be degraded if the layout order (i.e., row-major or column-major) differs for the input and output ndarrays. This function is intended to optimize cache performance for the most common layout order. Accordingly, if the output ndarray has a different layout order (e.g., if the input ndarrays are row-major and the output ndarray is column-major), cache misses are likely for the output ndarray. In general, to ensure best performance, input and output ndarrays should have the same layout order. - * - * - The function assumes that the input and output ndarrays have the same shape. Hence, loop interchange order should only be determined **after** broadcasting. - * - * @param shape - array dimensions - * @param stridesX - first input array stride lengths - * @param stridesY - second input array stride lengths - * @param stridesZ - output array stride lengths - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * var sy = [ 24, 8, 1 ]; // row-major - * var sz = [ 1, -2, 6 ]; // column-major - * - * var o = ns.binaryLoopOrder( sh, sx, sy, sz ); - * // returns {...} - * - * var ssh = o.sh; - * // returns [ 4, 3, 2 ] - * - * var ssx = o.sx; - * // returns [ 1, 4, 12 ] - * - * var ssy = o.sy; - * // returns [ 1, 8, 24 ] - * - * var ssz = o.sz; - * // returns [ 6, -2, 1 ] - */ - binaryLoopOrder: typeof binaryLoopOrder; - - /** - * Resolves the output ndarray data type for a binary function. - * - * @param xdtype - first input ndarray data type - * @param ydtype - second input ndarray data type - * @param policy - output ndarray data type policy - * @returns output ndarray data type - * - * @example - * var dt = ns.binaryOutputDataType( 'float64', 'float32', 'complex_floating_point' ); - * // returns - */ - binaryOutputDataType: typeof binaryOutputDataType; - - /** - * Constructor for performing a reduction on two input ndarrays. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @returns instance - * - * @example - * var base = require( '@stdlib/blas-base-ndarray-gdot' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'promoted', - * 'casting': 'promoted' - * }; - * - * var table = { - * 'default': base - * }; - * var dot = new ns.binaryReduceStrided1dDispatch( table, [ idt, idt ], odt, policies ); - * - * var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ]; - * var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' ); - * - * var z = dot.apply( x, y ); - * // returns [ -5.0 ] - */ - binaryReduceStrided1dDispatch: typeof binaryReduceStrided1dDispatch; - - /** - * Creates a function for performing a reduction on two input ndarrays. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @returns function for applying a function - * - * @example - * var base = require( '@stdlib/blas-base-ndarray-gdot' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'promoted', - * 'casting': 'promoted' - * }; - * - * var table = { - * 'default': base - * }; - * var dot = ns.binaryReduceStrided1dDispatchFactory( table, [ idt, idt ], odt, policies ); - * - * var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ]; - * var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' ); - * - * var z = dot( x, y ); - * // returns [ -5.0 ] - */ - binaryReduceStrided1dDispatchFactory: typeof binaryReduceStrided1dDispatchFactory; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypeX - first input array data type - * @param dtypeY - second input array data type - * @param dtypeZ - output array data type - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.binaryBlockSize( 'float64', 'float64', 'float64' ); - * // returns - */ - binaryBlockSize: typeof binaryBlockSize; - - /** - * Converts a linear index in an underlying data buffer to a linear index in an array view. - * - * @param shape - array shape - * @param strides - stride array - * @param offset - location of the first indexed value **based** on the stride array - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @param idx - linear index in an underlying data buffer - * @param mode - specifies how to handle a linear index which exceeds array dimensions - * @throws linear index must not exceed array dimensions - * @returns linear index in an array view - * - * @example - * var shape = [ 3, 3 ]; - * var strides = [ -3, 1 ]; - * var offset = 6; - * var order = 'row-major'; - * var mode = 'throw'; - * - * var ind = ns.bind2vind( shape, strides, offset, order, 7, mode ); - * // returns 1 - */ - bind2vind: typeof bind2vind; - - /** - * Broadcasts an ndarray to a specified shape. - * - * ## Notes - * - * - The function throws an error if a provided ndarray is incompatible with a provided shape. - * - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements. - * - The returned array is a "base" ndarray, and, thus, the returned array does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to broadcast an ndarray-like object within internal implementations and to do so with minimal overhead. - * - The function always returns a new ndarray instance even if the input ndarray shape and the desired shape are the same. - * - * @param arr - input array - * @param shape - desired shape - * @throws input array cannot have more dimensions than the desired shape - * @throws input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape - * @returns broadcasted array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns - * - * var shx = x.shape; - * // returns [ 2, 2 ] - * - * var y = ns.broadcastArray( x, [ 3, 2, 2 ] ); - * // returns - * - * var shy = y.shape; - * // returns [ 3, 2, 2 ] - * - * var v = y.get( 0, 0, 0 ); - * // returns 1 - * - * v = y.get( 0, 0, 1 ); - * // returns 2 - * - * v = y.get( 1, 0, 0 ); - * // returns 1 - * - * v = y.get( 1, 1, 0 ); - * // returns 3 - * - * v = y.get( 2, 0, 0 ); - * // returns 1 - * - * v = y.get( 2, 1, 1 ); - * // returns 4 - */ - broadcastArray: typeof broadcastArray; - - /** - * Broadcasts an input ndarray to a target shape while keeping a list of specified dimensions unchanged. - * - * ## Notes - * - * - The function expects that each index in the list of dimensions is negative in order to ensure that indices correspond to the same relative position in the output ndarray shape. For example, given an input ndarray shape `[2,X1,X2]` and a desired shape `[6,7,2,Y1,Y2]`, a list of negative dimensions `[-2,-1]` correctly maps the unchanged dimensions `X` in the input ndarray to ignored dimensions `Y` in the provided target shape. Nonnegative indices, however, afford no such mapping. For example, the list of dimensions `[1,2]` corresponds to `[X1,X2]` in the input ndarray shape, but to `[7,2]` in the target shape, which is not desired. By expecting negative indices, we avoid confusion and ensure that users always refer to dimensions relative to the last broadcasted dimension. - * - The function throws an error if a provided ndarray is incompatible with a provided shape. - * - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements. - * - The returned array is a "base" ndarray, and, thus, the returned array does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to broadcast an ndarray-like object within internal implementations and to do so with minimal overhead. - * - The function always returns a new ndarray instance even if the input ndarray shape and the desired shape are the same. - * - * @param arr - input array - * @param shape - desired shape - * @param dims - list of dimensions to exclude from broadcasting - * @throws input array cannot have more dimensions than the desired shape - * @throws broadcasted dimensions in the input array and desired shape must be broadcast compatible - * @throws dimension indices must not exceed desired shape bounds - * @throws must provide unique dimension indices - * @returns broadcasted array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * - * var x = array( [ [ 1, 2, 3 ] ] ); - * // returns - * - * var shx = getShape( x ); - * // returns [ 1, 3 ] - * - * var y = ns.broadcastArrayExceptDimensions( x, [ 2, 2, 3 ], [ -2 ] ); - * // returns - * - * var shy = getShape( y ); - * // returns [ 2, 1, 3 ] - * - * var v = y.get( 0, 0, 0 ); - * // returns 1 - * - * v = y.get( 0, 0, 1 ); - * // returns 2 - * - * v = y.get( 0, 0, 2 ); - * // returns 3 - * - * v = y.get( 1, 0, 0 ); - * // returns 1 - * - * v = y.get( 1, 0, 1 ); - * // returns 2 - * - * v = y.get( 1, 0, 2 ); - * // returns 3 - */ - broadcastArrayExceptDimensions: typeof broadcastArrayExceptDimensions; - - /** - * Broadcasts ndarrays to a common shape. - * - * ## Notes - * - * - The function throws an error if provided broadcast-incompatible ndarrays. - * - The returned arrays are views on their respective underlying array data buffers. The views are typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to a returned array, copy the array before performing operations which may mutate elements. - * - The returned arrays are "base" ndarrays, and, thus, returned arrays do not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to broadcast ndarray-like objects within internal implementations and to do so with minimal overhead. - * - The function always returns new ndarray instances even if an input ndarray shape and the broadcasted shape are the same. - * - * @param arrays - input arrays - * @throws input arrays must be broadcast compatible - * @returns list of broadcasted arrays - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns - * - * var shx = x1.shape; - * // returns [ 2, 2 ] - * - * var y1 = zeros( [ 3, 2, 2 ] ); - * // returns - * - * var shy = y1.shape; - * // returns [ 3, 2, 2 ] - * - * var out = ns.broadcastArrays( [ x1, y1 ] ); - * // returns [ , ] - * - * var x2 = out[ 0 ]; - * // returns - * - * var y2 = out[ 1 ]; - * // returns - * - * shx = x2.shape; - * // returns [ 3, 2, 2 ] - * - * shy = y2.shape; - * // returns [ 3, 2, 2 ] - * - * var v = x2.get( 0, 0, 0 ); - * // returns 1 - * - * v = x2.get( 0, 0, 1 ); - * // returns 2 - * - * v = x2.get( 1, 0, 0 ); - * // returns 1 - * - * v = x2.get( 1, 1, 0 ); - * // returns 3 - * - * v = x2.get( 2, 0, 0 ); - * // returns 1 - * - * v = x2.get( 2, 1, 1 ); - * // returns 4 - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 2, 2 ] ); - * // returns - * - * var y = zeros( [ 4, 2 ] ); - * // returns - * - * var out = ns.broadcastArrays( [ x, y ] ); - * // throws - */ - broadcastArrays: typeof broadcastArrays; - - /** - * Broadcasts a scalar value to an ndarray having a specified shape. - * - * @param value - scalar value - * @param dtype - array data type - * @param shape - array shape - * @param order - array order - * @returns ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var x = ns.broadcastScalar( 1.0, 'generic', [ 2, 2 ], 'row-major' ); - * // returns - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'generic' - * - * var v = x.get( 0, 1 ); - * // returns 1.0 - */ - broadcastScalar: typeof broadcastScalar; - - /** - * Broadcasts a scalar value to an ndarray having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @param value - scalar value - * @returns output ndarray - * - * @example - * var zeros = require( '@stdlib/ndarray-base-zeros' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var x = zeros( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] - * - * var y = ns.broadcastScalarLike( x, 1.0 ); - * // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ] - * - * var dt = String( getDType( y ) ); - * // returns 'float64' - */ - broadcastScalarLike: typeof broadcastScalarLike; - - /** - * Broadcasts array shapes to a single shape. - * - * ## Notes - * - * - Two respective dimensions in two shape arrays are compatible if - * - * 1. the dimensions are equal. - * 2. one dimension is `1`. - * - * - The function returns `null` if provided incompatible shapes (i.e., shapes which cannot be broadcast with one another). - * - * @param shapes - array shapes - * @returns broadcast shape - * - * @example - * var shapes = [ - * [ 8, 1, 6, 1 ], - * [ 7, 1, 5 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 8, 7, 6, 5 ] - * - * @example - * var shapes = [ - * [ 5, 4 ], - * [ 1 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 5, 4 ] - * - * @example - * var shapes = [ - * [ 5, 4 ], - * [ 4 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 5, 4 ] - * - * @example - * var shapes = [ - * [ 15, 3, 5 ], - * [ 15, 1, 5 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 15, 3, 5 ] - * - * @example - * var shapes = [ - * [ 15, 3, 5 ], - * [ 3, 5 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 15, 3, 5 ] - * - * @example - * var shapes = [ - * [ 15, 3, 5 ], - * [ 3, 1 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 15, 3, 5 ] - * - * @example - * var shapes = [ - * [ 8, 1, 1, 6, 1 ], - * [ 1, 7, 1, 5 ], - * [ 8, 4, 1, 6, 5 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 8, 4, 7, 6, 5 ] - * - * @example - * var shapes = [ - * [ 8, 1, 1, 6, 1 ], - * [ 0 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 8, 1, 1, 6, 0 ] - * - * @example - * var shapes = [ - * [ 8, 1, 1, 6, 1 ], - * [ 8, 0, 1, 6, 1 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 8, 0, 1, 6, 1 ] - * - * @example - * var shapes = [ - * [ 8, 8, 1, 6, 1 ], - * [ 8, 0, 1, 6, 1 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns null - * - * @example - * var shapes = [ - * [] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [] - * - * @example - * var shapes = [ - * [], - * [] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [] - * - * @example - * var shapes = []; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [] - * - * @example - * var shapes = [ - * [ 3, 2, 1 ], - * [] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 3, 2, 1 ] - * - * @example - * var shapes = [ - * [], - * [ 3, 2, 1 ] - * ]; - * - * var out = ns.broadcastShapes( shapes ); - * // returns [ 3, 2, 1 ] - */ - broadcastShapes: typeof broadcastShapes; - - /** - * Returns a contiguous linear ndarray data buffer. - * - * @param dtype - data type - * @param size - buffer size - * @returns data buffer - * - * @example - * var buf = ns.buffer( 'float64', 3 ); - * // returns [ 0.0, 0.0, 0.0 ] - */ - buffer: typeof buffer; - - /** - * Returns an ndarray data buffer constructor. - * - * @param dtype - data type - * @returns data buffer constructor or null - * - * @example - * var ctor = ns.bufferCtors( 'float64' ); - * // returns - * - * @example - * var ctor = ns.bufferCtors( 'float' ); - * // returns null - */ - bufferCtors: typeof bufferCtors; - - /** - * Returns the data type of an ndarray data buffer. - * - * @param value - input value - * @returns data type - * - * @example - * var dt = ns.bufferDataType( [ 1, 2, 3 ] ); - * // returns 'generic' - * - * var dt = ns.bufferDataType( 'beep' ); - * // returns null - */ - bufferDataType: typeof bufferDataType; - - /** - * Returns the data type enumeration constant for a provided ndarray data buffer. - * - * @param arr - ndarray data buffer - * @returns data type enumeration constant or null - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * - * var x = new Float64Array( 10 ); - * - * var c = ns.bufferDataTypeEnum( x ); - * // returns - */ - bufferDataTypeEnum: typeof bufferDataTypeEnum; - - /** - * Returns the number of bytes per element for a provided underlying ndarray data type. - * - * @param dtype - data type - * @returns number of bytes per element - * - * @example - * var nbytes = ns.bytesPerElement( 'float64' ); - * // returns 8 - * - * nbytes = ns.bytesPerElement( 'generic' ); - * // returns null - */ - bytesPerElement: typeof bytesPerElement; - - /** - * Returns an object mapping single letter character abbreviations to data type strings. - * - * @returns object mapping single letter character abbreviations to data type strings - * - * @example - * var out = ns.char2dtype(); - * // returns {...} - */ - char2dtype: typeof char2dtype; - - /** - * Restricts an index to the interval `[0,max]`. - * - * @param idx - index - * @param max - maximum index - * @returns index - * - * @example - * var idx = ns.clampIndex( -1, 10 ); - * // returns 0 - * - * idx = ns.clampIndex( 15, 10 ); - * // returns 10 - * - * idx = ns.clampIndex( 5, 10 ); - * // returns 5 - */ - clampIndex: typeof clampIndex; - - /** - * Clips an index to the interval `[0,max]`. - * - * @param idx - index - * @param max - maximum index - * @returns index - * - * @example - * var idx = ns.clipIndex( -2, 10 ); - * // returns 8 - * - * idx = ns.clipIndex( 15, 10 ); - * // returns 10 - * - * idx = ns.clipIndex( 5, 10 ); - * // returns 5 - */ - clipIndex: typeof clipIndex; - - /** - * Returns the shape defined by the dimensions which are not included in a list of dimensions. - * - * @param shape - array shape - * @param dims - list of dimensions - * @returns output shape - * - * @example - * var sh = ns.complementShape( [ 3, 2 ], [ -1 ] ); - * // returns [ 3 ] - * - * sh = ns.complementShape( [ 3, 2, 1 ], [ -2 ] ); - * // returns [ 3, 1 ] - * - * sh = ns.complementShape( [ 3 ], [ 0 ] ); - * // returns [] - * - * sh = ns.complementShape( [ 3, 2 ], [ 0 ] ); - * // returns [ 2 ] - * - * sh = ns.complementShape( [], [] ); - * // returns [] - */ - complementShape: typeof complementShape; - - /** - * Resolves the most common underlying storage layout. - * - * ## Notes - * - * - In the event of a tie or when all input array strides are "disorganized" (i.e., neither row- nor column-major), the function returns the default layout. - * - * @param strides - list of array strides - * @returns storage layout - * - * @example - * var strides = [ [ 2, 1 ], [ 4, 1 ] ]; - * - * var order = ns.consensusOrder( strides ); - * // returns 'row-major' - * - * @example - * var strides = [ [ 1, 2 ], [ 1, 4 ] ]; - * - * var order = ns.consensusOrder( strides ); - * // returns 'column-major' - * - * @example - * var strides = [ [ 2, 1 ], [ 1, 4 ] ]; - * - * var order = ns.consensusOrder( strides ); - * // returns - * - * @example - * var strides = [ [ 1, 1 ], [ 1, 1 ] ]; - * - * var order = ns.consensusOrder( strides ); - * // returns - */ - consensusOrder: typeof consensusOrder; - - /** - * Copies an input ndarray to a new ndarray having the same shape and data type. - * - * ## Notes - * - * - The function performs a full copy in which an ndarray's underlying data is copied to a new underlying data buffer. - * - * @param x - input array - * @returns output array - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var zeros = require( '@stdlib/ndarray-base-zeros' ); - * - * var x = zeros( 'float64', [ 2, 2 ], 'row-major' ); - * // returns - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var y = ns.copy( x ); - * // returns - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - */ - copy: typeof copy; - - /** - * Counts the number of falsy elements in an ndarray. - * - * @param arrays - array-like object containing an input ndarray - * @returns number of falsy elements - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Perform operation: - * var out = ns.countFalsy( [ x ] ); - * // returns 1 - */ - countFalsy: typeof countFalsy; - - /** - * Counts the number of elements in an ndarray which pass a test implemented by a predicate function. - * - * @param arrays - array-like object containing an input ndarray - * @param predicate - predicate function - * @param thisArg - predicate function execution context - * @returns result - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * function predicate( value ) { - * return value > 0.0; - * } - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Perform operation: - * var out = ns.countIf( [ x ], predicate ); - * // returns 5 - */ - countIf: typeof countIf; - - /** - * Counts the number of truthy elements in an ndarray. - * - * @param arrays - array-like object containing an input ndarray - * @returns number of truthy elements - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Perform operation: - * var out = ns.countTruthy( [ x ] ); - * // returns 6 - */ - countTruthy: typeof countTruthy; - - /** - * ndarray constructor. - * - * ## Notes - * - * - To create a zero-dimensional array, - * - * ```javascript - * var buffer = [ 1 ]; - * var shape = []; - * var strides = [ 0 ]; - * var offset = 0; - * - * var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * ``` - * - * @param dtype - data type - * @param buffer - data buffer - * @param shape - array shape - * @param strides - array strides - * @param offset - index offset - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns ndarray instance - * - * @example - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var out = ns.ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - */ - ndarray: typeof ndarray; - - /** - * Returns the underlying data buffer of a provided ndarray. - * - * @param x - input ndarray - * @returns underlying data buffer - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 3, 3, 3 ], { - * 'dtype': 'float64' - * }); - * - * var out = ns.data( x ); - * // returns - */ - data: typeof data; - - /** - * Returns a plain object describing how to interpret a data buffer as an n-dimensional array. - * - * @param dtype - data type - * @param buffer - data buffer - * @param shape - array shape - * @param strides - array strides - * @param offset - index offset - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns ndarray descriptor - * - * @example - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var out = ns.descriptor( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns {...} - */ - descriptor: typeof descriptor; - - /** - * Returns a view of the diagonal of a matrix (or stack of matrices). - * - * ## Notes - * - * - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension. - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function returns the main diagonal; when `k > 0`, the function returns the diagonal above the main diagonal; and when `k < 0`, the function returns the diagonal below the main diagonal. - * - The returned ndarray is a **view** of the input ndarray. Accordingly, writing to the original ndarray will **mutate** the returned ndarray and vice versa. - * - The `writable` parameter **only** applies to ndarray constructors supporting **read-only** instances. - * - * @param x - input array - * @param dims - dimension indices defining the plane from which to extract the diagonal - * @param k - diagonal offset - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns ndarray view - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], [ 7.0, 8.0, 9.0 ] ] ); - * // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], [ 7.0, 8.0, 9.0 ] ] - * - * var y = ns.diagonal( x, [ 0, 1 ], 0, false ); - * // returns [ 1.0, 5.0, 9.0 ] - */ - diagonal: typeof diagonal; - - /** - * Returns the data type of a provided ndarray. - * - * @param x - input ndarray - * @returns data type - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 3, 3, 3 ], { - * 'ns.dtype': 'float64' - * }); - * - * var dt = ns.dtype( x ); - * // returns 'float64' - */ - dtype: typeof dtype; - - /** - * Returns an object mapping data type strings to alignments. - * - * @returns object mapping data type strings to alignments - * - * @example - * var obj = ns.dtypeAlignment(); - * // returns {...} - */ - dtypeAlignment: typeof dtypeAlignment; - - /** - * Returns an object mapping data type strings to single letter character abbreviations. - * - * @returns object mapping data type strings to single letter character abbreviations - * - * @example - * var obj = ns.dtypeChar(); - * // returns {...} - */ - dtypeChar: typeof dtypeChar; - - /** - * Returns a list of ndarray data type single letter character abbreviations. - * - * @param kind - data type kind - * @returns list of ndarray data type single letter character abbreviations - * - * @example - * var list = ns.dtypeChars(); - * // returns [...] - * - * @example - * var list = ns.dtypeChars( 'floating_point' ); - * // returns [...] - */ - dtypeChars: typeof dtypeChars; - - /** - * Returns an object mapping data type strings to descriptions. - * - * @returns object mapping data type strings to descriptions - * - * @example - * var obj = ns.dtypeDesc(); - * // returns {...} - */ - dtypeDesc: typeof dtypeDesc; - - /** - * Returns the data type string associated with an ndarray data type enumeration constant. - * - * @param dtype - data type enumeration constant - * @returns data type string - * - * @example - * var str2enum = require( '@stdlib/ndarray-base-dtype-str2enum' ); - * - * var v = str2enum( 'float64' ); - * // returns - * - * var dt = ns.dtypeEnum2Str( v ); - * // returns 'float64' - */ - dtypeEnum2Str: typeof dtypeEnum2Str; - - /** - * Returns an object mapping supported data type strings to enumeration constants. - * - * ## Notes - * - * - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner. - * - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. - * - * @returns object mapping supported data type strings to enumeration constants - * - * @example - * var o = ns.dtypeEnums(); - * // returns {...} - */ - dtypeEnums: typeof dtypeEnums; - - /** - * Returns an object mapping supported data type strings to data type objects. - * - * @returns object mapping supported data type strings to data type objects - * - * @example - * var o = ns.dtypeObjects(); - * // returns {...} - */ - dtypeObjects: typeof dtypeObjects; - - /** - * Returns the enumeration constant associated with an ndarray data type value. - * - * ## Notes - * - * - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner. - * - * @param dtype - data type value - * @returns enumeration constant - * - * @example - * var v = ns.dtypeResolveEnum( 'float64' ); - * // returns - */ - dtypeResolveEnum: typeof dtypeResolveEnum; - - /** - * Returns the data type string associated with an ndarray data type value. - * - * @param dtype - data type value - * @returns data type string - * - * @example - * var str2enum = require( '@stdlib/ndarray-base-dtype-str2enum' ); - * - * var v = ns.dtypeResolveStr( str2enum( 'float64' ) ); - * // returns 'float64' - */ - dtypeResolveStr: typeof dtypeResolveStr; - - /** - * Returns the enumeration constant associated with an ndarray data type string. - * - * ## Notes - * - * - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner. - * - * @param dtype - data type string - * @returns enumeration constant - * - * @example - * var v = ns.dtypeStr2Enum( 'float64' ); - * // returns - */ - dtypeStr2Enum: typeof dtypeStr2Enum; - - /** - * Returns a list of ndarray data type strings. - * - * @param kind - data type kind - * @returns list of ndarray data type strings - * - * @example - * var list = ns.dtypeStrings(); - * // returns [...] - * - * @example - * var list = ns.dtypeStrings( 'floating_point' ); - * // returns [...] - */ - dtypeStrings: typeof dtypeStrings; - - /** - * Returns the C data type associated with a provided data type value. - * - * @param dtype - data type value - * @returns C data type (or null) - * - * @example - * var out = ns.dtype2c( 'float64' ); - * // returns 'double' - * - * out = ns.dtype2c( 'generic' ); - * // returns null - */ - dtype2c: typeof dtype2c; - - /** - * Resolves a list of data type enumeration constants. - * - * ## Notes - * - * - If the function is unable to resolve an enumeration constant for a provided data type, the corresponding element in the returned array will be `null`. - * - * @param dtypes - list of data types - * @returns results - * - * @example - * var out = ns.dtypes2enums( [ 'float32', 'float64' ] ); - * // returns [...] - * - * @example - * var out = ns.dtypes2enums( [ 'foo', 'bar' ] ); - * // returns [ null, null ] - */ - dtypes2enums: typeof dtypes2enums; - - /** - * Transforms a list of array argument data types into a list of signatures. - * - * @param dtypes - list of array argument data types - * @param nin - number of input array arguments - * @param nout - number of output array arguments - * @throws first argument must be an array-like object - * @throws second argument must be a nonnegative integer - * @throws third argument must be a nonnegative integer - * @throws first argument must have at least one element - * @throws first argument must be compatible with second and third arguments - * @returns list of signatures - * - * @example - * var dtypes = [ - * 'float64', 'float64', - * 'float32', 'float32' - * ]; - * - * var sigs = ns.dtypes2signatures( dtypes, 1, 1 ); - * // returns [ '(float64) => (float64)', '(float32) => (float32)' ] - */ - dtypes2signatures: typeof dtypes2signatures; - - /** - * Resolves a list of data type strings. - * - * ## Notes - * - * - If the function is unable to resolve a data type string for a provided data type, the corresponding element in the returned array will be `null`. - * - * @param dtypes - list of data types - * @returns results - * - * @example - * var out = ns.dtypes2strings( [ 'float32', 'float64' ] ); - * // returns [...] - * - * @example - * var out = ns.dtypes2strings( [ 'foo', 'bar' ] ); - * // returns [ null, null ] - */ - dtypes2strings: typeof dtypes2strings; - - /** - * Creates an uninitialized array having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns output array - * - * @example - * var arr = ns.empty( 'float32', [ 2, 2 ], 'row-major' ); - * // returns - * - * var sh = arr.shape; - * // returns [ 2, 2 ] - * - * var dt = arr.dtype; - * // returns 'float32' - */ - empty: typeof empty; - - /** - * Creates an uninitialized array having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns output array - * - * @example - * var zeros = require( '@stdlib/ndarray-base-zeros' ); - * - * var x = zeros( 'generic', [ 2, 2 ], 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 2, 2 ] - * - * var dt = x.dtype; - * // returns 'generic' - * - * var y = ns.emptyLike( x ); - * // returns - * - * sh = y.shape; - * // returns [ 2, 2 ] - * - * dt = y.dtype; - * // returns 'generic' - */ - emptyLike: typeof emptyLike; - - /** - * Tests whether every element in an ndarray is truthy. - * - * @param arrays - array-like object containing an input ndarray - * @returns boolean indicating whether every element is truthy - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Test elements: - * var out = ns.every( [ x ] ); - * // returns true - */ - every: typeof every; - - /** - * Tests whether all elements in an ndarray pass a test implemented by a predicate function. - * - * @param arrays - array-like object containing an input ndarray - * @param predicate - predicate function - * @param thisArg - predicate function execution context - * @returns boolean indicating whether all elements pass a test - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * function predicate( value ) { - * return value > 0.0; - * } - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Test elements: - * var out = ns.everyBy( [ x ], predicate ); - * // returns true - */ - everyBy: typeof everyBy; - - /** - * Expands the shape of an array by inserting a new dimension of size one at a specified dimension index. - * - * ## Notes - * - * - A provided dimension index must reside on the interval `[-N-1, N]`, where `N` is the rank (i.e., number of dimensions) of the provided input array. If provided a negative dimension index, the position at which to insert a singleton dimension is computed as `N + dim + 1`. Hence, if provided `-1`, the resolved position is `N` (i.e., a singleton dimension is appended to the input array). - * - * @param x - input array - * @param dim - dimension index at which to insert a singleton dimension - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.expandDimensions( x, 1, false ); - * // returns [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ] - */ - expandDimensions: typeof expandDimensions; - - /** - * Creates an ndarray filled with `false` values and having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns `false`-filled ndarray - * - * @example - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.falses( 'generic', [ 2, 2 ], 'row-major' ); - * // returns [ [ false, false ], [ false, false ] ] - * - * var dt = String( getDType( arr ) ); - * // returns 'generic' - */ - falses: typeof falses; - - /** - * Creates an ndarray filled with `false` values and having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var empty = require( '@stdlib/ndarray-empty' ); - * - * var x = empty( [ 2, 2 ], { - * 'dtype': 'bool' - * }); - * // returns - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'bool' - * - * var y = ns.falsesLike( x ); - * // returns [ [ false, false ], [ false, false ] ] - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - * - * dt = String( getDType( y ) ); - * // returns 'bool' - */ - falsesLike: typeof falsesLike; - - /** - * Fills an input ndarray with a specified value. - * - * ## Notes - * - * - A `value` must be able to safely cast to the input ndarray data type. Scalar values having floating-point data types (both real and complex) are allowed to downcast to a lower precision data type of the same kind (e.g., a scalar double-precision floating-point number can be used to fill a `'float32'` input ndarray). - * - * @param x - input ndarray - * @param value - scalar value - * @returns input ndarray - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 2, 2, 1 ]; - * - * // Define the index offset: - * var ox = 0; - * - * // Create the input ndarray-like object: - * var x = { - * 'dtype': 'float64', - * 'data': xbuf, - * 'shape': shape, - * 'strides': sx, - * 'offset': ox, - * 'order': 'row-major' - * }; - * - * var out = ns.fill( x, 10.0 ); - * - * console.log( x.data ); - * // => [ 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 ] - * - * var bool = ( out === x ); - * // returns true - */ - fill: typeof fill; - - /** - * Fills an input ndarray according to a callback function. - * - * @param x - input ndarray - * @param fcn - callback function - * @param thisArg - callback function execution context - * @returns input ndarray - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * - * function fcn() { - * return 10.0; - * } - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 2, 2, 1 ]; - * - * // Define the index offset: - * var ox = 0; - * - * // Create the input ndarray-like object: - * var x = { - * 'dtype': 'float64', - * 'data': xbuf, - * 'shape': shape, - * 'strides': sx, - * 'offset': ox, - * 'order': 'row-major' - * }; - * - * var out = ns.fillBy( x, fcn ); - * - * console.log( x.data ); - * // => [ 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 ] - * - * var bool = ( out === x ); - * // returns true - */ - fillBy: typeof fillBy; - - /** - * Fills a specified diagonal of a matrix (or stack of matrices) with a scalar value. - * - * ## Notes - * - * - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension. - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function fills the main diagonal; when `k > 0`, the function fills the diagonal above the main diagonal; and when `k < 0`, the function fills the diagonal below the main diagonal. - * - The function mutates the input ndarray in-place. - * - * @param x - input array - * @param value - scalar value - * @param dims - dimension indices defining the plane in which to fill the diagonal - * @param k - diagonal offset - * @returns input ndarray - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 3, 3 ] ); - * // returns [ [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ] - * - * var out = ns.fillDiagonal( x, 1.0, [ 0, 1 ], 0 ); - * // returns [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ] - * - * var bool = ( out === x ); - * // returns true - */ - fillDiagonal: typeof fillDiagonal; - - /** - * Returns the first element in an ndarray which passes a test implemented by a predicate function. - * - * ## Notes - * - * - The function returns the sentinel value if no element in an input ndarray passes a test implemented by a predicate function. - * - * @param arrays - array-like object containing an input ndarray and a zero-dimensional ndarray containing a sentinel value - * @param predicate - predicate function - * @param thisArg - predicate function execution context - * @returns result - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * - * function predicate( value ) { - * return value % 2.0 === 0.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 0; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Create a zero-dimensional ndarray containing a sentinel value: - * var sv = scalar2ndarray( NaN, { - * 'dtype': 'float64' - * }); - * - * // Perform reduction: - * var out = ns.find( [ x, sv ], predicate ); - * // returns 2.0 - */ - find: typeof find; - - /** - * Returns a specified flag for a provided ndarray. - * - * @param x - input ndarray - * @param name - flag name - * @returns flag value - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var o = ns.flag( zeros( [ 3, 3, 3 ] ), 'READONLY' ); - * // returns - */ - flag: typeof flag; - - /** - * Returns the flags of a provided ndarray. - * - * ## Notes - * - * - When `copy` is `false`, changes to the returned object may mutate the input ndarray flags. If there is a chance that the returned object will be mutated (either directly or by downstream consumers), set `copy` to `true` to prevent unintended side effects. - * - * @param x - input ndarray - * @param copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `flags` property - * @returns flags - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var o = ns.flags( zeros( [ 3, 3, 3 ] ), false ); - * // returns {...} - */ - flags: typeof flags; - - /** - * Flattens a shape to a specified depth. - * - * @param shape - array shape - * @param depth - maximum depth to flatten - * @returns flattened shape - * - * @example - * var sh = ns.flattenShape( [ 3, 2 ], 1 ); - * // returns [ 6 ] - * - * sh = ns.flattenShape( [ 3, 2, 1 ], 1 ); - * // returns [ 6, 1 ] - * - * sh = ns.flattenShape( [ 3 ], 0 ); - * // returns [ 3 ] - * - * sh = ns.flattenShape( [ 3, 2 ], 0 ); - * // returns [ 3, 2 ] - * - * sh = ns.flattenShape( [ 3 ], 1 ); - * // returns [ 3 ] - * - * sh = ns.flattenShape( [], 1 ); - * // returns [] - */ - flattenShape: typeof flattenShape; - - /** - * Flattens a shape starting from a specified dimension. - * - * @param shape - array shape - * @param dim - dimension to start flattening from - * @returns flattened shape - * - * @example - * var sh = ns.flattenShapeFrom( [ 3, 3, 2 ], 1 ); - * // returns [ 3, 6 ] - * - * sh = ns.flattenShapeFrom( [ 3, 2, 1 ], 1 ); - * // returns [ 3, 2 ] - * - * sh = ns.flattenShapeFrom( [ 3 ], 0 ); - * // returns [ 3 ] - * - * sh = ns.flattenShapeFrom( [ 3, 2 ], 0 ); - * // returns [ 6 ] - */ - flattenShapeFrom: typeof flattenShapeFrom; - - /** - * Returns a view of an input ndarray in which the order of elements along the last dimension is reversed. - * - * @param x - input array - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.fliplr( x, false ); - * // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - fliplr: typeof fliplr; - - /** - * Returns a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed. - * - * @param x - input array - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.flipud( x, false ); - * // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - flipud: typeof flipud; - - /** - * Invokes a callback function once for each element in an ndarray. - * - * @param arrays - array-like object containing an input ndarray - * @param fcn - callback function - * @param thisArg - callback function execution context - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var naryFunction = require( '@stdlib/utils-nary-function' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * var log = require( '@stdlib/console-log' ); - * - * // Create data buffers: - * var xbuf = new Float64Array( 12 ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Apply the callback function: - * ns.forEach( [ x ], naryFunction( log, 1 ) ); - */ - forEach: typeof forEach; - - /** - * Converts an array to a one-dimensional ndarray. - * - * @param buf - input array - * @param order - memory layout (row-major or column-major) - * @returns one-dimensional ndarray - * - * @example - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = [ 1, 2, 3, 4 ]; - * - * var x = ns.array2ndarray( arr, 'row-major' ); - * // returns - * - * var dt = String( getDType( x ) ); - * // returns 'generic' - */ - array2ndarray: typeof array2ndarray; - - /** - * Returns a zero-dimensional ndarray containing a provided scalar value. - * - * @param value - scalar value - * @param dtype - array data type - * @param order - memory layout (row-major or column-major) - * @returns zero-dimensional ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var x = ns.scalar2ndarray( 1.0, 'generic', 'row-major' ); - * // returns - * - * var sh = getShape( x ); - * // returns [] - * - * var dt = String( getDType( x ) ); - * // returns 'generic' - * - * var v = x.get(); - * // returns 1.0 - */ - scalar2ndarray: typeof scalar2ndarray; - - /** - * Returns a zero-dimensional ndarray containing a provided scalar value and having the same data type as a provided input ndarray. - * - * ## Notes - * - * - If provided a number, the function returns a zero-dimensional ndarray containing a complex number whose real component equals the provided scalar value and whose imaginary component is zero. - * - * @param x - input array - * @param value - scalar value - * @returns zero-dimensional ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var Complex128 = require( '@stdlib/complex-float64-ctor' ); - * var zeros = require( '@stdlib/ndarray-base-zeros' ); - * - * var x = zeros( 'complex128', [ 2, 2 ], 'row-major' ); - * // returns - * - * var v = new Complex128( 1.0, 2.0 ); - * - * var y = ns.scalar2ndarrayLike( x, v ); - * // returns - * - * var sh = getShape( y ); - * // returns [] - * - * var dt = String( getDType( y ) ); - * // returns 'complex128' - * - * var z = y.get(); - * // returns [ 1.0, 2.0 ] - */ - scalar2ndarrayLike: typeof scalar2ndarrayLike; - - /** - * Returns an ndarray filled with a specified value and having a specified shape and data type. - * - * @param value - fill value - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns output array - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.full( 10.0, 'float32', [ 2, 2 ], 'row-major' ); - * // returns [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] - * - * var sh = getShape( arr ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( arr ) ); - * // returns 'float32' - */ - full: typeof full; - - /** - * Returns an ndarray filled according to a callback function and having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @param clbk - callback function - * @param thisArg - callback function execution context - * @returns output array - * - * @example - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * function clbk() { - * return 10.0; - * } - * - * var arr = ns.fullBy( 'float32', [ 2, 2 ], 'row-major', clbk ); - * // returns [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] - * - * var dt = String( getDType( arr ) ); - * // returns 'float32' - */ - fullBy: typeof fullBy; - - /** - * Tests whether an ndarray contains a specified value. - * - * @param arrays - array-like object containing an input ndarray and a zero-dimensional search element ndarray - * @returns boolean indicating whether an ndarray contains a specified value - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 0; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Create a zero-dimensional ndarray containing a search element: - * var v = scalar2ndarray( 6.0, { - * 'dtype': 'float64' - * }); - * - * // Perform reduction: - * var out = ns.includes( [ x, v ] ); - * // returns true - */ - includes: typeof includes; - - /** - * Returns an index given an index mode. - * - * @param idx - index - * @param max - maximum index - * @param mode - specifies how to handle an index outside the interval `[0,max]` - * @returns index - * - * @example - * var idx = ns.ind( 2, 9, 'clamp' ); - * // returns 2 - * - * idx = ns.ind( 10, 9, 'clamp' ); - * // returns 9 - * - * idx = ns.ind( -1, 9, 'clamp' ); - * // returns 0 - * - * @example - * var idx = ns.ind( 2, 9, 'wrap' ); - * // returns 2 - * - * idx = ns.ind( 10, 9, 'wrap' ); - * // returns 0 - * - * idx = ns.ind( -1, 9, 'wrap' ); - * // returns 9 - * - * @example - * var idx = ns.ind( 2, 9, 'throw' ); - * // returns 2 - * - * idx = ns.ind( 10, 9, 'throw' ); - * // throws - * - * idx = ns.ind( -1, 9, 'throw' ); - * // throws - * - * @example - * var idx = ns.ind( 1, 10, 'normalize' ); - * // returns 1 - * - * idx = ns.ind( -4, 10, 'normalize' ); - * // returns 7 - * - * idx = ns.ind( -100, 10, 'normalize' ); - * // throws - */ - ind: typeof ind; - - /** - * Converts a linear index to an array of subscripts. - * - * ## Notes - * - * - The function accepts the following "modes": - * - * - **throw**: throw an error when a linear index exceeds array dimensions. - * - **normalize**: normalize negative indices and throw an error when a linear index exceeds array dimensions. - * - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic. - * - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index. - * - * - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function interprets the linear index as an index into the underlying data buffer for the array, thus returning subscripts from the perspective of that buffer. If an `offset` is equal to `0`, the function treats the linear index as an index into an array view, thus returning subscripts from the perspective of that view. - * - * ```text - * Dims: 2x2 - * Buffer: [ 1, 2, 3, 4 ] - * - * View = [ a00, a01, - * a10, a11 ] - * - * Strides: 2,1 - * Offset: 0 - * - * View = [ 1, 2, - * 3, 4 ] - * - * Strides: 2,-1 - * Offset: 1 - * - * View = [ 2, 1, - * 4, 3 ] - * - * Strides: -2,1 - * Offset: 2 - * - * View = [ 3, 4, - * 1, 2 ] - * - * Strides: -2,-1 - * Offset: 3 - * - * View = [ 4, 3, - * 2, 1 ] - * ``` - * - * ```javascript - * var shape = [ 2, 2 ]; - * var order = 'row-major'; - * var strides = [ -2, 1 ]; - * var offset = 2; - * var mode = 'throw'; - * - * // From the perspective of a view... - * var s = ind2sub( shape, strides, 0, order, 0, mode ); - * // returns [ 0, 0 ] - * - * s = ind2sub( shape, strides, 0, order, 1, mode ); - * // returns [ 0, 1 ] - * - * s = ind2sub( shape, strides, 0, order, 2, mode ); - * // returns [ 1, 0 ] - * - * s = ind2sub( shape, strides, 0, order, 3, mode ); - * // returns [ 1, 1 ] - * - * // From the perspective of an underlying buffer... - * s = ind2sub( shape, strides, offset, order, 0, mode ); - * // returns [ 1, 0 ] - * - * s = ind2sub( shape, strides, offset, order, 1, mode ); - * // returns [ 1, 1 ] - * - * s = ind2sub( shape, strides, offset, order, 2, mode ); - * // returns [ 0, 0 ] - * - * s = ind2sub( shape, strides, offset, order, 3, mode ); - * // returns [ 0, 1 ] - * ``` - * - * In short, from the perspective of a view, view data is always ordered. - * - * - * @param shape - array shape - * @param strides - stride array - * @param offset - location of the first indexed value **based** on the stride array - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @param idx - linear index - * @param mode - specifies how to handle a linear index which exceeds array dimensions - * @throws linear index must not exceed array dimensions - * @returns subscripts - * - * @example - * var shape = [ 3, 3, 3 ]; - * var strides = [ 9, 6, 1 ]; - * var offset = 0; - * var order = 'row-major'; - * - * var s = ns.ind2sub( shape, strides, offset, order, 17, 'throw' ); - * // returns [ 1, 2, 2 ] - */ - ind2sub: typeof ind2sub; - - /** - * Returns array iteration order. - * - * ## Notes - * - * - Return value key: - * - * - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`) - * - `1`: ordered left-to-right (i.e., all nonnegative strides) - * - `-1`: ordered right-to-left (i.e., all negative strides) - * - * @param strides - stride array - * @returns iteration order - * - * @example - * var o = ns.iterationOrder( [ 2, 1 ] ); - * // returns 1 - * - * o = ns.iterationOrder( [ -2, 1 ] ); - * // returns 0 - * - * o = ns.iterationOrder( [ -2, -1 ] ); - * // returns -1 - */ - iterationOrder: typeof iterationOrder; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned array has the following elements: - * - * ```text - * [ , ... ] - * ``` - * - * where - * - * - **shape**: dimensions sorted in loop order. - * - **...strides**: strides for each respective ndarray sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of array strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * - Cache performance may be degraded if the layout order (i.e., row-major or column-major) differs for the input and output ndarrays. This function is intended to optimize cache performance for the most common layout order. Accordingly, if the output ndarray has a different layout order (e.g., if the input ndarrays are row-major and the output ndarray is column-major), cache misses are likely for the output ndarray. In general, to ensure best performance, input and output ndarrays should have the same layout order. - * - * - The function assumes that the input and output ndarrays have the same shape. Hence, loop interchange order should only be determined **after** broadcasting. - * - * @param shape - array dimensions - * @param strides - list of stride arrays containing the stride lengths for each input and output ndarray - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * var sy = [ 24, 8, 1 ]; // row-major - * var sz = [ 1, -2, 6 ]; // column-major - * - * var o = ns.loopOrder( sh, [ sx, sy, sz ] ); - * // returns [...] - * - * var ssh = o[ 0 ]; - * // returns [ 4, 3, 2 ] - * - * var ssx = o[ 1 ]; - * // returns [ 1, 4, 12 ] - * - * var ssy = o[ 2 ]; - * // returns [ 1, 8, 24 ] - * - * var ssz = o[ 3 ]; - * // returns [ 6, -2, 1 ] - */ - loopOrder: typeof loopOrder; - - /** - * Applies a callback function to elements in an input ndarray and assigns results to elements in an output ndarray. - * - * @param arrays - array-like object containing one input ndarray and one output ndarray - * @param fcn - callback function - * @param thisArg - callback function execution context - * @throws arrays must have the same number of dimensions - * @throws arrays must have the same shape - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var getData = require( '@stdlib/ndarray-data-buffer' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * function scale( x ) { - * return x * 10.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * var ybuf = new Float64Array( 6 ); - * - * // Define the shape of the input and output arrays: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * var sy = [ 2, 2, 1 ]; - * - * // Define the index offsets: - * var ox = 1; - * var oy = 0; - * - * // Create the input and output ndarrays: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var y = ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * - * // Apply function: - * ns.map( [ x, y ], scale ); - * - * console.log( getData( y ) ); - * // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ] - */ - map: typeof map; - - /** - * Computes the maximum linear index in an underlying data buffer accessible to an array view. - * - * @param shape - array shape - * @param strides - stride array - * @param offset - index offset - * @returns linear index - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ 10, 1 ]; - * var offset = 0; - * - * var idx = ns.maxViewBufferIndex( shape, strides, offset ); - * // returns 99 - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ -10, -1 ]; - * var offset = 99; - * - * var idx = ns.maxViewBufferIndex( shape, strides, offset ); - * // returns 99 - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ 1, 10 ]; - * var offset = 0; - * - * var idx = ns.maxViewBufferIndex( shape, strides, offset ); - * // returns 99 - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ -1, -10 ]; - * var offset = 99; - * - * var idx = ns.maxViewBufferIndex( shape, strides, offset ); - * // returns 99 - */ - maxViewBufferIndex: typeof maxViewBufferIndex; - - /** - * Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape. - * - * ## Notes - * - * - The function throws an error if a provided ndarray is incompatible with a provided shape. - * - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray. - * - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements. - * - A returned array view is a "base" ndarray, and, thus, a returned array view does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to broadcast an ndarray-like object within internal implementations and to do so with minimal overhead. - * - * @param arr - input array - * @param shape - desired shape - * @throws input array cannot have more dimensions than the desired shape - * @throws input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape - * @throws input array and desired shape must be broadcast compatible - * @returns broadcasted array - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var shx = getShape( x ); - * // returns [ 2, 2 ] - * - * var y = ns.maybeBroadcastArray( x, [ 3, 2, 2 ] ); - * // returns [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 1, 2 ], [ 3, 4 ] ], [ [ 1, 2 ], [ 3, 4 ] ] ] - * - * var shy = getShape( y ); - * // returns [ 3, 2, 2 ] - */ - maybeBroadcastArray: typeof maybeBroadcastArray; - - /** - * Broadcasts an ndarray to a specified shape while keeping a list of specified dimensions unchanged if and only if the specified shape differs from the provided ndarray's shape. - * - * ## Notes - * - * - If a provided ndarray has the same shape as the specified shape (excluding the list of specified dimensions), the function returns the provided ndarray unchanged. - * - The function expects that each index in the list of dimensions is negative in order to ensure that indices correspond to the same relative position in the output ndarray shape. For example, given an input ndarray shape `[2,X1,X2]` and a desired shape `[6,7,2,Y1,Y2]`, a list of negative dimensions `[-2,-1]` correctly maps the unchanged dimensions `X` in the input ndarray to ignored dimensions `Y` in the provided target shape. Nonnegative indices, however, afford no such mapping. For example, the list of dimensions `[1,2]` corresponds to `[X1,X2]` in the input ndarray shape, but to `[7,2]` in the target shape, which is not desired. By expecting negative indices, we avoid confusion and ensure that users always refer to dimensions relative to the last broadcasted dimension. - * - The function throws an error if a provided ndarray is incompatible with a provided shape. - * - If a provided ndarray does not have the same shape as the specified shape, the returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements. - * - If a provided ndarray does not have the same shape as the specified shape, the returned array is a "base" ndarray, and, thus, the returned array does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to broadcast an ndarray-like object within internal implementations and to do so with minimal overhead. - * - * @param arr - input array - * @param shape - desired shape - * @param dims - list of dimensions to exclude from broadcasting - * @throws input array cannot have more dimensions than the desired shape - * @throws broadcasted dimensions in the input array and desired shape must be broadcast compatible - * @throws dimension indices must not exceed desired shape bounds - * @throws must provide unique dimension indices - * @returns broadcasted array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * - * var x = array( [ [ 1, 2, 3 ] ] ); - * // returns [ [ 1, 2, 3 ] ] - * - * var y = ns.maybeBroadcastArrayExceptDimensions( x, [ 2, 2, 3 ], [ -2 ] ); - * // returns [ [ [ 1, 2, 3 ] ], [ [ 1, 2, 3 ] ] ] - */ - maybeBroadcastArrayExceptDimensions: typeof maybeBroadcastArrayExceptDimensions; - - /** - * Broadcasts ndarrays to a common shape. - * - * ## Notes - * - * - The function throws an error if provided broadcast-incompatible ndarrays. - * - If a provided ndarray has a shape matching the common shape, the function returns the provided ndarray. - * - If a provided ndarray has a different (broadcast compatible) shape than the common shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to a returned array, copy the array before performing operations which may mutate elements. - * - A returned array view is a "base" ndarray, and, thus, a returned array view does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to broadcast ndarray-like objects within internal implementations and to do so with minimal overhead. - * - * @param arrays - input arrays - * @throws input arrays must be broadcast compatible - * @returns list of broadcasted arrays - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var array = require( '@stdlib/ndarray-array' ); - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var shx = getShape( x1 ); - * // returns [ 2, 2 ] - * - * var y1 = zeros( [ 3, 2, 2 ] ); - * // returns [ [ [ 0, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 0 ] ] ] - * - * var shy = getShape( y1 ); - * // returns [ 3, 2, 2 ] - * - * var out = ns.maybeBroadcastArrays( [ x1, y1 ] ); - * // returns [ , ] - * - * var x2 = out[ 0 ]; - * // returns [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 1, 2 ], [ 3, 4 ] ], [ [ 1, 2 ], [ 3, 4 ] ] ] - * - * var y2 = out[ 1 ]; - * // returns [ [ [ 0, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 0 ] ] ] - * - * shx = getShape( x2 ); - * // returns [ 3, 2, 2 ] - * - * shy = getShape( y2 ); - * // returns [ 3, 2, 2 ] - */ - maybeBroadcastArrays: typeof maybeBroadcastArrays; - - /** - * Defines non-enumerable read-only properties which expose ndarray function meta data. - * - * @param meta - function meta data - * @param meta.nargs - total number of arguments - * @param meta.nin - total number of input arrays - * @param meta.nout - total number of output arrays - * @param dtypes - list of ndarray data types - * @param obj - object on which to define properties - * @returns object on which properties were defined - * - * @example - * // Define ndarray function meta data: - * var meta = { - * 'nargs': 2, - * 'nin': 1, - * 'nout': 1 - * }; - * - * // Define the list of ndarray data types: - * var dtypes = [ - * 'float64', 'float64', - * 'float32', 'float32', - * 'generic', 'generic' - * ]; - * - * // Define an object/function on which to set the properties: - * var obj = {}; - * - * // Set the properties: - * ns.metaDataProps( meta, dtypes, obj ); - */ - metaDataProps: typeof metaDataProps; - - /** - * Returns the minimum ndarray data type for storing a provided signed integer value. - * - * @param value - scalar value - * @returns ndarray data type - * - * @example - * var dt = ns.minSignedIntegerDataType( 1280 ); - * // returns 'int16' - * - * @example - * var dt = ns.minSignedIntegerDataType( 3 ); - * // returns 'int8' - */ - minSignedIntegerDataType: typeof minSignedIntegerDataType; - - /** - * Returns the minimum ndarray data type for storing a provided unsigned integer value. - * - * @param value - scalar value - * @returns ndarray data type - * - * @example - * var dt = ns.minUnsignedIntegerDataType( 1280 ); - * // returns 'uint16' - * - * @example - * var dt = ns.minUnsignedIntegerDataType( 3 ); - * // returns 'uint8' - */ - minUnsignedIntegerDataType: typeof minUnsignedIntegerDataType; - - /** - * Computes the minimum linear index in an underlying data buffer accessible to an array view. - * - * @param shape - array shape - * @param strides - stride array - * @param offset - index offset - * @returns linear index - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ 10, 1 ]; - * var offset = 10; - * - * var idx = ns.minViewBufferIndex( shape, strides, offset ); - * // returns 10 - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ -10, -1 ]; - * var offset = 109; - * - * var idx = ns.minViewBufferIndex( shape, strides, offset ); - * // returns 10 - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ 1, 10 ]; - * var offset = 10; - * - * var idx = ns.minViewBufferIndex( shape, strides, offset ); - * // returns 10 - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ -1, -10 ]; - * var offset = 109; - * - * var idx = ns.minViewBufferIndex( shape, strides, offset ); - * // returns 10 - */ - minViewBufferIndex: typeof minViewBufferIndex; - - /** - * Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view. - * - * @param shape - array shape - * @param strides - stride array - * @param offset - index offset - * @returns linear indices - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ 10, 1 ]; - * var offset = 10; - * - * var idx = ns.minmaxViewBufferIndex( shape, strides, offset ); - * // returns [ 10, 109 ] - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ -10, -1 ]; - * var offset = 99; - * - * var idx = ns.minmaxViewBufferIndex( shape, strides, offset ); - * // returns [ 0, 99 ] - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ 1, 10 ]; - * var offset = 10; - * - * var idx = ns.minmaxViewBufferIndex( shape, strides, offset ); - * // returns [ 10, 109 ] - * - * @example - * var shape = [ 10, 10 ]; - * var strides = [ -1, -10 ]; - * var offset = 99; - * - * var idx = ns.minmaxViewBufferIndex( shape, strides, offset ); - * // returns [ 0, 99 ] - */ - minmaxViewBufferIndex: typeof minmaxViewBufferIndex; - - /** - * Creates a NaN-filled ndarray having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns NaN-filled ndarray - * - * @example - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.nans( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ NaN, NaN ], [ NaN, NaN ] ] - * - * var dt = String( getDType( arr ) ); - * // returns 'float64' - */ - nans: typeof nans; - - /** - * Creates a NaN-filled ndarray having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns NaN-filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var ones = require( '@stdlib/ndarray-base-ones' ); - * - * var x = ones( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'float64' - * - * var y = ns.nansLike( x ); - * // returns [ [ NaN, NaN ], [ NaN, NaN ] ] - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - * - * dt = String( getDType( y ) ); - * // returns 'float64' - */ - nansLike: typeof nansLike; - - /** - * Converts an ndarray-like object to an ndarray descriptor. - * - * @param x - input ndarray - * @returns ndarray descriptor - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var out = ns.ndarraylike2descriptor( zeros( [ 2, 2 ] ) ); - * // returns {...} - */ - ndarraylike2descriptor: typeof ndarraylike2descriptor; - - /** - * Converts an ndarray-like object to an ndarray. - * - * @param x - input ndarray - * @returns ndarray - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] ); - * - * var out = ns.ndarraylike2ndarray( x ); - * // returns - */ - ndarraylike2ndarray: typeof ndarraylike2ndarray; - - /** - * Converts an ndarray-like object to an object likely to have the same "shape". - * - * ## Notes - * - * - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different "hidden" classes. If a function is provided many objects having different "shapes", some JavaScript VMs (e.g., V8) will consider the function "megamorphic" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the "shape" of the object holding ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument "shapes". - * - * @param x - input ndarray - * @returns object containing ndarray data - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] ); - * - * var obj = ns.ndarraylike2object( x ); - * // returns {...} - */ - ndarraylike2object: typeof ndarraylike2object; - - /** - * Converts an ndarray-like object to a scalar value. - * - * @param x - input ndarray - * @returns scalar value - * - * @example - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * - * var x = scalar2ndarray( 1.0 ); - * // returns - * - * var out = ns.ndarraylike2scalar( x ); - * // returns 1.0 - */ - ndarraylike2scalar: typeof ndarraylike2scalar; - - /** - * Returns the number of ndarray dimensions. - * - * @param x - input ndarray - * @returns number of dimensions - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var n = ns.ndims( zeros( [ 3, 3, 3 ] ) ); - * // returns 3 - */ - ndims: typeof ndims; - - /** - * Returns the next Cartesian index (i.e., set of subscripts/dimension indices). - * - * ## Notes - * - * - The function does not check whether the current index is the "last" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the "first" index. - * - If provided an empty shape (i.e., a shape corresponding to a zero-dimensional ndarray) or a dimension index `dim` which is out-of-bounds, the function returns `null`. - * - * @param shape - array shape - * @param order - iteration order - * @param idx - current dimension indices - * @param dim - index of the dimension from which to start incrementing (inclusive) - * @returns updated dimension indices - * - * @example - * var shape = [ 12 ]; - * var idx = ns.nextCartesianIndex( shape, 'row-major', [ 2 ], 0 ); - * // returns [ 3 ] - * - * @example - * var shape = [ 2, 2, 2 ]; - * - * var idx = ns.nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 ); - * // returns [ 0, 1, 0 ] - * - * idx = ns.nextCartesianIndex( shape, 'row-major', idx, -1 ); - * // returns [ 0, 1, 1 ] - * - * idx = ns.nextCartesianIndex( shape, 'row-major', idx, -1 ); - * // returns [ 1, 0, 0 ] - * - * idx = ns.nextCartesianIndex( shape, 'row-major', idx, -1 ); - * // returns [ 1, 0, 1 ] - * - * idx = ns.nextCartesianIndex( shape, 'row-major', idx, -1 ); - * // returns [ 1, 1, 0 ] - * - * idx = ns.nextCartesianIndex( shape, 'row-major', idx, -1 ); - * // returns [ 1, 1, 1 ] - * - * @example - * var shape = []; - * var idx = ns.nextCartesianIndex( shape, 'row-major', [], 0 ); - * // returns null - * - * @example - * var shape = [ 12 ]; - * var idx = ns.nextCartesianIndex( shape, 'row-major', [ 2 ], -10 ); - * // returns null - * - * @example - * var shape = [ 12 ]; - * var idx = ns.nextCartesianIndex( shape, 'column-major', [ 2 ], 10 ); - * // returns null - */ - nextCartesianIndex: typeof nextCartesianIndex; - - /** - * Returns the number of non-singleton dimensions. - * - * ## Notes - * - * - A singleton dimension is a dimension whose size is equal to `1`. - * - * @param shape - array shape - * @returns number of non-singleton dimensions - * - * @example - * var n = ns.nonsingletonDimensions( [ 3, 3, 1, 2 ] ); - * // returns 3 - * - * @example - * var n = ns.nonsingletonDimensions( [ 1, 1 ] ); - * // returns 0 - */ - nonsingletonDimensions: typeof nonsingletonDimensions; - - /** - * Normalizes an index to the interval `[0,max]`. - * - * ## Notes - * - * - If provided an out-of-bounds index, the function returns `-1`. - * - * @param idx - index - * @param max - maximum index - * @returns index - * - * @example - * var idx = ns.normalizeIndex( -2, 10 ); - * // returns 9 - * - * idx = ns.normalizeIndex( 15, 10 ); - * // returns -1 - * - * idx = ns.normalizeIndex( 5, 10 ); - * // returns 5 - */ - normalizeIndex: typeof normalizeIndex; - - /** - * Normalizes a list of indices to the interval `[0,max]`. - * - * ## Notes - * - * - If provided an out-of-bounds index, the function returns `null`. - * - The function mutates the input array, even when provided an out-of-bounds index. - * - * @param indices - indices - * @param max - maximum index - * @returns normalized indices or null - * - * @example - * var indices = ns.normalizeIndices( [ -2, 5 ], 10 ); - * // returns [ 9, 5 ] - * - * indices = ns.normalizeIndices( [ -2, 15 ], 10 ); - * // returns null - */ - normalizeIndices: typeof normalizeIndices; - - /** - * Applies a nullary callback and assigns results to elements in an output ndarray. - * - * @param arrays - array-like object containing an output ndarray - * @param fcn - nullary callback - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * function fcn() { - * return 10.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( 12 ); - * - * // Define the shape of the output array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the output ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * - * // Apply the ns.nullary function: - * ns.nullary( [ x ], fcn ); - * - * console.log( x.data ); - * // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ] - */ - nullary: typeof nullary; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned object has the following properties: - * - * - **sh**: dimensions sorted in loop order. - * - **sx**: ndarray strides sorted in loop order. - * - **idx**: dimension indices sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of array strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * @param shape - array dimensions - * @param stridesX - array stride lengths - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * - * var o = ns.nullaryLoopOrder( sh, sx ); - * // returns {...} - * - * var ssh = o.sh; - * // returns [ 4, 3, 2 ] - * - * var ssx = o.sx; - * // returns [ 1, 4, 12 ] - * - * var idx = o.idx; - * // returns [ 2, 1, 0 ] - */ - nullaryLoopOrder: typeof nullaryLoopOrder; - - /** - * Constructor for applying a strided function to an ndarray. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param options - function options - * @returns instance - * - * @example - * var base = require( '@stdlib/blas-ext-base-ndarray-gsorthp' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = dtypes( 'all' ); - * - * var table = { - * 'default': base - * }; - * var sorthp = new ns.nullaryStrided1dDispatch( table, [ idt ], odt ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var order = scalar2ndarray( 1.0, { - * 'dtype': 'generic' - * }); - * - * var out = sorthp.assign( x, order ); - * // returns - * - * var arr = ndarray2array( x ); - * // returns [ -3.0, -1.0, 2.0 ] - * - * var bool = ( out === x ); - * // returns true - */ - nullaryStrided1dDispatch: typeof nullaryStrided1dDispatch; - - /** - * Creates a function for applying a strided function to an output ndarray. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param options - function options - * @returns function for applying a nullary function - * - * @example - * var base = require( '@stdlib/blas-ext-base-ndarray-gsorthp' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = dtypes( 'all' ); - * - * var table = { - * 'default': base - * }; - * var sorthp = ns.nullaryStrided1dDispatchFactory( table, [ idt ], odt ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var order = scalar2ndarray( 1.0, { - * 'dtype': 'generic' - * }); - * - * var out = sorthp( x, order ); - * // returns [ -3.0, -1.0, 2.0 ] - * - * var bool = ( out === x ); - * // returns true - */ - nullaryStrided1dDispatchFactory: typeof nullaryStrided1dDispatchFactory; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypeX - array data type - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.nullaryBlockSize( 'float64' ); - * // returns - */ - nullaryBlockSize: typeof nullaryBlockSize; - - /** - * Creates a null-filled ndarray having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns null-filled ndarray - * - * @example - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.nulls( 'generic', [ 2, 2 ], 'row-major' ); - * // returns [ [ null, null ], [ null, null ] ] - * - * var dt = String( getDType( arr ) ); - * // returns 'generic' - */ - nulls: typeof nulls; - - /** - * Creates a null-filled ndarray having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns null-filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var empty = require( '@stdlib/ndarray-empty' ); - * - * var x = empty( [ 2, 2 ], { - * 'dtype': 'generic' - * }); - * // returns - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'generic' - * - * var y = ns.nullsLike( x ); - * // returns [ [ null, null ], [ null, null ] ] - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - * - * dt = String( getDType( y ) ); - * // returns 'generic' - */ - nullsLike: typeof nullsLike; - - /** - * Returns the number of elements in an array. - * - * @param shape - array shape - * @returns number of elements - * - * @example - * var n = ns.numel( [ 3, 3, 3 ] ); - * // returns 27 - */ - numel: typeof numel; - - /** - * Returns the size (i.e., number of elements) of a specified dimension for a provided ndarray. - * - * @param x - input ndarray - * @param dim - dimension index - * @returns dimension size - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var d = ns.numelDimension( zeros( [ 4, 2, 3 ] ), 0 ); - * // returns 4 - */ - numelDimension: typeof numelDimension; - - /** - * Returns the index offset specifying the underlying buffer index of the first iterated ndarray element. - * - * @param x - input ndarray - * @returns index offset - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var n = ns.offset( zeros( [ 3, 3, 3 ] ) ); - * // returns 0 - */ - offset: typeof offset; - - /** - * Returns the index offset specifying the underlying buffer index of the first iterated element for each ndarray in a provided list of ndarrays. - * - * @param arrays - list of ndarrays - * @returns index offsets - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 3, 3, 3 ] ); - * - * var out = ns.offsets( [ x ] ); - * // returns [ 0 ] - */ - offsets: typeof offsets; - - /** - * Creates a ones-filled ndarray having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns ones-filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.ones( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ] - * - * var sh = getShape( arr ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( arr ) ); - * // returns 'float64' - */ - ones: typeof ones; - - /** - * Creates a ones-filled ndarray having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns ones-filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var ones = require( '@stdlib/ndarray-base-ones' ); - * - * var x = ones( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'float64' - * - * var y = ns.onesLike( x ); - * // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ] - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - * - * dt = String( getDType( y ) ); - * // returns 'float64' - */ - onesLike: typeof onesLike; - - /** - * Returns the layout order of a provided ndarray. - * - * ## Notes - * - * - If unable to resolve a layout order, the function returns `null`. - * - * @param x - input ndarray - * @returns layout order (or null) - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 3, 3, 3 ], { - * 'ns.order': 'row-major' - * }); - * - * var o = ns.order( x ); - * // returns 'row-major' - */ - order: typeof order; - - /** - * Resolves the output data type from a list of input ndarray data types. - * - * @param dtypes - input ndarray data types - * @param policy - output ndarray data type policy - * @returns output ndarray data type - * - * @example - * var dt = ns.outputDataType( [ 'float64' ], 'complex_floating_point' ); - * // returns - */ - outputDataType: typeof outputDataType; - - /** - * Resolves the order (i.e. memory layout) of an output ndarray according to a list of input ndarrays. - * - * ## Notes - * - * - When the layout differs among provided ndarrays, the function returns the default layout. - * - * @param arrays - list of input ndarrays - * @returns storage layout - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var x = zeros( [ 2, 2 ] ); - * var y = zeros( [ 2, 2 ] ); - * - * var order = ns.outputOrder( [ x, y ] ); - * // returns - */ - outputOrder: typeof outputOrder; - - /** - * Returns the policy string associated with an output ndarray data type policy enumeration constant. - * - * @param policy - policy enumeration constant - * @returns policy string - * - * @example - * var str2enum = require( '@stdlib/ndarray-base-output-policy-str2enum' ); - * - * var v = str2enum( 'same' ); - * // returns - * - * var policy = ns.outputPolicyEnum2Str( v ); - * // returns 'same' - */ - outputPolicyEnum2Str: typeof outputPolicyEnum2Str; - - /** - * Returns the enumeration constant associated with an ndarray data type policy value. - * - * ## Notes - * - * - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner. - * - * @param policy - policy value - * @returns enumeration constant - * - * @example - * var v = ns.outputPolicyResolveEnum( 'same' ); - * // returns - */ - outputPolicyResolveEnum: typeof outputPolicyResolveEnum; - - /** - * Returns the policy string associated with an output ndarray data type policy value. - * - * @param policy - policy value - * @returns policy string - * - * @example - * var str2enum = require( '@stdlib/ndarray-base-output-policy-str2enum' ); - * - * var v = ns.outputPolicyResolveStr( str2enum( 'same' ) ); - * // returns 'same' - */ - outputPolicyResolveStr: typeof outputPolicyResolveStr; - - /** - * Returns the enumeration constant associated with an output ndarray data type policy string. - * - * ## Notes - * - * - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner. - * - * @param policy - policy string - * @returns enumeration constant - * - * @example - * var v = ns.outputPolicyStr2Enum( 'same' ); - * // returns - */ - outputPolicyStr2Enum: typeof outputPolicyStr2Enum; - - /** - * Returns an array containing a truncated view of an input ndarray and a view of the last element(s) along a specified dimension. - * - * ## Notes - * - * - The input array must have one or more dimensions. - * - * @param x - input array - * @param dim - dimension along which to perform the operation - * @param writable - boolean indicating whether returned arrays should be writable - * @returns a list of ndarrays - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var arr = ndarray2array( x ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var y = ns.pop( x, 0, false ); - * // returns [ , ] - * - * arr = ndarray2array( y[ 0 ] ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] - * - * arr = ndarray2array( y[ 1 ] ); - * // returns [ [ 5.0, 6.0 ] ] - */ - pop: typeof pop; - - /** - * Returns an array with a specified number of prepended singleton dimensions. - * - * @param x - input array - * @param n - number of singleton dimensions to prepend - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.prependSingletonDimensions( x, 3, false ); - * // returns [ [ [ [ [ 1, 2 ], [ 3, 4 ] ] ] ] ] - */ - prependSingletonDimensions: typeof prependSingletonDimensions; - - /** - * Returns a data type that results from applying promotion rules to a provided list of data types. - * - * ## Notes - * - * - The function returns `null` if provided data types which cannot be safely cast to a promoted data type. - * - * @param dtypes - list of data types - * @returns result - * - * @example - * var dt = ns.promoteDataTypes( [ 'float32', 'float64' ] ); - * // returns 'float64' - * - * @example - * var dt = ns.promoteDataTypes( [ 'binary', 'complex128' ] ); - * // returns null - */ - promoteDataTypes: typeof promoteDataTypes; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned object has the following properties: - * - * - **sh**: dimensions sorted in loop order. - * - **sx**: first input ndarray strides sorted in loop order. - * - **sy**: second input ndarray strides sorted in loop order. - * - **sz**: third input ndarray strides sorted in loop order. - * - **sw**: fourth input ndarray strides sorted in loop order. - * - **su**: output ndarray strides sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of array strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * - Cache performance may be degraded if the layout order (i.e., row-major or column-major) differs for the input and output ndarrays. This function is intended to optimize cache performance for the most common layout order. Accordingly, if the output ndarray has a different layout order (e.g., if the input ndarrays are row-major and the output ndarray is column-major), cache misses are likely for the output ndarray. In general, to ensure best performance, input and output ndarrays should have the same layout order. - * - * - The function assumes that the input and output ndarrays have the same shape. Hence, loop interchange order should only be determined **after** broadcasting. - * - * @param shape - array dimensions - * @param stridesX - first input array stride lengths - * @param stridesY - second input array stride lengths - * @param stridesZ - third input array stride lengths - * @param stridesW - fourth input array stride lengths - * @param stridesU - output array stride lengths - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * var sy = [ 24, 8, 1 ]; // row-major - * var sz = [ 1, 4, 12 ]; // column-major - * var sw = [ 1, -2, 6 ]; // column-major - * var su = [ 1, -2, 6 ]; // column-major - * - * var o = ns.quaternaryLoopOrder( sh, sx, sy, sz, sw, su ); - * // returns {...} - * - * var ssh = o.sh; - * // returns [ 2, 3, 4 ] - * - * var ssx = o.sx; - * // returns [ 12, 4, 1 ] - * - * var ssy = o.sy; - * // returns [ 24, 8, 1 ] - * - * var ssz = o.sz; - * // returns [ 1, 4, 12 ] - * - * var ssw = o.sw; - * // returns [ 1, -2, 6 ] - * - * var ssu = o.su; - * // returns [ 1, -2, 6 ] - */ - quaternaryLoopOrder: typeof quaternaryLoopOrder; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypeX - first input array data type - * @param dtypeY - second input array data type - * @param dtypeZ - third input array data type - * @param dtypeW - fourth input array data type - * @param dtypeU - output array data type - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.quaternaryBlockSize( 'float64', 'float64', 'float64', 'float64', 'float64' ); - * // returns - */ - quaternaryBlockSize: typeof quaternaryBlockSize; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned object has the following properties: - * - * - **sh**: dimensions sorted in loop order. - * - **sx**: first input ndarray strides sorted in loop order. - * - **sy**: second input ndarray strides sorted in loop order. - * - **sz**: third input ndarray strides sorted in loop order. - * - **sw**: fourth input ndarray strides sorted in loop order. - * - **su**: fifth input ndarray strides sorted in loop order. - * - **sv**: output ndarray strides sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of array strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * - Cache performance may be degraded if the layout order (i.e., row-major or column-major) differs for the input and output ndarrays. This function is intended to optimize cache performance for the most common layout order. Accordingly, if the output ndarray has a different layout order (e.g., if the input ndarrays are row-major and the output ndarray is column-major), cache misses are likely for the output ndarray. In general, to ensure best performance, input and output ndarrays should have the same layout order. - * - * - The function assumes that the input and output ndarrays have the same shape. Hence, loop interchange order should only be determined **after** broadcasting. - * - * @param shape - array dimensions - * @param stridesX - first input array stride lengths - * @param stridesY - second input array stride lengths - * @param stridesZ - third input array stride lengths - * @param stridesW - fourth input array stride lengths - * @param stridesU - fifth input array stride lengths - * @param stridesV - output array stride lengths - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * var sy = [ 24, 8, 1 ]; // row-major - * var sz = [ 12, 4, 1 ]; // row-major - * var sw = [ 24, 8, 1 ]; // row-major - * var su = [ 1, 4, 12 ]; // column-major - * var sv = [ 1, -2, 6 ]; // column-major - * - * var o = ns.quinaryLoopOrder( sh, sx, sy, sz, sw, su, sv ); - * // returns {...} - * - * var ssh = o.sh; - * // returns [ 4, 3, 2 ] - * - * var ssx = o.sx; - * // returns [ 1, 4, 12 ] - * - * var ssy = o.sy; - * // returns [ 1, 8, 24 ] - * - * var ssz = o.sz; - * // returns [ 1, 4, 12 ] - * - * var ssw = o.sw; - * // returns [ 1, 8, 24 ] - * - * var ssu = o.su; - * // returns [ 12, 4, 1 ] - * - * var ssv = o.sv; - * // returns [ 6, -2, 1 ] - */ - quinaryLoopOrder: typeof quinaryLoopOrder; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypeX - first input array data type - * @param dtypeY - second input array data type - * @param dtypeZ - third input array data type - * @param dtypeW - fourth input array data type - * @param dtypeU - fifth input array data type - * @param dtypeV - output array data type - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.quinaryBlockSize( 'float64', 'float64', 'float64', 'float64', 'float64', 'float64' ); - * // returns - */ - quinaryBlockSize: typeof quinaryBlockSize; - - /** - * Reinterprets a boolean ndarray as an unsigned 8-bit integer ndarray. - * - * ## Notes - * - * - The returned ndarray is a view on the input ndarray data buffer. - * - The returned ndarray is a "base" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead. - * - * @param x - input ndarray - * @returns unsigned 8-bit integer ndarray view - * - * @example - * var zeros = require( '@stdlib/ndarray-base-zeros' ); - * - * var x = zeros( 'bool', [ 2, 2 ], 'row-major' ); - * // returns [ [ false, false ], [ false, false ] ] - * - * var out = ns.reinterpretBoolean( x ); - * // returns [ [ 0, 0 ], [ 0, 0 ] ] - */ - reinterpretBoolean: typeof reinterpretBoolean; - - /** - * Reinterprets a single-precision complex floating-point ndarray as a real-valued single-precision floating-point ndarray containing interleaved real and imaginary components. - * - * ## Notes - * - * - The returned ndarray is a view on the input ndarray data buffer. - * - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray. - * - The returned ndarray is a "base" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead. - * - * @param x - input ndarray - * @returns single-precision floating-point ndarray view - * - * @example - * var zeroTo = require( '@stdlib/blas-ext-zero-to' ); - * - * var x = zeroTo( [ 2, 2 ], { - * 'dtype': 'complex64' - * }); - * // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ] - * - * var out = ns.reinterpretComplex( x ); - * // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ] - */ - reinterpretComplex: typeof reinterpretComplex; - - /** - * Reinterprets a single-precision complex floating-point ndarray as a real-valued single-precision floating-point ndarray containing interleaved real and imaginary components. - * - * ## Notes - * - * - The returned ndarray is a view on the input ndarray data buffer. - * - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray. - * - The returned ndarray is a "base" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead. - * - * @param x - input ndarray - * @returns single-precision floating-point ndarray view - * - * @example - * var ones = require( '@stdlib/ndarray-base-ones' ); - * - * var x = ones( 'complex64', [ 2, 2 ], 'row-major' ); - * // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ] - * - * var out = ns.reinterpretComplex64( x ); - * // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ] - */ - reinterpretComplex64: typeof reinterpretComplex64; - - /** - * Reinterprets a double-precision complex floating-point ndarray as a real-valued double-precision floating-point ndarray containing interleaved real and imaginary components. - * - * ## Notes - * - * - The returned ndarray is a view on the input ndarray data buffer. - * - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray. - * - The returned ndarray is a "base" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead. - * - * @param x - input ndarray - * @returns double-precision floating-point ndarray view - * - * @example - * var ones = require( '@stdlib/ndarray-base-ones' ); - * - * var x = ones( 'complex128', [ 2, 2 ], 'row-major' ); - * // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ] - * - * var out = ns.reinterpretComplex128( x ); - * // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ] - */ - reinterpretComplex128: typeof reinterpretComplex128; - - /** - * Returns an ndarray without singleton dimensions. - * - * ## Notes - * - * - The function always returns a new ndarray instance even if the input ndarray does not contain any singleton dimensions. - * - * @param x - input array - * @param writable - boolean indicating whether a returned array should be writable - * @returns squeezed array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ], { - * 'ndmin': 5 - * }); - * // returns [ [ [ [ [ 1, 2 ], [ 3, 4 ] ] ] ] ] - * - * var y = ns.removeSingletonDimensions( x, false ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - */ - removeSingletonDimensions: typeof removeSingletonDimensions; - - /** - * Returns a view of an input ndarray in which the order of elements along each dimension is reversed. - * - * @param x - input array - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.reverse( x, false ); - * // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - reverse: typeof reverse; - - /** - * Returns a view of an input ndarray in which the order of elements along a specified dimension is reversed. - * - * @param x - input array - * @param dim - index of dimension to reverse - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.reverseDimension( x, 0, false ); - * // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - reverseDimension: typeof reverseDimension; - - /** - * Returns a view of an input ndarray in which the order of elements along specified dimensions is reversed. - * - * @param x - input array - * @param dims - indices of dimensions to reverse - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var y = ns.reverseDimensions( x, [ 0, 1 ], false ); - * // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] - */ - reverseDimensions: typeof reverseDimensions; - - /** - * Rotates an ndarray 90 degrees in a specified plane. - * - * ## Notes - * - * - If `k > 0`, the function rotates the plane from the first specified dimension toward the second specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane counterclockwise. - * - If `k < 0`, the function rotates the plane from the second specified dimension toward the first specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane clockwise. - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - * @param x - input array - * @param dims - dimension indices defining the plane of rotation - * @param k - number of times to rotate by 90 degrees - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns ndarray view - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.rot90( x, [ 0, 1 ], 1, false ); - * // returns [ [ 2, 4 ], [ 1, 3 ] ] - */ - rot90: typeof rot90; - - /** - * Rotates an ndarray 180 degrees in a specified plane. - * - * ## Notes - * - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - * @param x - input array - * @param dims - dimension indices defining the plane of rotation - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns ndarray view - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.rot180( x, [ 0, 1 ], false ); - * // returns [ [ 4, 3 ], [ 2, 1 ] ] - */ - rot180: typeof rot180; - - /** - * Rotates a matrix (or a stack of matrices) 90 degrees counterclockwise. - * - * @param x - input array - * @param k - number of times to rotate by 90 degrees - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns ndarray view - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.rotl90( x, 1, false ); - * // returns [ [ 2, 4 ], [ 1, 3 ] ] - */ - rotl90: typeof rotl90; - - /** - * Rotates a matrix (or a stack of matrices) 90 degrees clockwise. - * - * @param x - input array - * @param k - number of times to rotate by 90 degrees - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns ndarray view - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.rotr90( x, 1, false ); - * // returns [ [ 3, 1 ], [ 4, 2 ] ] - */ - rotr90: typeof rotr90; - - /** - * Serializes ndarray meta data. - * - * ## Notes - * - * - Serialization is performed according to host byte order (endianness). - * - * - Meta data format: - * - * ```text - * | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) | - * ``` - * - * which translates to the following `ArrayBuffer` layout: - * - * ```text - * ArrayBuffer[ - * [int8], - * [int16], - * [int64], - * [ndims*int64], - * [ndims*int64], - * [int64], - * [int8], - * [int8], - * [int64], - * [nsubmodes*int8], - * [int32] - * ] - * ``` - * - * where `strides` and `offset` are in units of bytes. - * - * - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian. - * - * - Buffer length: - * - * ```text - * 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes - * ``` - * - * For example, consider a three-dimensional ndarray with one subscript index mode (submode): - * - * ```text - * 33 + (3*16) + 1 = 82 bytes - * ``` - * - * - Views: - * - * - endianness: `Int8Array( buf, 0, 1 )` - * - dtype: `Int16Array( buf, 1, 1 )` - * - ndims: `Int64Array( buf, 3, 1 )` - * - shape: `Int64Array( buf, 11, ndims )` - * - strides: `Int64Array( buf, 11+(ndims*8), ndims )` - * - offset: `Int64Array( buf, 11+(ndims*16), 1 )` - * - order: `Int8Array( buf, 19+(ndims*16), 1 )` - * - mode: `Int8Array( buf, 20+(ndims*16), 1 )` - * - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )` - * - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )` - * - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1)` - * - * @param x - input ndarray - * @returns serialized meta data - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * - * var dv = ns.serializeMetaData( x ); - * // returns - */ - serializeMetaData: typeof serializeMetaData; - - /** - * Sets ndarray descriptor index offsets. - * - * ## Notes - * - * - This function mutates the provided descriptors. - * - * @param descriptors - list of ndarray descriptors - * @param offsets - list of index offsets - * @returns input array - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var getOffset = require( '@stdlib/ndarray-base-offset' ); - * var ndarraylike2descriptor = require( '@stdlib/ndarray-base-ndarraylike2descriptor' ); - * - * var obj = ndarraylike2descriptor({ - * 'dtype': 'float64', - * 'data': new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ), - * 'shape': [ 1 ], - * 'strides': [ 1 ], - * 'offset': 0, - * 'order': 'row-major' - * }); - * - * var arr = [ obj ]; - * var out = ns.setDescriptorOffsets( arr, [ 2 ] ); - * // returns [...] - * - * var bool = ( out === arr ); - * // returns true - * - * var offset = getOffset( arr[ 0 ] ); - * // returns 2 - */ - setDescriptorOffsets: typeof setDescriptorOffsets; - - /** - * Returns the shape of a provided ndarray. - * - * ## Notes - * - * - When `copy` is `false`, changes to the returned shape array may mutate the input ndarray shape. If there is a chance that the returned shape will be mutated (either directly or by downstream consumers), set `copy` to `true` to prevent unintended side effects. - * - * @param x - input ndarray - * @param copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property - * @returns shape - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var sh = ns.shape( zeros( [ 3, 3, 3 ] ), false ); - * // returns [ 3, 3, 3 ] - */ - shape: typeof shape; - - /** - * Generates a stride array from an array shape. - * - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns array strides - * - * @example - * var s = ns.shape2strides( [ 3, 2 ], 'row-major' ); - * // returns [ 2, 1 ] - * - * s = ns.shape2strides( [ 3, 2 ], 'column-major' ); - * // returns [ 1, 3 ] - */ - shape2strides: typeof shape2strides; - - /** - * Returns an array containing a truncated view of an input ndarray and a view of the first element(s) along a specified dimension. - * - * ## Notes - * - * - The input array must have one or more dimensions. - * - * @param x - input array - * @param dim - dimension along which to perform the operation - * @param writable - boolean indicating whether returned arrays should be writable - * @returns a list of ndarrays - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var arr = ndarray2array( x ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var y = ns.shift( x, 0, false ); - * // returns [ , ] - * - * arr = ndarray2array( y[ 0 ] ); - * // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * arr = ndarray2array( y[ 1 ] ); - * // returns [ [ 1.0, 2.0 ] ] - */ - shift: typeof shift; - - /** - * Returns the number of singleton dimensions. - * - * ## Notes - * - * - A singleton dimension is a dimension whose size is equal to `1`. - * - * @param shape - array shape - * @returns number of singleton dimensions - * - * @example - * var n = ns.singletonDimensions( [ 3, 3, 1, 2 ] ); - * // returns 1 - * - * @example - * var n = ns.singletonDimensions( [ 2, 2 ] ); - * // returns 0 - */ - singletonDimensions: typeof singletonDimensions; - - /** - * Returns a view of an input ndarray. - * - * @param x - input array - * @param s - multi-slice object - * @param strict - boolean indicating whether to enforce strict bounds checking - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var Slice = require( '@stdlib/slice-ctor' ); - * var MultiSlice = require( '@stdlib/slice-multi' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) ); - * // returns - * - * var y = ns.slice( x, s, false, false ); - * // returns - * - * sh = y.shape; - * // returns [ 2, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 6, 5 ], [ 2, 1 ] ] - */ - slice: typeof slice; - - /** - * Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view. - * - * ## Notes - * - * - The input array must be broadcast compatible with the output array view to which elements will be assigned. - * - The input array must have a data type which can be safely cast to the output array data type. Floating-point data types (both real and complex) are allowed to downcast to a lower precision data type of the same kind (e.g., element values from a `'float64'` input array can be assigned to corresponding elements in a `'float32'` output array). - * - * @param x - input array - * @param y - output array - * @param s - multi-slice object for the output array - * @param strict - boolean indicating whether to enforce strict bounds checking - * @returns output array - * - * @example - * var Slice = require( '@stdlib/slice-ctor' ); - * var MultiSlice = require( '@stdlib/slice-multi' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndzeros = require( '@stdlib/ndarray-zeros' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * // Define an input array: - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * // Define an output array: - * var y = ndzeros( [ 2, 3, 2 ], { - * 'dtype': x.dtype - * }); - * - * // Create a slice: - * var s0 = null; - * var s1 = new Slice( null, null, -1 ); - * var s2 = new Slice( null, null, -1 ); - * var s = new MultiSlice( s0, s1, s2 ); - * // returns - * - * // Perform assignment: - * var out = ns.sliceAssign( x, y, s, false ); - * // returns - * - * var bool = ( out === y ); - * // returns true - * - * arr = ndarray2array( y ); - * // returns [ [ [ 6, 5 ], [ 4, 3 ], [ 2, 1 ] ], [ [ 6, 5 ], [ 4, 3 ], [ 2, 1 ] ] ] - */ - sliceAssign: typeof sliceAssign; - - /** - * Returns a view of an input ndarray when sliced along a specified dimension. - * - * @param x - input array - * @param dim - index of dimension to slice - * @param s - slice object or an integer - * @param strict - boolean indicating whether to enforce strict bounds checking - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var Slice = require( '@stdlib/slice-ctor' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * var s = new Slice( null, null, -1 ); - * // returns - * - * var y = ns.sliceDimension( x, 0, s, false, false ); - * // returns - * - * sh = y.shape; - * // returns [ 3, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 5, 6 ], [ 3, 4 ], [ 1, 2 ] ] - */ - sliceDimension: typeof sliceDimension; - - /** - * Returns a shifted view of an input ndarray along a specified dimension. - * - * @param x - input array - * @param dim - index of dimension to slice - * @param start - starting index (inclusive) - * @param strict - boolean indicating whether to enforce strict bounds checking - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * var y = ns.sliceDimensionFrom( x, 0, 1, false, false ); - * // returns - * - * sh = y.shape; - * // returns [ 2, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 3, 4 ], [ 5, 6 ] ] - */ - sliceDimensionFrom: typeof sliceDimensionFrom; - - /** - * Returns a truncated view of an input ndarray along a specified dimension. - * - * @param x - input array - * @param dim - index of dimension to slice - * @param stop - ending index (exclusive) - * @param strict - boolean indicating whether to enforce strict bounds checking - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * var y = ns.sliceDimensionTo( x, 0, 2, false, false ); - * // returns - * - * sh = y.shape; - * // returns [ 2, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - */ - sliceDimensionTo: typeof sliceDimensionTo; - - /** - * Returns a shifted view of an input ndarray. - * - * @param x - input array - * @param start - starting indices (inclusive) - * @param strict - boolean indicating whether to enforce strict bounds checking - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * var s = [ 1, null ]; - * var y = ns.sliceFrom( x, s, false, false ); - * // returns - * - * sh = y.shape; - * // returns [ 2, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 3, 4 ], [ 5, 6 ] ] - */ - sliceFrom: typeof sliceFrom; - - /** - * Returns a truncated view of an input ndarray. - * - * @param x - input array - * @param stop - ending indices (exclusive) - * @param strict - boolean indicating whether to enforce strict bounds checking - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = [ 1, 2, 3, 4, 5, 6 ]; - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] - * - * var s = [ 2, null ]; - * var y = ns.sliceTo( x, s, false, false ); - * // returns - * - * sh = y.shape; - * // returns [ 2, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - */ - sliceTo: typeof sliceTo; - - /** - * Tests whether at least `n` elements in an ndarray are truthy. - * - * @param arrays - array-like object containing an input ndarray and a zero-dimensional ndarray specifying the minimum number of elements in the input ndarray that must be truthy - * @returns boolean indicating whether `n` elements pass a test - * - * @example - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var n = scalar2ndarray( 3, { - * 'dtype': 'generic' - * }); - * - * // Test elements: - * var out = ns.some( [ x, n ] ); - * // returns true - */ - some: typeof some; - - /** - * Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function. - * - * @param arrays - array-like object containing an input ndarray and a zero-dimensional ndarray specifying the minimum number of elements in the input ndarray that must satisfy the predicate function - * @param predicate - predicate function - * @param thisArg - predicate function execution context - * @returns boolean indicating whether `n` elements pass a test - * - * @example - * var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * function predicate( value ) { - * return value > 0.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var n = scalar2ndarray( 3, { - * 'dtype': 'generic' - * }); - * - * // Test elements: - * var out = ns.someBy( [ x, n ], predicate ); - * // returns true - */ - someBy: typeof someBy; - - /** - * Expands the shape of an array to a specified dimensionality by spreading its dimensions to specified dimension indices and inserting dimensions of size one for the remaining dimensions. - * - * ## Notes - * - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. If provided a negative dimension index, the position at which to place a respective dimension is computed as `ndims + index`. - * - Provided dimension indices must resolve to normalized dimension indices arranged in ascending order. - * - * @param ndims - number of dimensions in the output array - * @param x - input array - * @param dims - dimension indices - * @param writable - boolean indicating whether a returned array should be writable - * @returns output array - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns - * - * var shx = getShape( x ); - * // returns [ 2, 2 ] - * - * var y = ns.spreadDimensions( 5, x, [ 1, 3 ], false ); - * // returns - * - * var shy = getShape( y ); - * // returns [ 1, 2, 1, 2, 1 ] - * - * var v = y.get( 0, 0, 0, 0, 0 ); - * // returns 1 - * - * v = y.get( 0, 0, 0, 1, 0 ); - * // returns 2 - * - * v = y.get( 0, 1, 0, 0, 0 ); - * // returns 3 - * - * v = y.get( 0, 1, 0, 1, 0 ); - * // returns 4 - */ - spreadDimensions: typeof spreadDimensions; - - /** - * Returns the stride along a specified dimension for a provided ndarray. - * - * ## Notes - * - * - A "stride" is the linear distance (i.e., number of elements) between adjacent elements along a specified dimension. - * - * @param x - input ndarray - * @param dim - dimension index - * @returns stride - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var st = ns.stride( zeros( [ 3, 3, 3 ] ), 0 ); - * // returns 9 - */ - stride: typeof stride; - - /** - * Returns the strides of a provided ndarray. - * - * ## Notes - * - * - When `copy` is `false`, changes to the returned strides array may mutate the input ndarray strides. If there is a chance that the returned strides will be mutated (either directly or by downstream consumers), set `copy` to `true` to prevent unintended side effects. - * - * @param x - input ndarray - * @param copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property - * @returns strides - * - * @example - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * var st = ns.strides( zeros( [ 3, 3, 3 ] ), false ); - * // returns [ 9, 3, 1 ] - */ - strides: typeof strides; - - /** - * Returns the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array. - * - * @param shape - array shape - * @param strides - stride array - * @returns offset - * - * @example - * var shape = [ 2, 3, 10 ]; - * var strides = [ 30, -10, 1 ]; - * - * var offset = ns.strides2offset( shape, strides ); - * // returns 20 - */ - strides2offset: typeof strides2offset; - - /** - * Determines the order of a multidimensional array based on a provided stride array. - * - * @param strides - stride array - * @returns order - * - * @example - * var order = ns.strides2order( [ 2, 1 ] ); - * // returns 1 - * - * @example - * var order = ns.strides2order( [ 1, 2 ] ); - * // returns 2 - * - * @example - * var order = ns.strides2order( [ 1, 1, 1 ] ); - * // returns 3 - * - * @example - * var order = ns.strides2order( [ 2, 3, 1 ] ); - * // returns 0 - */ - strides2order: typeof strides2order; - - /** - * Converts subscripts to a linear index. - * - * ## Notes - * - * - The function accepts the following "modes": - * - * - **throw**: throw an error when a subscript exceeds array dimensions. - * - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions. - * - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic. - * - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension. - * - * - When provided fewer modes than dimensions, the function recycles modes using modulo arithmetic. - * - * - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function treats subscripts as mapping to a linear index in an underlying data buffer for the array, thus returning a linear index from the perspective of that buffer. If an `offset` is equal to `0`, the function treats subscripts as mapping to a linear index in an array view, thus returning a linear index from the perspective of that view. - * - * ```text - * Dims: 2x2 - * Buffer: [ 1, 2, 3, 4 ] - * - * View = [ a00, a01, - * a10, a11 ] - * - * Strides: 2,1 - * Offset: 0 - * - * View = [ 1, 2, - * 3, 4 ] - * - * Strides: 2,-1 - * Offset: 1 - * - * View = [ 2, 1, - * 4, 3 ] - * - * Strides: -2,1 - * Offset: 2 - * - * View = [ 3, 4, - * 1, 2 ] - * - * Strides: -2,-1 - * Offset: 3 - * - * View = [ 4, 3, - * 2, 1 ] - * ``` - * - * ```javascript - * var shape = [ 2, 2 ]; - * var strides = [ -2, 1 ]; - * var offset = 2; - * var mode = [ 'throw' ]; - * - * // From the perspective of a view... - * var idx = sub2ind( shape, strides, 0, 0, 0, mode ); - * // returns 0 - * - * idx = sub2ind( shape, strides, 0, 0, 1, mode ); - * // returns 1 - * - * idx = sub2ind( shape, strides, 0, 1, 0, mode ); - * // returns 2 - * - * idx = sub2ind( shape, strides, 0, 1, 1, mode ); - * // returns 3 - * - * // From the perspective of an underlying buffer... - * idx = sub2ind( shape, strides, offset, 0, 0, mode ); - * // returns 2 - * - * idx = sub2ind( shape, strides, offset, 0, 1, mode ); - * // returns 3 - * - * idx = sub2ind( shape, strides, offset, 1, 0, mode ); - * // returns 0 - * - * idx = sub2ind( shape, strides, offset, 1, 1, mode ); - * // returns 1 - * ``` - * - * In short, from the perspective of a view, view data is always ordered. - * - * - * @param shape - array shape - * @param strides - stride array - * @param offset - location of the first indexed value **based** on the stride array - * @param args - subscripts followed by a `mode` specifying how to handle subscripts which exceed array dimensions - * @param mode - specifies how to handle subscripts which exceed array dimensions - * @throws must provide subscripts which do not exceed array dimensions - * @returns linear index - * - * @example - * var shape = [ 3, 3, 3 ]; - * var strides = [ 9, 3, 1 ]; - * var offset = 0; - * var mode = [ 'throw' ]; - * - * var idx = ns.sub2ind( shape, strides, offset, 1, 2, 2, mode ); - * // returns 17 - */ - sub2ind: typeof sub2ind; - - /** - * Applies a ternary callback to elements in input ndarrays and assigns results to elements in an output ndarray. - * - * @param arrays - array-like object containing three input ndarrays and one output ndarray - * @param fcn - ternary callback - * @throws arrays must have the same number of dimensions - * @throws arrays must have the same shape - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var getData = require( '@stdlib/ndarray-data-buffer' ); - * var add3 = require( '@stdlib/number-float64-base-add3' ); - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] ); - * var wbuf = new Float64Array( 6 ); - * - * // Define the shape of the input and output arrays: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 2, 2, 1 ]; - * var sy = [ 2, 2, 1 ]; - * var sz = [ 2, 2, 1 ]; - * var sw = [ 2, 2, 1 ]; - * - * // Define the index offsets: - * var ox = 0; - * var oy = 0; - * var oz = 0; - * var ow = 0; - * - * // Create the input and output ndarrays: - * var x = new ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var y = new ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * var z = new ndarray( 'float64', zbuf, shape, sz, oz, 'row-major' ); - * var w = new ndarray( 'float64', wbuf, shape, sw, ow, 'row-major' ); - * - * // Apply the ns.ternary function: - * ns.ternary( [ x, y, z, w ], add3 ); - * - * console.log( getData( w ) ); - * // => [ 2.5, 4.5, 6.5, 8.5, 10.5, 12.5 ] - */ - ternary: typeof ternary; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned object has the following properties: - * - * - **sh**: dimensions sorted in loop order. - * - **sx**: first input ndarray strides sorted in loop order. - * - **sy**: second input ndarray strides sorted in loop order. - * - **sz**: third input ndarray strides sorted in loop order. - * - **sw**: output ndarray strides sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of array strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * - Cache performance may be degraded if the layout order (i.e., row-major or column-major) differs for the input and output ndarrays. This function is intended to optimize cache performance for the most common layout order. Accordingly, if the output ndarray has a different layout order (e.g., if the input ndarrays are row-major and the output ndarray is column-major), cache misses are likely for the output ndarray. In general, to ensure best performance, input and output ndarrays should have the same layout order. - * - * - The function assumes that the input and output ndarrays have the same shape. Hence, loop interchange order should only be determined **after** broadcasting. - * - * @param shape - array dimensions - * @param stridesX - first input array stride lengths - * @param stridesY - second input array stride lengths - * @param stridesZ - third input array stride lengths - * @param stridesW - output array stride lengths - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * var sy = [ 24, 8, 1 ]; // row-major - * var sz = [ 1, 4, 12 ]; // column-major - * var sw = [ 1, -2, 6 ]; // column-major - * - * var o = ns.ternaryLoopOrder( sh, sx, sy, sz, sw ); - * // returns {...} - * - * var ssh = o.sh; - * // returns [ 2, 3, 4 ] - * - * var ssx = o.sx; - * // returns [ 12, 4, 1 ] - * - * var ssy = o.sy; - * // returns [ 24, 8, 1 ] - * - * var ssz = o.sz; - * // returns [ 1, 4, 12 ] - * - * var ssw = o.sw; - * // returns [ 1, -2, 6 ] - */ - ternaryLoopOrder: typeof ternaryLoopOrder; - - /** - * Resolves the output ndarray data type for a ternary function. - * - * @param xdtype - first input ndarray data type - * @param ydtype - second input ndarray data type - * @param zdtype - third input ndarray data type - * @param policy - output ndarray data type policy - * @returns output ndarray data type - * - * @example - * var dt = ns.ternaryOutputDataType( 'float64', 'float32', 'float32', 'complex_floating_point' ); - * // returns - */ - ternaryOutputDataType: typeof ternaryOutputDataType; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypeX - first input array data type - * @param dtypeY - second input array data type - * @param dtypeZ - third input array data type - * @param dtypeW - output array data type - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.ternaryBlockSize( 'float64', 'float64', 'float64', 'float64' ); - * // returns - */ - ternaryBlockSize: typeof ternaryBlockSize; - - /** - * Returns an ndarray created by repeating the elements of an input ndarray a specified number of times along each dimension. - * - * ## Notes - * - * - The number of repetitions must have at least as many elements as the number of input dimensions. When the number of repetitions exceeds the number of input dimensions, the input array is treated as if singleton dimensions were prepended. - * - The function always copies data to a new ndarray. - * - * @param x - input array - * @param reps - number of repetitions along each dimension - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.tile( x, [ 2, 2 ] ); - * // returns [ [ 1, 2, 1, 2 ], [ 3, 4, 3, 4 ], [ 1, 2, 1, 2 ], [ 3, 4, 3, 4 ] ] - */ - tile: typeof tile; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypes - list of input and output ndarray data types - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.blockSize( [ 'float64', 'float64', 'float64', 'float64' ] ); - * // returns - */ - blockSize: typeof blockSize; - - /** - * Converts an ndarray buffer to a generic array (which may include nested arrays). - * - * @param buffer - data buffer - * @param shape - array shape - * @param strides - array strides - * @param offset - index offset - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns array (which may include nested arrays) - * - * @example - * var buffer = [ 1, 2, 3, 4 ]; - * var shape = [ 2, 2 ]; - * var order = 'row-major'; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var out = ns.ndarray2array( buffer, shape, strides, offset, order ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - */ - ndarray2array: typeof ndarray2array; - - /** - * Returns a new ndarray where the order of elements along the last dimension of an input ndarray is reversed. - * - * @param x - input array - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.toFlippedlr( x ); - * // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - toFlippedlr: typeof toFlippedlr; - - /** - * Returns a new ndarray where the order of elements along the second-to-last dimension of an input ndarray is reversed. - * - * @param x - input array - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.toFlippedud( x ); - * // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - toFlippedud: typeof toFlippedud; - - /** - * Normalizes a list of indices to the interval `[0,max]`. - * - * ## Notes - * - * - If provided an out-of-bounds index, the function normalizes the index to `-1`. - * - * @param indices - indices - * @param max - maximum index - * @returns normalized indices - * - * @example - * var indices = ns.toNormalizedIndices( [ -2, 5 ], 10 ); - * // returns [ 9, 5 ] - * - * indices = ns.toNormalizedIndices( [ -2, 15 ], 10 ); - * // returns [ 9, -1 ] - */ - toNormalizedIndices: typeof toNormalizedIndices; - - /** - * Returns a new ndarray where the order of elements of an input ndarray is reversed along each dimension. - * - * @param x - input array - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var getShape = require( '@stdlib/ndarray-shape' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 3, 2 ] - * - * var y = ns.toReversed( x ); - * // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] - * - * sh = getShape( y ); - * // returns [ 3, 2 ] - */ - toReversed: typeof toReversed; - - /** - * Returns a new ndarray where the order of elements of an input ndarray along a specified dimension is reversed. - * - * @param x - input array - * @param dim - index of dimension to reverse - * @returns output array - * - * @example - * var typedarray = require( '@stdlib/array-typed' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * - * var buffer = typedarray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ], 'float64' ); - * var shape = [ 3, 2 ]; - * var strides = [ 2, 1 ]; - * var offset = 0; - * - * var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' ); - * // returns - * - * var sh = x.shape; - * // returns [ 3, 2 ] - * - * var arr = ndarray2array( x ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var y = ns.toReversedDimension( x, 0 ); - * // returns - * - * sh = y.shape; - * // returns [ 3, 2 ] - * - * arr = ndarray2array( y ); - * // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ] - */ - toReversedDimension: typeof toReversedDimension; - - /** - * Returns a new ndarray where the order of elements of an input ndarray along specified dimensions is reversed. - * - * @param x - input array - * @param dims - indices of dimensions to reverse - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] ); - * // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] - * - * var y = ns.toReversedDimensions( x, [ 0, 1 ] ); - * // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] - */ - toReversedDimensions: typeof toReversedDimensions; - - /** - * Returns a new ndarray where an ndarray is rotated 90 degrees in a specified plane. - * - * ## Notes - * - * - If `k > 0`, the function rotates the plane from the first specified dimension toward the second specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane counterclockwise. - * - If `k < 0`, the function rotates the plane from the second specified dimension toward the first specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane clockwise. - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - * @param x - input array - * @param dims - dimension indices defining the plane of rotation - * @param k - number of times to rotate by 90 degrees - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.toRot90( x, [ 0, 1 ], 1 ); - * // returns [ [ 2, 4 ], [ 1, 3 ] ] - */ - toRot90: typeof toRot90; - - /** - * Returns a new ndarray where an ndarray is rotated 180 degrees in a specified plane. - * - * ## Notes - * - * - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. - * - * @param x - input array - * @param dims - dimension indices defining the plane of rotation - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.toRot180( x, [ 0, 1 ] ); - * // returns [ [ 4, 3 ], [ 2, 1 ] ] - */ - toRot180: typeof toRot180; - - /** - * Returns a new ndarray where a matrix (or a stack of matrices) is rotated 90 degrees counterclockwise. - * - * @param x - input array - * @param k - number of times to rotate by 90 degrees - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.toRotl90( x, 1 ); - * // returns [ [ 2, 4 ], [ 1, 3 ] ] - */ - toRotl90: typeof toRotl90; - - /** - * Returns a new ndarray where a matrix (or a stack of matrices) is rotated 90 degrees clockwise. - * - * @param x - input array - * @param k - number of times to rotate by 90 degrees - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2 ], [ 3, 4 ] ] ); - * // returns [ [ 1, 2 ], [ 3, 4 ] ] - * - * var y = ns.toRotr90( x, 1 ); - * // returns [ [ 3, 1 ], [ 4, 2 ] ] - */ - toRotr90: typeof toRotr90; - - /** - * Returns a new ndarray containing the elements of an input ndarray but whose last two dimensions are transposed. - * - * @param x - input array - * @returns output ndarray - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] ); - * // returns [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] - * - * var out = ns.toTransposed( x ); - * // returns [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] - */ - toTransposed: typeof toTransposed; - - /** - * Returns a new ndarray in which a specified dimension of an input ndarray is expanded over multiple dimensions. - * - * @param x - input array - * @param dim - dimension to be unflattened - * @param sizes - new shape of the unflattened dimension - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * // returns [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] - * - * var y = ns.toUnflattened( x, 0, [ 2, 3 ] ); - * // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ] ] - */ - toUnflattened: typeof toUnflattened; - - /** - * Returns a list of unique indices after normalizing to the interval `[0,max]`. - * - * ## Notes - * - * - If provided an out-of-bounds index, the function returns `null`. - * - * @param indices - indices - * @param max - maximum index - * @returns normalized indices (or null) - * - * @example - * var indices = ns.toUniqueNormalizedIndices( [ -2, 5 ], 10 ); - * // returns [ 9, 5 ] - * - * indices = ns.toUniqueNormalizedIndices( [ -2, 15 ], 10 ); - * // returns null - */ - toUniqueNormalizedIndices: typeof toUniqueNormalizedIndices; - - /** - * Transposes a matrix (or a stack of matrices). - * - * @param x - input array - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns ndarray view - * - * @example - * var getData = require( '@stdlib/ndarray-data-buffer' ); - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ], { - * 'dtype': 'generic' - * }); - * // returns [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] - * - * var y = ns.transpose( x, false ); - * // returns [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] - * - * var bool = ( getData( x ) === getData( y ) ); - * // returns true - */ - transpose: typeof transpose; - - /** - * Creates an ndarray filled with `true` values and having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns `true`-filled ndarray - * - * @example - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.trues( 'generic', [ 2, 2 ], 'row-major' ); - * // returns [ [ true, true ], [ true, true ] ] - * - * var dt = String( getDType( arr ) ); - * // returns 'generic' - */ - trues: typeof trues; - - /** - * Creates an ndarray filled with `true` values and having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var empty = require( '@stdlib/ndarray-empty' ); - * - * var x = empty( [ 2, 2 ], { - * 'dtype': 'bool' - * }); - * // returns - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'bool' - * - * var y = ns.truesLike( x ); - * // returns [ [ true, true ], [ true, true ] ] - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - * - * dt = String( getDType( y ) ); - * // returns 'bool' - */ - truesLike: typeof truesLike; - - /** - * Applies a unary callback to elements in an ndarray and assigns results to elements in an ndarray. - * - * @param arrays - array-like object containing one input ndarray and one output ndarray - * @param fcn - unary callback - * @throws arrays must have the same number of dimensions - * @throws arrays must have the same shape - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * function scale( x ) { - * return x * 10.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * var ybuf = new Float64Array( 6 ); - * - * // Define the shape of the input and output arrays: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * var sy = [ 2, 2, 1 ]; - * - * // Define the index offsets: - * var ox = 1; - * var oy = 0; - * - * // Create the input and output ndarrays: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var y = ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * - * // Apply the ns.unary function: - * ns.unary( [ x, y ], scale ); - * - * console.log( y.data ); - * // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ] - */ - unary: typeof unary; - - /** - * Performs a reduction over elements in an ndarray. - * - * @param arrays - array-like object containing one input ndarray - * @param initial - initial value - * @param clbk - callback function - * @returns accumulated result - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * - * function add( acc, x ) { - * return acc + x; - * } - * - * // Create a data buffer: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * - * // Define the shape of the input array: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * - * // Define the index offset: - * var ox = 1; - * - * // Create the input ndarray-like object: - * var x = { - * 'dtype': 'float64', - * 'data': xbuf, - * 'shape': shape, - * 'strides': sx, - * 'offset': ox, - * 'order': 'row-major' - * }; - * - * // Compute the sum: - * var v = ns.unaryAccumulate( [ x ], 0.0, add ); - * // returns 39.0 - */ - unaryAccumulate: typeof unaryAccumulate; - - /** - * Returns a function which dispatches to a native add-on applying a unary function to an input ndarray. - * - * @param addon - add-on function - * @param fallback - fallback function - * @returns dispatch function - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * var zeros = require( '@stdlib/ndarray-zeros' ); - * - * function addon( x, metaX, y, metaY ) { - * // Call into native add-on... - * } - * - * function fallback( x, y ) { - * // Fallback JavaScript implementation... - * } - * - * // Create a ns.unaryAddonDispatch function: - * var f = ns.unaryAddonDispatch( addon, fallback ); - * - * // ... - * - * // Invoke the ns.unaryAddonDispatch function with ndarray arguments: - * var x = array( [ [ 1, 2], [ 3, 4 ] ] ); - * var y = zeros( [ 2, 2 ] ); - * f( x, y ); - */ - unaryAddonDispatch: typeof unaryAddonDispatch; - - /** - * Applies a unary function to elements in an ndarray and assigns results to elements in an ndarray. - * - * @param arrays - array-like object containing one input ndarray and one output ndarray - * @param fcn - unary function to apply to callback return values - * @param clbk - callback function - * @param thisArg - callback execution context - * @throws arrays must have the same number of dimensions - * @throws arrays must have the same shape - * - * @example - * var identity = require( '@stdlib/number-float64-base-identity' ); - * var Float64Array = require( '@stdlib/array-float64' ); - * var ndarray = require( '@stdlib/ndarray-ctor' ); - * - * function scale( x ) { - * return x * 10.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * var ybuf = new Float64Array( 6 ); - * - * // Define the shape of the input and output arrays: - * var shape = [ 3, 1, 2 ]; - * - * // Define the array strides: - * var sx = [ 4, 4, 1 ]; - * var sy = [ 2, 2, 1 ]; - * - * // Define the index offsets: - * var ox = 1; - * var oy = 0; - * - * // Create the input and output ndarrays: - * var x = ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' ); - * var y = ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' ); - * - * // Apply the unary function: - * ns.unaryBy( [ x, y ], scale, identity ); - * - * console.log( y.data ); - * // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ] - */ - unaryBy: typeof unaryBy; - - /** - * Resolves the input ndarray casting data type for a unary function. - * - * @param idtype - input ndarray data type - * @param odtype - output ndarray data type - * @param policy - input ndarray casting data type policy - * @returns input ndarray casting data type - * - * @example - * var dt = ns.unaryInputCastingDataType( 'float64', 'float64', 'none' ); - * // returns - */ - unaryInputCastingDataType: typeof unaryInputCastingDataType; - - /** - * Reorders ndarray dimensions and associated strides for loop interchange. - * - * ## Notes - * - * - The returned object has the following properties: - * - * - **sh**: dimensions sorted in loop order. - * - **sx**: input ndarray strides sorted in loop order. - * - **sy**: output ndarray strides sorted in loop order. - * - **idx**: dimension indices sorted in loop order. - * - * - When iterating over the elements of a multi-dimensional array, accessing elements which are closer in memory can improve performance. To this end, loop interchange is a technique used in loop nest optimization to improve locality of reference and take advantage of CPU cache. - * - * The purpose of this function is to order ndarray dimensions according to the magnitude of **input array** strides. By using the ordered dimensions and associated strides, one can construct nested loops (one for each dimension) such that the innermost loop iterates over the dimension in which array elements are closest in memory and the outermost loop iterates over the dimension in which array elements are farthest apart in memory. As a consequence, element iteration is optimized to minimize cache misses and ensure locality of reference. - * - * - Cache performance may be degraded if the layout order (i.e., row-major or column-major) differs for the input and output ndarrays. This function is intended to optimize cache performance for the input ndarray. If the output ndarray has a different layout order (e.g., if the input ndarray is row-major and the output ndarray is column-major), cache misses are likely for the output ndarray. In general, to ensure best performance, input and output ndarrays should have the same layout order. - * - * - The function assumes that the input and output ndarrays have the same shape. Hence, loop interchange order should only be determined **after** broadcasting. - * - * @param shape - array dimensions - * @param stridesX - input array stride lengths - * @param stridesY - output array stride lengths - * @returns loop interchange data - * - * @example - * var sh = [ 2, 3, 4 ]; - * - * var sx = [ 12, 4, 1 ]; // row-major - * var sy = [ 1, -2, 6 ]; // column-major - * - * var o = ns.unaryLoopOrder( sh, sx, sy ); - * // returns {...} - * - * var ssh = o.sh; - * // returns [ 4, 3, 2 ] - * - * var ssx = o.sx; - * // returns [ 1, 4, 12 ] - * - * var ssy = o.sy; - * // returns [ 6, -2, 1 ] - * - * var idx = o.idx; - * // returns [ 2, 1, 0 ] - */ - unaryLoopOrder: typeof unaryLoopOrder; - - /** - * Resolves the output ndarray data type for a unary function. - * - * @param dtype - input ndarray data type - * @param policy - output ndarray data type policy - * @returns output ndarray data type - * - * @example - * var dt = ns.unaryOutputDataType( 'float64', 'complex_floating_point' ); - * // returns - */ - unaryOutputDataType: typeof unaryOutputDataType; - - /** - * Constructor for performing a reduction on an input ndarray. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @returns instance - * - * @example - * var base = require( '@stdlib/stats-base-ndarray-max' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'same', - * 'casting': 'none' - * }; - * - * var table = { - * 'default': base - * }; - * var max = new ns.unaryReduceStrided1dDispatch( table, [ idt ], odt, policies ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var y = max.apply( x ); - * // returns - * - * var v = y.get(); - * // returns 2.0 - */ - unaryReduceStrided1dDispatch: typeof unaryReduceStrided1dDispatch; - - /** - * Constructor for performing a reduction on an input ndarray according to a callback function. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @returns instance - * - * @example - * var base = require( '@stdlib/stats-base-ndarray-max-by' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'same', - * 'casting': 'none' - * }; - * - * var table = { - * 'default': base - * }; - * var maxBy = new ns.unaryReduceStrided1dDispatchBy( table, [ idt ], odt, policies ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * function clbk( v ) { - * return v * 2.0; - * } - * - * var y = maxBy.apply( x, clbk ); - * // returns - * - * var v = y.get(); - * // returns 4.0 - */ - unaryReduceStrided1dDispatchBy: typeof unaryReduceStrided1dDispatchBy; - - /** - * Creates a function for performing a reduction on a provided ndarray according to a callback function. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @returns function for applying a unary function - * - * @example - * var base = require( '@stdlib/stats-base-ndarray-max-by' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'same', - * 'casting': 'none' - * }; - * - * var table = { - * 'default': base - * }; - * var maxBy = ns.unaryReduceStrided1dDispatchByFactory( table, [ idt ], odt, policies ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * function clbk( v ) { - * return v * 2.0; - * } - * - * var y = maxBy( x, clbk ); - * // returns - * - * var v = y.get(); - * // returns 4.0 - */ - unaryReduceStrided1dDispatchByFactory: typeof unaryReduceStrided1dDispatchByFactory; - - /** - * Creates a function for performing a reduction on a provided ndarray. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @returns function for applying a unary function - * - * @example - * var base = require( '@stdlib/stats-base-ndarray-max' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'same', - * 'casting': 'none' - * }; - * - * var table = { - * 'default': base - * }; - * var max = ns.unaryReduceStrided1dDispatchFactory( table, [ idt ], odt, policies ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var y = max( x ); - * // returns - * - * var v = y.get(); - * // returns 2.0 - */ - unaryReduceStrided1dDispatchFactory: typeof unaryReduceStrided1dDispatchFactory; - - /** - * Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray. - * - * @param fcn - reduction function - * @param arrays - array-like object containing ndarrays - * @param dims - list of dimensions over which to perform a reduction - * @param options - function options - * @param clbk - callback function - * @param thisArg - callback execution context - * - * @example - * var Float64Array = require( '@stdlib/array-float64' ); - * var filled = require( '@stdlib/array-base-filled' ); - * var ndarray2array = require( '@stdlib/ndarray-base-to-array' ); - * var everyBy = require( '@stdlib/ndarray-base-every-by' ); - * - * function clbk( value ) { - * return value > 0.0; - * } - * - * // Create data buffers: - * var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); - * var ybuf = filled( false, 3 ); - * - * // Define the array shapes: - * var xsh = [ 1, 3, 2, 2 ]; - * var ysh = [ 1, 3 ]; - * - * // Define the array strides: - * var sx = [ 12, 4, 2, 1 ]; - * var sy = [ 3, 1 ]; - * - * // Define the index offsets: - * var ox = 0; - * var oy = 0; - * - * // Create an input ndarray-like object: - * var x = { - * 'dtype': 'float64', - * 'data': xbuf, - * 'shape': xsh, - * 'strides': sx, - * 'offset': ox, - * 'order': 'row-major' - * }; - * - * // Create an output ndarray-like object: - * var y = { - * 'dtype': 'generic', - * 'data': ybuf, - * 'shape': ysh, - * 'strides': sy, - * 'offset': oy, - * 'order': 'row-major' - * }; - * - * // Perform a reduction: - * ns.unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk ); - * - * var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order ); - * // returns [ [ true, false, true ] ] - */ - unaryReduceSubarrayBy: typeof unaryReduceSubarrayBy; - - /** - * Constructor for applying a strided function to an input ndarray. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @param options - function options - * @returns instance - * - * @example - * var base = require( '@stdlib/stats-base-ndarray-cumax' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'same', - * 'casting': 'none' - * }; - * - * var table = { - * 'default': base - * }; - * var cumax = new ns.unaryStrided1dDispatch( table, [ idt ], odt, policies ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var y = cumax.apply( x ); - * // returns - * - * var arr = ndarray2array( y ); - * // returns [ -1.0, 2.0, 2.0 ] - */ - unaryStrided1dDispatch: typeof unaryStrided1dDispatch; - - /** - * Creates a function for applying a strided function to a provided ndarray. - * - * @param table - dispatch table - * @param idtypes - list containing lists of supported input data types for each ndarray argument - * @param odtypes - list of supported output data types - * @param policies - dispatch policies - * @param options - function options - * @returns function for applying a unary function - * - * @example - * var base = require( '@stdlib/stats-base-ndarray-cumax' ); - * var dtypes = require( '@stdlib/ndarray-dtypes' ); - * var ndarray2array = require( '@stdlib/ndarray-to-array' ); - * var ndarray = require( '@stdlib/ndarray-base-ctor' ); - * - * var idt = dtypes( 'real_and_generic' ); - * var odt = idt; - * var policies = { - * 'output': 'same', - * 'casting': 'none' - * }; - * - * var table = { - * 'default': base - * }; - * var cumax = ns.unaryStrided1dDispatchFactory( table, [ idt ], odt, policies ); - * - * var xbuf = [ -1.0, 2.0, -3.0 ]; - * var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' ); - * - * var y = cumax( x ); - * // returns - * - * var arr = ndarray2array( y ); - * // returns [ -1.0, 2.0, 2.0 ] - */ - unaryStrided1dDispatchFactory: typeof unaryStrided1dDispatchFactory; - - /** - * Returns a loop block size for multi-dimensional array tiled loops. - * - * @param dtypeX - input array data type - * @param dtypeY - output array data type - * @returns block size (in units of elements) - * - * @example - * var bsize = ns.unaryBlockSize( 'float64', 'float64' ); - * // returns - */ - unaryBlockSize: typeof unaryBlockSize; - - /** - * Returns a view of an input ndarray in which a specified dimension is expanded over multiple dimensions. - * - * @param x - input array - * @param dim - dimension to be unflattened - * @param sizes - new shape of the unflattened dimension - * @param writable - boolean indicating whether the returned ndarray should be writable - * @returns output array - * - * @example - * var array = require( '@stdlib/ndarray-array' ); - * - * var x = array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - * // returns [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] - * - * var out = ns.unflatten( x, 0, [ 2, 3 ], false ); - * // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ] ] - */ - unflatten: typeof unflatten; - - /** - * Expands a dimension over multiple dimensions. - * - * @param shape - array shape - * @param dim - dimension to be unflattened - * @param sizes - new shape of the unflattened dimension - * @returns unflattened shape - * - * @example - * var sh = ns.unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ] ); - * // returns [ 3, 2, 2, 1 ] - * - * @example - * var o = [ 0, 0, 0, 0 ]; - * - * var out = ns.unflattenShape.assign( [ 6, 2, 1 ], 0, [ 3, 2 ], o ); - * // returns [ 3, 2, 2, 1 ] - * - * var bool = ( out === o ); - * // returns true - */ - unflattenShape: typeof unflattenShape; - - /** - * Converts a linear index in an array view to a linear index in an underlying data buffer. - * - * @param shape - array shape - * @param strides - stride array - * @param offset - location of the first indexed value **based** on the stride array - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @param idx - linear index in an array view - * @param mode - specifies how to handle a linear index which exceeds array dimensions - * @throws linear index must not exceed array dimensions - * @returns linear index in an underlying data buffer - * - * @example - * var shape = [ 3, 3 ]; - * var strides = [ -3, 1 ]; - * var offset = 6; - * var order = 'row-major'; - * var mode = 'throw'; - * - * var ind = ns.vind2bind( shape, strides, offset, order, 1, mode ); - * // returns 7 - */ - vind2bind: typeof vind2bind; - - /** - * Wraps an index on the interval `[0,max]`. - * - * @param idx - index - * @param max - maximum index - * @returns index - * - * @example - * var idx = ns.wrapIndex( -1, 10 ); - * // returns 10 - * - * idx = ns.wrapIndex( 13, 10 ); - * // returns 2 - * - * idx = ns.wrapIndex( 6, 10 ); - * // returns 6 - */ - wrapIndex: typeof wrapIndex; - - /** - * Creates a zero-filled ndarray having a specified shape and data type. - * - * @param dtype - underlying data type - * @param shape - array shape - * @param order - specifies whether an array is row-major (C-style) or column-major (Fortran-style) - * @returns zero-filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * - * var arr = ns.zeros( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] - * - * var sh = getShape( arr ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( arr ) ); - * // returns 'float64' - */ - zeros: typeof zeros; - - /** - * Creates a zero-filled ndarray having the same shape and data type as a provided input ndarray. - * - * @param x - input array - * @returns zero-filled ndarray - * - * @example - * var getShape = require( '@stdlib/ndarray-shape' ); - * var getDType = require( '@stdlib/ndarray-dtype' ); - * var zeros = require( '@stdlib/ndarray-base-zeros' ); - * - * var x = zeros( 'float64', [ 2, 2 ], 'row-major' ); - * // returns [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] - * - * var sh = getShape( x ); - * // returns [ 2, 2 ] - * - * var dt = String( getDType( x ) ); - * // returns 'float64' - * - * var y = ns.zerosLike( x ); - * // returns [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] - * - * sh = getShape( y ); - * // returns [ 2, 2 ] - * - * dt = String( getDType( y ) ); - * // returns 'float64' - */ - zerosLike: typeof zerosLike; - - /** - * Zips one or more one-dimensional ndarrays to an array of composite views. - * - * ## Notes - * - * - The function assumes that the list of ndarrays to be zipped all have the same length. - * - The list of provided labels should equal the number of ndarrays to be zipped. - * - Each view in the returned array shares the same memory as the corresponding elements in the input ndarrays. Accordingly, mutation of either an input ndarray or a view will mutate the other. - * - * @param arrays - list of ndarrays to be zipped - * @param labels - list of labels - * @returns output array - * - * @example - * var array2ndarray = require( '@stdlib/ndarray-base-from-array' ); - * - * var x = array2ndarray( [ 1, 2, 3 ], 'row-major' ); - * var y = array2ndarray( [ 'a', 'b', 'c' ], 'row-major' ); - * - * var labels = [ 'x', 'y' ]; - * - * var z = ns.zip2views1d( [ x, y ], labels ); - * // returns [ , , ] - * - * var v0 = z[ 0 ].toJSON(); - * // returns { 'x': 1, 'y': 'a' } - * - * var v1 = z[ 1 ].toJSON(); - * // returns { 'x': 2, 'y': 'b' } - * - * var v2 = z[ 2 ].toJSON(); - * // returns { 'x': 3, 'y': 'c' } - * - * // Mutate one of the input arrays: - * x.set( 0, 5 ); - * - * v0 = z[ 0 ].toJSON(); - * // returns { 'x': 5, 'y': 'a' } - * - * // Set a view property: - * z[ 1 ].y = 'beep'; - * - * v1 = z[ 1 ].toJSON(); - * // returns { 'x': 2, 'y': 'beep' } - * - * var v = y.get( 1 ); - * // returns 'beep' - */ - zip2views1d: typeof zip2views1d; -} - -/** -* Base ndarray. -*/ -declare var ns: Namespace; - - -// EXPORTS // - -export = ns; diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index c2dd14e..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -/* eslint-disable @typescript-eslint/no-unused-expressions */ - -import ns = require( './index' ); - - -// TESTS // - -// The exported value is the expected interface... -{ - ns; // $ExpectType Namespace -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index 1c381c9..0000000 --- a/examples/index.js +++ /dev/null @@ -1,24 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var objectKeys = require( '@stdlib/utils-keys' ); -var ns = require( './../lib' ); - -console.log( objectKeys( ns ) ); diff --git a/index.js b/index.js new file mode 100644 index 0000000..df042fe --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +!function(r,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("buffer")):"function"==typeof define&&define.amd?define(["buffer"],o):(r="undefined"!=typeof globalThis?globalThis:r||self).ns=o(r.require$$0)}(this,(function(r){"use strict";var o="function"==typeof Object.defineProperty?Object.defineProperty:null;var t=Object.defineProperty;function e(r){return"number"==typeof r}function f(r){var o,t="";for(o=0;o0&&(t-=1),e=r.toExponential(t)):e=r.toPrecision(o.precision),o.alternate||(e=p.call(e,w,"$1e"),e=p.call(e,m,"e"),e=p.call(e,v,""));break;default:throw new Error("invalid double notation. Value: "+o.specifier)}return e=p.call(e,h,"e+0$1"),e=p.call(e,l,"e-0$1"),o.alternate&&(e=p.call(e,g,"$1."),e=p.call(e,y,"$1.e")),r>=0&&o.sign&&(e=o.sign+e),e=o.specifier===c.call(o.specifier)?c.call(e):d.call(e)}function x(r){var o,t="";for(o=0;o127)throw new Error("invalid character code. Value: "+f.arg);f.arg=T(a)?String(f.arg):_(a)}break;case"e":case"E":case"f":case"F":case"g":case"G":if(o||(f.precision=6),c=parseFloat(f.arg),!isFinite(c)){if(!e(f.arg))throw new Error("invalid floating-point number. Value: "+u);c=f.arg,f.padZeros=!1}f.arg=b(c,f);break;default:throw new Error("invalid specifier: "+f.specifier)}f.maxWidth>=0&&f.arg.length>f.maxWidth&&(f.arg=f.arg.substring(0,f.maxWidth)),f.padZeros?f.arg=s(f.arg,f.width||f.precision,f.padRight):f.width&&(f.arg=(l=f.arg,g=f.width,y=f.padRight,v=void 0,(v=g-l.length)<0?l:l=y?l+x(v):x(v)+l)),u+=f.arg||"",d+=1}return u}var O=/%(?:([1-9]\d*)\$)?([0 +\-#]*)(\*|\d+)?(?:(\.)(\*|\d+)?)?[hlL]?([%A-Za-z])/g;function S(r){var o={mapping:r[1]?parseInt(r[1],10):void 0,flags:r[2],width:r[3],precision:r[5],specifier:r[6]};return"."===r[4]&&void 0===r[5]&&(o.precision="1"),o}function A(r){var o,t,e,f;for(t=[],f=0,e=O.exec(r);e;)(o=r.slice(f,O.lastIndex-e[0].length)).length&&t.push(o),"%"===e[6]?t.push("%"):t.push(S(e)),f=O.lastIndex,e=O.exec(r);return(o=r.slice(f)).length&&t.push(o),t}function P(r){var o,t;if("string"!=typeof r)throw new TypeError(P("invalid argument. First argument must be a string. Value: `%s`.",r));for(o=[A(r)],t=1;t0?s+=n*(r[a]-1):n<0&&(f+=n*(r[a]-1))}return[f,s]}function G(r,o,t,e){var f,s,n,a,i;for(f=r.length,s=t,n=t,i=0;i0?n+=a*(r[i]-1):a<0&&(s+=a*(r[i]-1))}return e[0]=s,e[1]=n,e}$(W,"assign",G);var Z="function";function K(r){return typeof r.get===Z&&typeof r.set===Z}var X={complex128:function(r,o){return r.get(o)},complex64:function(r,o){return r.get(o)},default:function(r,o){return r.get(o)}};function H(r){var o=X[r];return"function"==typeof o?o:X.default}var Q={complex128:function(r,o,t){r.set(t,o)},complex64:function(r,o,t){r.set(t,o)},default:function(r,o,t){r.set(t,o)}};function rr(r){var o=Q[r];return"function"==typeof o?o:Q.default}var or={float64:function(r,o){return r[o]},float32:function(r,o){return r[o]},int32:function(r,o){return r[o]},int16:function(r,o){return r[o]},int8:function(r,o){return r[o]},uint32:function(r,o){return r[o]},uint16:function(r,o){return r[o]},uint8:function(r,o){return r[o]},uint8c:function(r,o){return r[o]},generic:function(r,o){return r[o]},default:function(r,o){return r[o]}};function tr(r){var o=or[r];return"function"==typeof o?o:or.default}var er={float64:function(r,o,t){r[o]=t},float32:function(r,o,t){r[o]=t},int32:function(r,o,t){r[o]=t},int16:function(r,o,t){r[o]=t},int8:function(r,o,t){r[o]=t},uint32:function(r,o,t){r[o]=t},uint16:function(r,o,t){r[o]=t},uint8:function(r,o,t){r[o]=t},uint8c:function(r,o,t){r[o]=t},generic:function(r,o,t){r[o]=t},default:function(r,o,t){r[o]=t}};function fr(r){var o=er[r];return"function"==typeof o?o:er.default}function sr(r){var o,t,e;if(0===(o=r.length))return 0;for(t=1,e=0;e=0;f--)t[f]=e,e*=r[f];return t}(r)}$(xr,"isPrimitive",ur),$(xr,"isObject",br),$(Er,"assign",(function(r,o,t){return _r(o)?function(r,o){var t,e;for(t=1,e=0;e=0;e--)o[e]=t,t*=r[e];return o}(r,t)}));var Tr="row-major";function Vr(r,o){var t,e,f;return"object"!=typeof(f=r.strides)||null===f?0===(e=r.shape).length?[0]:(ur(t=r.order)||(t=Tr),Er(e,t)):o?ar(f):f}function jr(r){return"number"==typeof r}var Or=Number,Sr=Or.prototype.toString;var Ar=cr();function Pr(r){return"object"==typeof r&&(r instanceof Or||(Ar?function(r){try{return Sr.call(r),!0}catch(r){return!1}}(r):"[object Number]"===vr(r)))}function Fr(r){return jr(r)||Pr(r)}function kr(r,o){var t,e,f;for(e=r.length,t=0,f=0;ff&&(e=!1),!e&&!o)return 0;f=s}return e&&o?3:e?1:2}$(Fr,"isPrimitive",jr),$(Fr,"isObject",Pr);var Nr="row-major",Br="column-major";function Dr(r){var o,t;return ur(t=r.order)?t:"object"!=typeof(o=r.strides)||null===o||1===(t=Lr(o))||3===t?Nr:2===t?Br:0===r.shape.length?Nr:null}function Mr(r){return r.data}function Cr(r){var o,t,e,f;return o=Mr(r),e=ir(r,!0),f=nr(r),t=K(o),{ref:r,dtype:f,data:o,length:sr(e),shape:e,strides:Vr(r,!0),offset:Ir(r),order:Dr(r),accessorProtocol:t,accessors:t?[H(f),rr(f)]:[tr(f),fr(f)]}}var Ur=16;function zr(r){return"object"==typeof r&&null!==r&&"Complex128Array"===r.constructor.name&&r.BYTES_PER_ELEMENT===Ur}var Yr=8;function qr(r){return"object"==typeof r&&null!==r&&"Complex64Array"===r.constructor.name&&r.BYTES_PER_ELEMENT===Yr}var Jr="function"==typeof Float64Array;var $r="function"==typeof Float64Array?Float64Array:null;function Wr(){var r,o,t;if("function"!=typeof $r)return!1;try{o=new $r([1,3.14,-3.14,NaN]),t=o,r=(Jr&&t instanceof Float64Array||"[object Float64Array]"===vr(t))&&1===o[0]&&3.14===o[1]&&-3.14===o[2]&&o[3]!=o[3]}catch(o){r=!1}return r}var Gr="function"==typeof Float64Array?Float64Array:void 0;var Zr=Wr()?Gr:function(){throw new Error("not implemented")};function Kr(r,o){return new Zr(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,2*(r.length-o))}var Xr="function"==typeof Float32Array;var Hr=Number.POSITIVE_INFINITY,Qr="function"==typeof Float32Array?Float32Array:null;var ro,oo="function"==typeof Float32Array?Float32Array:void 0;ro=function(){var r,o,t;if("function"!=typeof Qr)return!1;try{o=new Qr([1,3.14,-3.14,5e40]),t=o,r=(Xr&&t instanceof Float32Array||"[object Float32Array]"===vr(t))&&1===o[0]&&3.140000104904175===o[1]&&-3.140000104904175===o[2]&&o[3]===Hr}catch(o){r=!1}return r}()?oo:function(){throw new Error("not implemented")};var to=ro;function eo(r,o){return new to(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,2*(r.length-o))}function fo(r,o){if(zr(r))return Kr(r,o);if(qr(r))return eo(r,o);throw new TypeError(P("invalid argument. First argument must be a complex-valued floating-point array. Value: `%s`.",r))}var so="function"==typeof Uint8Array;function no(r){return so&&r instanceof Uint8Array||"[object Uint8Array]"===vr(r)}var ao=255,io="function"==typeof Uint8Array?Uint8Array:null;var uo,co="function"==typeof Uint8Array?Uint8Array:void 0;uo=function(){var r,o;if("function"!=typeof io)return!1;try{r=no(o=new io(o=[1,3.14,-3.14,ao+1,ao+2]))&&1===o[0]&&3===o[1]&&o[2]===ao-2&&0===o[3]&&1===o[4]}catch(o){r=!1}return r}()?co:function(){throw new Error("not implemented")};var po=uo;function ho(r,o){return new po(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,r.length-o)}function lo(r,o){return o>0?0:(1-r)*o}var go=Array.isArray?Array.isArray:function(r){return"[object Array]"===vr(r)};function yo(r){if("function"!=typeof r)throw new TypeError(P("invalid argument. Must provide a function. Value: `%s`.",r));return function(o){var t,e;if(!go(o))return!1;if(t=o.length,0===t)return!1;for(e=0;eat&&ut(r)}function ct(r){return jr(r)&&dt(r)}function pt(r){return Pr(r)&&dt(r.valueOf())}function ht(r){return ct(r)||pt(r)}function lt(r){return ct(r)&&r>=0}function gt(r){return pt(r)&&r.valueOf()>=0}function yt(r){return lt(r)||gt(r)}$(ht,"isPrimitive",ct),$(ht,"isObject",pt),$(yt,"isPrimitive",lt),$(yt,"isObject",gt);var vt=4294967295;function mt(r){return"object"==typeof r&&null!==r&&"number"==typeof r.length&&ut(r.length)&&r.length>=0&&r.length<=vt}var wt=9007199254740991;function bt(r){return"object"==typeof r&&null!==r&&"number"==typeof r.length&&ut(r.length)&&r.length>=0&&r.length<=wt}var xt="function"==typeof ArrayBuffer;function _t(r){return xt&&r instanceof ArrayBuffer||"[object ArrayBuffer]"===vr(r)}function Et(r){return"object"==typeof r&&null!==r&&!go(r)}var Tt=yo(xr.isPrimitive),Vt=yo(xr.isObject),jt=yo(xr);$(jt,"primitives",Tt),$(jt,"objects",Vt);var Ot=/./;function St(r){return"boolean"==typeof r}var At=Boolean,Pt=Boolean.prototype.toString;var Ft=cr();function kt(r){return"object"==typeof r&&(r instanceof At||(Ft?function(r){try{return Pt.call(r),!0}catch(r){return!1}}(r):"[object Boolean]"===vr(r)))}function It(r){return St(r)||kt(r)}$(It,"isPrimitive",St),$(It,"isObject",kt);var Rt="object"==typeof self?self:null,Lt="object"==typeof window?window:null,Nt="object"==typeof global?global:null,Bt="object"==typeof globalThis?globalThis:null;function Dt(r){if(arguments.length){if(!St(r))throw new TypeError(P("invalid argument. Must provide a boolean. Value: `%s`.",r));if(r)return new Function("return this;")()}if(Bt)return Bt;if(Rt)return Rt;if(Lt)return Lt;if(Nt)return Nt;throw new Error("unexpected error. Unable to resolve global object.")}var Mt=Dt(),Ct=Mt.document&&Mt.document.childNodes,Ut=Int8Array;var zt="function"==typeof Ot||"object"==typeof Ut||"function"==typeof Ct?function(r){return xo(r).toLowerCase()}:function(r){var o;return null===r?"null":"object"===(o=typeof r)?xo(r).toLowerCase():o};function Yt(r){return"function"===zt(r)}function qt(r,o){if(!(this instanceof qt))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!jr(r))throw new TypeError(P("invalid argument. Real component must be a number. Value: `%s`.",r));if(!jr(o))throw new TypeError(P("invalid argument. Imaginary component must be a number. Value: `%s`.",o));return M(this,"re",r),M(this,"im",o),this}$(qt,"name","Complex128"),$(qt,"BYTES_PER_ELEMENT",8),$(qt.prototype,"BYTES_PER_ELEMENT",8),$(qt.prototype,"byteLength",16),$(qt.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),$(qt.prototype,"toJSON",(function(){var r={type:"Complex128"};return r.re=this.re,r.im=this.im,r}));var Jt="function"==typeof Math.fround?Math.fround:null,$t=new to(1);var Wt="function"==typeof Jt?Jt:function(r){return $t[0]=r,$t[0]};function Gt(r,o){if(!(this instanceof Gt))throw new TypeError("invalid invocation. Constructor must be called with the `new` keyword.");if(!jr(r))throw new TypeError(P("invalid argument. Real component must be a number. Value: `%s`.",r));if(!jr(o))throw new TypeError(P("invalid argument. Imaginary component must be a number. Value: `%s`.",o));return M(this,"re",Wt(r)),M(this,"im",Wt(o)),this}function Zt(r){return r instanceof qt||r instanceof Gt||"object"==typeof r&&null!==r&&"number"==typeof r.re&&"number"==typeof r.im}function Kt(r){return ut(r/2)}function Xt(){return"function"==typeof gr&&"symbol"==typeof gr("foo")&&lr(gr,"iterator")&&"symbol"==typeof gr.iterator}$(Gt,"name","Complex64"),$(Gt,"BYTES_PER_ELEMENT",4),$(Gt.prototype,"BYTES_PER_ELEMENT",4),$(Gt.prototype,"byteLength",8),$(Gt.prototype,"toString",(function(){var r=""+this.re;return this.im<0?r+=" - "+-this.im:r+=" + "+this.im,r+="i"})),$(Gt.prototype,"toJSON",(function(){var r={type:"Complex64"};return r.re=this.re,r.im=this.im,r}));var Ht=Xt()?Symbol.iterator:null;function Qt(r,o,t){D(r,o,{configurable:!1,enumerable:!1,get:t})}function re(r){return r.re}function oe(r){return r.im}function te(r){var o,t,e;for(o=[];!(t=r.next()).done;)if(mt(e=t.value)&&e.length>=2)o.push(e[0],e[1]);else{if(!Zt(e))return new TypeError(P("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",e));o.push(re(e),oe(e))}return o}var ee=2*to.BYTES_PER_ELEMENT,fe=Xt();function se(r){return r instanceof ie||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function ne(r){return r===ie||"Complex128Array"===r.name}function ae(r,o){return new Gt(r[o*=2],r[o+1])}function ie(){var r,o,t,e;if(o=arguments.length,!(this instanceof ie))return 0===o?new ie:1===o?new ie(arguments[0]):2===o?new ie(arguments[0],arguments[1]):new ie(arguments[0],arguments[1],arguments[2]);if(0===o)t=new to(0);else if(1===o)if(lt(arguments[0]))t=new to(2*arguments[0]);else if(bt(arguments[0]))if((e=(t=arguments[0]).length)&&go(t)&&Zt(t[0])){if(t=function(r,o){var t,e,f,s;for(t=o.length,s=0,f=0;ft.byteLength-r)throw new RangeError(P("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",e*ee));t=new to(t,r,2*e)}}return $(this,"_buffer",t),$(this,"_length",t.length/2),this}function ue(r){return r.re}function de(r){return r.im}function ce(r){var o,t,e;for(o=[];!(t=r.next()).done;)if(mt(e=t.value)&&e.length>=2)o.push(e[0],e[1]);else{if(!Zt(e))return new TypeError(P("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",e));o.push(ue(e),de(e))}return o}$(ie,"BYTES_PER_ELEMENT",ee),$(ie,"name","Complex64Array"),$(ie,"from",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p;if(!Yt(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!ne(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((t=arguments.length)>1){if(!Yt(e=arguments[1]))throw new TypeError(P("invalid argument. Second argument must be a function. Value: `%s`.",e));t>2&&(o=arguments[2])}if(se(r)){if(i=r.length,e){for(s=(f=new this(i))._buffer,p=0,c=0;c=2))throw new TypeError(P("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[p]=d[0],s[p+1]=d[1]}p+=2}return f}return new this(r)}if(bt(r)){if(e){for(i=r.length,a=r.get&&r.set?H("default"):tr("default"),c=0;c=2))throw new TypeError(P("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[p]=d[0],s[p+1]=d[1]}p+=2}return f}return new this(r)}if(Et(r)&&fe&&Yt(r[Ht])){if(!Yt((s=r[Ht]()).next))throw new TypeError(P("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(n=e?function(r,o,t){var e,f,s,n;for(e=[],n=-1;!(f=r.next()).done;)if(n+=1,mt(s=o.call(t,f.value,n))&&s.length>=2)e.push(s[0],s[1]);else{if(!Zt(s))return new TypeError(P("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",s));e.push(re(s),oe(s))}return e}(s,e,o):te(s),n instanceof Error)throw n;for(s=(f=new this(i=n.length/2))._buffer,c=0;c=this._length))return ae(this._buffer,r)})),Qt(ie.prototype,"buffer",(function(){return this._buffer.buffer})),Qt(ie.prototype,"byteLength",(function(){return this._buffer.byteLength})),Qt(ie.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),$(ie.prototype,"BYTES_PER_ELEMENT",ie.BYTES_PER_ELEMENT),$(ie.prototype,"copyWithin",(function(r,o){if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*o):this._buffer.copyWithin(2*r,2*o,2*arguments[2]),this})),$(ie.prototype,"entries",(function(){var r,o,t,e,f,s;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return r=this,e=this._buffer,t=this._length,s=-1,$(o={},"next",(function(){if(s+=1,f||s>=t)return{done:!0};return{value:[s,ae(e,s)],done:!1}})),$(o,"return",(function(r){if(f=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(o,Ht,(function(){return r.entries()})),o})),$(ie.prototype,"every",(function(r,o){var t,e;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));if(o<0&&(o+=f)<0&&(o=0),arguments.length>2){if(!ut(t))throw new TypeError(P("invalid argument. Third argument must be an integer. Value: `%s`.",t));t<0&&(t+=f)<0&&(t=0),t>f&&(t=f)}else t=f}else o=0,t=f;for(n=re(r),a=oe(r),i=o;i=0;e--)if(f=ae(t,e),r.call(o,f,e,this))return f})),$(ie.prototype,"findLastIndex",(function(r,o){var t,e,f;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=this._length-1;e>=0;e--)if(f=ae(t,e),r.call(o,f,e,this))return e;return-1})),$(ie.prototype,"forEach",(function(r,o){var t,e,f;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e=this._length))return ae(this._buffer,r)})),$(ie.prototype,"includes",(function(r,o){var t,e,f,s,n;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Zt(r))throw new TypeError(P("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=re(r),s=oe(r),t=this._buffer,n=o;n1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=re(r),s=oe(r),t=this._buffer,n=o;n=t)return{done:!0};return{value:f,done:!1}})),$(o,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(o,Ht,(function(){return r.keys()})),o})),$(ie.prototype,"lastIndexOf",(function(r,o){var t,e,f,s,n;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Zt(r))throw new TypeError(P("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o>=this._length?o=this._length-1:o<0&&(o+=this._length)}else o=this._length-1;for(f=re(r),s=oe(r),t=this._buffer,n=o;n>=0;n--)if(f===t[e=2*n]&&s===t[e+1])return n;return-1})),Qt(ie.prototype,"length",(function(){return this._length})),$(ie.prototype,"map",(function(r,o){var t,e,f,s,n;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=(f=new this.constructor(this._length))._buffer,s=0;s1)e=o,s=0;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=ae(t,0),s=1}for(;s1)e=o,s=f-1;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=ae(t,f-1),s=f-2}for(;s>=0;s--)e=r(e,ae(t,s),s,this);return e})),$(ie.prototype,"reverse",(function(){var r,o,t,e,f,s;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(t=this._length,r=this._buffer,e=it(t/2),f=0;f1){if(!lt(t=arguments[1]))throw new TypeError(P("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",t))}else t=0;if(Zt(r)){if(t>=this._length)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%u`.",t));return e[t*=2]=re(r),void(e[t+1]=oe(r))}if(se(r)){if(t+(n=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r._buffer,u=e.byteOffset+t*ee,o.buffer===e.buffer&&o.byteOffsetu){for(f=new to(o.length),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r,u=e.byteOffset+t*ee,o.buffer===e.buffer&&o.byteOffsetu){for(f=new to(n),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(t*=2,i=0;ia&&(o=a)}}for(t=rf&&(o=f)}}return r>=f?(f=0,t=e.byteLength):r>=o?(f=0,t=e.byteOffset+r*ee):(f=o-r,t=e.byteOffset+r*ee),new this.constructor(e.buffer,t,f<0?0:f)})),$(ie.prototype,"toLocaleString",(function(r,o){var t,e,f,s,n;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)e=[];else{if(!ur(r)&&!Tt(r))throw new TypeError(P("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));e=r}if(arguments.length<2)t={};else{if(!Et(o))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",o));t=o}for(s=this._buffer,f=[],n=0;n=t)return{done:!0};return{value:ae(f,s),done:!1}})),$(r,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(r,Ht,(function(){return o.values()})),r})),$(ie.prototype,"with",(function(r,o){var t,e,f;if(!se(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ut(r))throw new TypeError(P("invalid argument. First argument must be an integer. Value: `%s`.",r));if(f=this._length,r<0&&(r+=f),r<0||r>=f)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!Zt(o))throw new TypeError(P("invalid argument. Second argument must be a complex number. Value: `%s`.",o));return(t=(e=new this.constructor(this._buffer))._buffer)[2*r]=re(o),t[2*r+1]=oe(o),e}));var pe=2*Zr.BYTES_PER_ELEMENT,he=Xt();function le(r){return r instanceof ve||"object"==typeof r&&null!==r&&("Complex64Array"===r.constructor.name||"Complex128Array"===r.constructor.name)&&"number"==typeof r._length&&"object"==typeof r._buffer}function ge(r){return r===ve||"Complex64Array"===r.name}function ye(r,o){return new qt(r[o*=2],r[o+1])}function ve(){var r,o,t,e;if(o=arguments.length,!(this instanceof ve))return 0===o?new ve:1===o?new ve(arguments[0]):2===o?new ve(arguments[0],arguments[1]):new ve(arguments[0],arguments[1],arguments[2]);if(0===o)t=new Zr(0);else if(1===o)if(lt(arguments[0]))t=new Zr(2*arguments[0]);else if(bt(arguments[0]))if((e=(t=arguments[0]).length)&&go(t)&&Zt(t[0])){if(t=function(r,o){var t,e,f,s;for(t=o.length,s=0,f=0;ft.byteLength-r)throw new RangeError(P("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",e*pe));t=new Zr(t,r,2*e)}}return $(this,"_buffer",t),$(this,"_length",t.length/2),this}function me(r){var o,t;for(o=[];!(t=r.next()).done;)o.push(At(t.value));return o}$(ve,"BYTES_PER_ELEMENT",pe),$(ve,"name","Complex128Array"),$(ve,"from",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p;if(!Yt(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!ge(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if((t=arguments.length)>1){if(!Yt(e=arguments[1]))throw new TypeError(P("invalid argument. Second argument must be a function. Value: `%s`.",e));t>2&&(o=arguments[2])}if(le(r)){if(i=r.length,e){for(s=(f=new this(i))._buffer,p=0,c=0;c=2))throw new TypeError(P("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[p]=d[0],s[p+1]=d[1]}p+=2}return f}return new this(r)}if(bt(r)){if(e){for(i=r.length,a=r.get&&r.set?H("default"):tr("default"),c=0;c=2))throw new TypeError(P("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",d));s[p]=d[0],s[p+1]=d[1]}p+=2}return f}return new this(r)}if(Et(r)&&he&&Yt(r[Ht])){if(!Yt((s=r[Ht]()).next))throw new TypeError(P("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",r));if(n=e?function(r,o,t){var e,f,s,n;for(e=[],n=-1;!(f=r.next()).done;)if(n+=1,mt(s=o.call(t,f.value,n))&&s.length>=2)e.push(s[0],s[1]);else{if(!Zt(s))return new TypeError(P("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",s));e.push(ue(s),de(s))}return e}(s,e,o):ce(s),n instanceof Error)throw n;for(s=(f=new this(i=n.length/2))._buffer,c=0;c=this._length))return ye(this._buffer,r)})),Qt(ve.prototype,"buffer",(function(){return this._buffer.buffer})),Qt(ve.prototype,"byteLength",(function(){return this._buffer.byteLength})),Qt(ve.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),$(ve.prototype,"BYTES_PER_ELEMENT",ve.BYTES_PER_ELEMENT),$(ve.prototype,"copyWithin",(function(r,o){if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return 2===arguments.length?this._buffer.copyWithin(2*r,2*o):this._buffer.copyWithin(2*r,2*o,2*arguments[2]),this})),$(ve.prototype,"entries",(function(){var r,o,t,e,f,s,n;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");return o=this,r=this._buffer,e=this._length,s=-1,n=-2,$(t={},"next",(function(){var o;if(s+=1,f||s>=e)return{done:!0};return o=new qt(r[n+=2],r[n+1]),{value:[s,o],done:!1}})),$(t,"return",(function(r){if(f=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(t,Ht,(function(){return o.entries()})),t})),$(ve.prototype,"every",(function(r,o){var t,e;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));if(o<0&&(o+=f)<0&&(o=0),arguments.length>2){if(!ut(t))throw new TypeError(P("invalid argument. Third argument must be an integer. Value: `%s`.",t));t<0&&(t+=f)<0&&(t=0),t>f&&(t=f)}else t=f}else o=0,t=f;for(n=ue(r),a=de(r),i=o;i=0;e--)if(f=ye(t,e),r.call(o,f,e,this))return f})),$(ve.prototype,"findLastIndex",(function(r,o){var t,e,f;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=this._length-1;e>=0;e--)if(f=ye(t,e),r.call(o,f,e,this))return e;return-1})),$(ve.prototype,"forEach",(function(r,o){var t,e,f;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e=this._length))return ye(this._buffer,r)})),Qt(ve.prototype,"length",(function(){return this._length})),$(ve.prototype,"includes",(function(r,o){var t,e,f,s,n;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Zt(r))throw new TypeError(P("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=ue(r),s=de(r),t=this._buffer,n=o;n1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(f=ue(r),s=de(r),t=this._buffer,n=o;n=t)return{done:!0};return{value:f,done:!1}})),$(o,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(o,Ht,(function(){return r.keys()})),o})),$(ve.prototype,"lastIndexOf",(function(r,o){var t,e,f,s,n;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Zt(r))throw new TypeError(P("invalid argument. First argument must be a complex number. Value: `%s`.",r));if(arguments.length>1){if(!ut(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o>=this._length?o=this._length-1:o<0&&(o+=this._length)}else o=this._length-1;for(f=ue(r),s=de(r),t=this._buffer,n=o;n>=0;n--)if(f===t[e=2*n]&&s===t[e+1])return n;return-1})),$(ve.prototype,"map",(function(r,o){var t,e,f,s,n;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(e=this._buffer,t=(f=new this.constructor(this._length))._buffer,s=0;s1)e=o,s=0;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=ye(t,0),s=1}for(;s1)e=o,s=f-1;else{if(0===f)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");e=ye(t,f-1),s=f-2}for(;s>=0;s--)e=r(e,ye(t,s),s,this);return e})),$(ve.prototype,"reverse",(function(){var r,o,t,e,f,s;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");for(t=this._length,r=this._buffer,e=it(t/2),f=0;f1){if(!lt(t=arguments[1]))throw new TypeError(P("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",t))}else t=0;if(Zt(r)){if(t>=this._length)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%u`.",t));return e[t*=2]=ue(r),void(e[t+1]=de(r))}if(le(r)){if(t+(n=r._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r._buffer,u=e.byteOffset+t*pe,o.buffer===e.buffer&&o.byteOffsetu){for(f=new Zr(o.length),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=r,u=e.byteOffset+t*pe,o.buffer===e.buffer&&o.byteOffsetu){for(f=new Zr(n),i=0;ithis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(t*=2,i=0;ia&&(o=a)}}for(t=rf&&(o=f)}}return r>=f?(f=0,t=e.byteLength):r>=o?(f=0,t=e.byteOffset+r*pe):(f=o-r,t=e.byteOffset+r*pe),new this.constructor(e.buffer,t,f<0?0:f)})),$(ve.prototype,"toLocaleString",(function(r,o){var t,e,f,s,n;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(0===arguments.length)e=[];else{if(!xr(r)&&!Tt(r))throw new TypeError(P("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));e=r}if(arguments.length<2)t={};else{if(!Et(o))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",o));t=o}for(s=this._buffer,f=[],n=0;n=t)return{done:!0};return{value:ye(f,s),done:!1}})),$(r,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(r,Ht,(function(){return o.values()})),r})),$(ve.prototype,"with",(function(r,o){var t,e,f;if(!le(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!ut(r))throw new TypeError(P("invalid argument. First argument must be an integer. Value: `%s`.",r));if(f=this._length,r<0&&(r+=f),r<0||r>=f)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!Zt(o))throw new TypeError(P("invalid argument. Second argument must be a complex number. Value: `%s`.",o));return(t=(e=new this.constructor(this._buffer))._buffer)[2*r]=ue(o),t[2*r+1]=de(o),e}));var we=po.BYTES_PER_ELEMENT,be=Xt();function xe(r){return"object"==typeof r&&null!==r&&"BooleanArray"===r.constructor.name&&r.BYTES_PER_ELEMENT===we}function _e(r){return r===Ee}function Ee(){var r,o,t,e,f;if(o=arguments.length,!(this instanceof Ee))return 0===o?new Ee:1===o?new Ee(arguments[0]):2===o?new Ee(arguments[0],arguments[1]):new Ee(arguments[0],arguments[1],arguments[2]);if(0===o)t=new po(0);else if(1===o)if(lt(f=arguments[0]))t=new po(f);else if(bt(f))t=function(r,o){var t,e;for(t=o.length,e=0;et.byteLength-r)throw new RangeError(P("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",e*we));t=new po(t,r,e)}}return $(this,"_buffer",t),$(this,"_length",t.length),this}$(Ee,"BYTES_PER_ELEMENT",we),$(Ee,"name","BooleanArray"),$(Ee,"from",(function(r){var o,t,e,f,s,n,a,i,u;if(!Yt(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!_e(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if((t=arguments.length)>1){if(!Yt(e=arguments[1]))throw new TypeError(P("invalid argument. Second argument must be a function. Value: `%s`.",e));t>2&&(o=arguments[2])}if(bt(r)){if(e){for(i=r.length,a=r.get&&r.set?H("default"):tr("default"),s=(f=new this(i))._buffer,u=0;u=t))return At(o[r])})),Qt(Ee.prototype,"buffer",(function(){return this._buffer.buffer})),Qt(Ee.prototype,"byteLength",(function(){return this._buffer.byteLength})),Qt(Ee.prototype,"byteOffset",(function(){return this._buffer.byteOffset})),$(Ee.prototype,"BYTES_PER_ELEMENT",Ee.BYTES_PER_ELEMENT),$(Ee.prototype,"copyWithin",(function(r,o){if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return 2===arguments.length?this._buffer.copyWithin(r,o):this._buffer.copyWithin(r,o,arguments[2]),this})),$(Ee.prototype,"entries",(function(){var r,o,t,e,f,s;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return r=this,e=this._buffer,t=this._length,s=-1,$(o={},"next",(function(){if(s+=1,f||s>=t)return{done:!0};return{value:[s,At(e[s])],done:!1}})),$(o,"return",(function(r){if(f=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(o,Ht,(function(){return r.entries()})),o})),$(Ee.prototype,"every",(function(r,o){var t,e;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e1){if(!ct(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));if(o<0&&(o+=f)<0&&(o=0),arguments.length>2){if(!ct(t))throw new TypeError(P("invalid argument. Third argument must be an integer. Value: `%s`.",t));t<0&&(t+=f)<0&&(t=0),t>f&&(t=f)}else t=f}else o=0,t=f;for(s=r?1:0,n=o;n=0;f--)if(e=At(t[f]),r.call(o,e,f,this))return e})),$(Ee.prototype,"findLastIndex",(function(r,o){var t,e,f;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,f=this._length-1;f>=0;f--)if(e=At(t[f]),r.call(o,e,f,this))return f;return-1})),$(Ee.prototype,"forEach",(function(r,o){var t,e;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Yt(r))throw new TypeError(P("invalid argument. First argument must be a function. Value: `%s`.",r));for(t=this._buffer,e=0;e=this._length))return At(this._buffer[r])})),$(Ee.prototype,"includes",(function(r,o){var t,e;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!St(r))throw new TypeError(P("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!ct(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(t=this._buffer,e=o;e1){if(!ct(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0&&(o+=this._length)<0&&(o=0)}else o=0;for(t=this._buffer,e=o;e0){if(!ur(r))throw new TypeError(P("invalid argument. First argument must be a string. Value: `%s`.",r))}else r=",";for(o=this._buffer,t=[],e=0;e=t)return{done:!0};return{value:f,done:!1}})),$(o,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(o,Ht,(function(){return r.keys()})),o})),$(Ee.prototype,"lastIndexOf",(function(r,o){var t,e;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!St(r))throw new TypeError(P("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!ct(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o>=this._length?o=this._length-1:o<0&&(o+=this._length)}else o=this._length-1;for(t=this._buffer,e=o;e>=0;e--)if(r===At(t[e]))return e;return-1})),Qt(Ee.prototype,"length",(function(){return this._length})),$(Ee.prototype,"map",(function(r,o){var t,e,f,s;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!Yt(r))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",r);for(f=this._buffer,t=(e=new this.constructor(this._length))._buffer,s=0;s1)f=o,s=0;else{if(0===e)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");f=At(t[0]),s=1}for(;s1)f=o,s=e-1;else{if(0===e)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");f=At(t[e-1]),s=e-2}for(;s>=0;s--)f=r(f,At(t[s]),s,this);return f})),$(Ee.prototype,"reverse",(function(){var r,o,t,e,f,s;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");for(r=this._buffer,t=this._length,e=it(t/2),f=0;f1){if(!lt(t=arguments[1]))throw new TypeError(P("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",t))}else t=0;if(bt(r)){if(t+(s=r.length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(o=xe(r)?r._buffer:r,a=e.byteOffset+t*we,o.buffer===e.buffer&&o.byteOffseta){for(f=new po(o.length),n=0;n=this._length)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%u`.",t));e[t]=r?1:0}})),$(Ee.prototype,"slice",(function(r,o){var t,e,f,s,n,a;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(s=this._buffer,n=this._length,0===arguments.length)r=0,o=n;else{if(!ct(r))throw new TypeError(P("invalid argument. First argument must be an integer. Value: `%s`.",r));if(r<0&&(r+=n)<0&&(r=0),1===arguments.length)o=n;else{if(!ct(o))throw new TypeError(P("invalid argument. Second argument must be an integer. Value: `%s`.",o));o<0?(o+=n)<0&&(o=0):o>n&&(o=n)}}for(t=rf&&(o=f)}}return r>=f?(f=0,t=e.byteLength):r>=o?(f=0,t=e.byteOffset+r*we):(f=o-r,t=e.byteOffset+r*we),new this.constructor(e.buffer,t,f<0?0:f)})),$(Ee.prototype,"toLocaleString",(function(r,o){var t,e,f,s,n;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(0===arguments.length)e=[];else{if(!ur(r)&&!Tt(r))throw new TypeError(P("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));e=r}if(arguments.length<2)t={};else{if(!Et(o))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",o));t=o}for(s=this._buffer,f=[],n=0;n=t)return{done:!0};return{value:At(f[s]),done:!1}})),$(r,"return",(function(r){if(e=!0,arguments.length)return{value:r,done:!0};return{done:!0}})),Ht&&$(r,Ht,(function(){return o.values()})),r})),$(Ee.prototype,"with",(function(r,o){var t,e;if(!xe(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!ct(r))throw new TypeError(P("invalid argument. First argument must be an integer. Value: `%s`.",r));if(e=this._length,r<0&&(r+=e),r<0||r>=e)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!St(o))throw new TypeError(P("invalid argument. Second argument must be a boolean. Value: `%s`.",o));return(t=new this.constructor(this._buffer))._buffer[r]=o?1:0,t}));var Te=[Zr,to,Lo,So,Go,Uo,nt,po,Qo,ie,ve,Ee],Ve=["float64","float32","int32","uint32","int16","uint16","int8","uint8","uint8c","complex64","complex128","bool"],je=Ve.length;function Oe(r){var o;if(go(r))return"generic";if(mo(r))return null;for(o=0;o0)for(d=0;d0)for(i=0;i=0&&n=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=ar(o),t),{sh:r=Le(r,t),sx:o,idx:t}}function Be(r){return ct(r)&&r>0}function De(r){return pt(r)&&r.valueOf()>0}function Me(r){return Be(r)||De(r)}function Ce(r){return Object.keys(Object(r))}$(ke,"ndarray",Fe),$(Ie,"assign",(function(r,o,t){var e=Se(r);return e.accessorProtocol?"complex128"===e.dtype?Re(r,Kr(r,0),o,t):"complex64"===e.dtype?Re(r,eo(r,0),o,t):function(r,o,t){var e,f,s,n;for(e=r.data,f=r.accessors[1],n=t,s=0;n>=0&&n=0&&f=0&&o=0&&r.length<=To&&lr(r,"callee")&&!Xe(r,"callee")},Qe=Array.prototype.slice;var rf=Xe((function(){}),"prototype"),of=!Xe({toString:null},"toString");function tf(r,o,t){var e,f;if(!bt(r)&&!ur(r))throw new TypeError(P("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(0===(e=r.length))return-1;if(3===arguments.length){if(!ct(t))throw new TypeError(P("invalid argument. Third argument must be an integer. Value: `%s`.",t));if(t>=0){if(t>=e)return-1;f=t}else(f=e+t)<0&&(f=0)}else f=0;if(Ge(o)){for(;f0&&!lr(r,"0"))for(a=0;a1){if(!mf(o))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",o));if(lr(o,"duplicates")&&!St(u=o.duplicates))throw new TypeError(P("invalid option. `%s` option must be a boolean. Option: `%s`.","duplicates",u))}if(e=(t=pf(r)).length,n={},u)for(i=0;io&&(o=e)}return(e=Vf.BLOCK_SIZE_IN_BYTES/o|0)>0?e:1}function Of(r){return jf([r])}function Sf(r,o,t,e,f,s){var n,a,i,u,d;for(n=r.length,a=1,d=0;d=a&&(f=a-1);else if("wrap"===s)f<0?(f+=a)<0&&0!==(f%=a)&&(f+=a):f>=a&&(f-=a)>=a&&(f%=a);else if("normalize"===s&&f<0&&(f+=a),f<0||f>=a)throw new RangeError(P("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",a,f));if(i=t,_r(e)){for(d=0;d=0;d--)f-=u=f%r[d],f/=r[d],i+=u*o[d];return i}var Af="throw";var Pf="throw";var Ff="throw";var kf=[function(r){return!!r.data[r.offset]},function(r){var o,t,e,f,s;for(e=r.shape[0],t=r.strides[0],f=r.offset,o=r.data,s=0;s0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(O0;)for(j0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(O0;)for(j0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($=i&&(f=i-1);else if("wrap"===s)f<0?(f+=i)<0&&0!==(f%=i)&&(f+=i):f>=i&&(f-=i)>=i&&(f%=i);else if("normalize"===s&&f<0&&(f+=i),f<0||f>=i)throw new RangeError(P("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",i,f));if(0===t){if(_r(e)){for(c=0;c=0;c--)f-=d=f%r[c],f/=r[c],n[c]=d;return n}if(_r(e)){for(c=a-1;c>=0;c--)(d=o[c])<0?(f-=(u=Yf(f/d))*d,n[c]=r[c]-1+u):(f-=(u=Yf(f/d))*d,n[c]=u);return n}for(c=0;c0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(S0;)for(O0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(P0;)for(A0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(A0;)for(S0;)for(O0;)for(j0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0}var as,is={float64:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},float32:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},float16:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},int64:{float64:0,float32:0,float16:0,int64:1,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},int32:{float64:1,float32:0,float16:0,int64:1,int32:1,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},int16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:1,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},int8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},uint64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint32:{float64:1,float32:0,float16:0,int64:1,int32:0,int16:0,int8:0,uint64:1,uint32:1,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},uint8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},uint8c:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex128:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex32:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},generic:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},binary:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:1,generic:0,bool:0},bool:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:1}};var us=function(r){return 0===arguments.length?function(){var r,o,t,e,f,s,n,a,i;for(t={},o=(r=pf(is)).length,i=0;i0}var cs,ps={float64:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},float32:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},float16:{float64:1,float32:1,float16:1,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},int64:{float64:0,float32:0,float16:0,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},int32:{float64:1,float32:0,float16:0,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},int16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},int8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:1,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},uint64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint32:{float64:1,float32:0,float16:0,int64:1,int32:0,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:0,complex32:0,binary:0,generic:1,bool:0},uint16:{float64:1,float32:1,float16:0,int64:1,int32:1,int16:0,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:0,binary:0,generic:1,bool:0},uint8:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},uint8c:{float64:1,float32:1,float16:1,int64:1,int32:1,int16:1,int8:0,uint64:1,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,complex32:1,binary:0,generic:1,bool:0},complex128:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:0,bool:0},complex64:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:0,bool:0},complex32:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,complex32:1,binary:0,generic:0,bool:0},generic:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:0},binary:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:1,generic:0,bool:0},bool:{float64:0,float32:0,float16:0,int64:0,int32:0,int16:0,int8:0,uint64:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,complex32:0,binary:0,generic:1,bool:1}};var hs=function(r){return 0===arguments.length?function(){var r,o,t,e,f,s,n,a,i;for(t={},o=(r=pf(ps)).length,i=0;i0}function gs(r,o,t){return"unsafe"===t||(ts(r)===ts(o)||"none"!==t&&"equiv"!==t&&("safe"===t?ns(r,o):"mostly-safe"===t?ds(r,o):ls(r,o)))}function ys(r,o){var t,e,f,s;for(f=Oe(r),e=K(r)?H(f):tr(f),t=r.length,s=0;s0&&o.push("generic"),o)}var _s=vs(xs("boolean"));function Es(r){return _s(String(r))}var Ts=vs(xs("boolean_index"));function Vs(r){return Ts(String(r))}function js(r,o,t,e){var f=W(o,t,e);return f[0]>=0&&f[1]0&&o.push("o"),o)}var Ds=vs(Bs("complex_floating_point"));var Ms,Cs,Us,zs=vs(xs());function Ys(r,o){return null!=r&&("symbol"==typeof o?o in Object(r):String(o)in Object(r))}function qs(r){var o=typeof r;return"number"===o?_f(r)?r:null:"string"===o?os(r):"object"===o&&r&&ct(r.enum)?r.enum:Qf(r)?os("userdefined_type"):null}function Js(r){return 0===arguments.length?{binary:"byte",bool:"boolean",complex32:"half-precision floating-point complex number",complex64:"single-precision floating-point complex number",complex128:"double-precision floating-point complex number",float16:"half-precision floating-point number",bfloat16:"brain floating-point number",float32:"single-precision floating-point number",float64:"double-precision floating-point number",float128:"quadruple-precision floating-point number",generic:"generic array value",int8:"signed 8-bit integer",int16:"signed 16-bit integer",int32:"signed 32-bit integer",int64:"signed 64-bit integer",int128:"signed 128-bit integer",int256:"signed 256-bit integer",uint8:"unsigned 8-bit integer",uint8c:"unsigned 8-bit integer (clamped)",uint16:"unsigned 16-bit integer",uint32:"unsigned 32-bit integer",uint64:"unsigned 64-bit integer",uint128:"unsigned 128-bit integer",uint256:"unsigned 256-bit integer"}:(void 0===Ms&&(Ms={binary:"byte",bool:"boolean",complex32:"half-precision floating-point complex number",complex64:"single-precision floating-point complex number",complex128:"double-precision floating-point complex number",float16:"half-precision floating-point number",bfloat16:"brain floating-point number",float32:"single-precision floating-point number",float64:"double-precision floating-point number",float128:"quadruple-precision floating-point number",generic:"generic array value",int8:"signed 8-bit integer",int16:"signed 16-bit integer",int32:"signed 32-bit integer",int64:"signed 64-bit integer",int128:"signed 128-bit integer",int256:"signed 256-bit integer",uint8:"unsigned 8-bit integer",uint8c:"unsigned 8-bit integer (clamped)",uint16:"unsigned 16-bit integer",uint32:"unsigned 32-bit integer",uint64:"unsigned 64-bit integer",uint128:"unsigned 128-bit integer",uint256:"unsigned 256-bit integer"}),Ms[ts(r)]||null)}function $s(r){return 0===arguments.length?{binary:"r",bool:"x",complex32:"j",complex64:"c",complex128:"z",float16:"h",bfloat16:"e",float32:"f",float64:"d",float128:"g",generic:"o",int8:"s",int16:"k",int32:"i",int64:"l",int128:"m",int256:"n",uint8:"b",uint8c:"a",uint16:"t",uint32:"u",uint64:"v",uint128:"w",uint256:"y"}:(void 0===Cs&&(Cs={binary:"r",bool:"x",complex32:"j",complex64:"c",complex128:"z",float16:"h",bfloat16:"e",float32:"f",float64:"d",float128:"g",generic:"o",int8:"s",int16:"k",int32:"i",int64:"l",int128:"m",int256:"n",uint8:"b",uint8c:"a",uint16:"t",uint32:"u",uint64:"v",uint128:"w",uint256:"y"}),Cs[ts(r)]||null)}function Ws(r){var o;return 0===arguments.length?{binary:1,bool:1,complex32:2,complex64:4,complex128:8,float16:2,bfloat16:2,float32:4,float64:8,float128:16,generic:null,int8:1,int16:2,int32:4,int64:8,int128:16,int256:32,uint8:1,uint8c:1,uint16:2,uint32:4,uint64:8,uint128:16,uint256:32}:(void 0===Us&&(Us={binary:1,bool:1,complex32:2,complex64:4,complex128:8,float16:2,bfloat16:2,float32:4,float64:8,float128:16,generic:null,int8:1,int16:2,int32:4,int64:8,int128:16,int256:32,uint8:1,uint8c:1,uint16:2,uint32:4,uint64:8,uint128:16,uint256:32}),r?Be(o=r.alignment)?o:Us[ts(r)]||null:null)}function Gs(r,o){var t,e,f;if(t=arguments.length,!(this instanceof Gs))return t<2?new Gs(r):new Gs(r,o);if(zs(r))e="builtin";else{if(function(r){return r instanceof Gs||"object"==typeof r&&null!==r&&"DataType"===r.constructor.name&&ur(r.char)&&ur(r.description)&&ur(r.byteOrder)&&Ys(r,"value")}(r))return new Gs(r.value,{description:r.description});if(!Qf(r))throw new TypeError(P("invalid argument. First argument must be either a supported data type string, a struct constructor, or another data type instance. Value: `%s`.",r));e="struct"}if(t>1){if(!mf(f=o))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",f));if(lr(f,"description")&&!ur(f.description))throw new TypeError(P("invalid option. `%s` option must be a string. Option: `%s`.","description",f.description))}else f={};return $(this,"_value",r),$(this,"_description",f.description||Js(r)||""),$(this,"_char",$s(r)||""),$(this,"_enum",qs(r)||-1),$(this,"_alignment",Ws(r)||-1),$(this,"_byteLength",Tf(r)||-1),$(this,"_byteOrder","host"),$(this,"_type",e),this}function Zs(r){return r instanceof Gs||"object"==typeof r&&null!==r&&ct(r.alignment)&&ct(r.byteLength)&&ur(r.byteOrder)&&ur(r.char)&&ct(r.enum)&&Ys(r,"value")}function Ks(r){return Yt(r)&&Be(r.alignment)&&Be(r.byteLength)&&Yt(r.byteLengthOf)&&Yt(r.byteOffsetOf)&&Yt(r.bufferOf)&&Yt(r.viewOf)||Zs(r)&&Ks(r.value)}function Xs(r){return zs(r)||((o=r)instanceof Gs||"object"==typeof o&&null!==o&&ct(o.alignment)&&ct(o.byteLength)&&ur(o.byteOrder)&&ur(o.char)&&ct(o.enum)&&Ys(o,"value"))||Ks(r);var o}function Hs(r){return r instanceof Gs||"object"==typeof r&&null!==r&&ct(r.alignment)&&ct(r.byteLength)&&ur(r.byteOrder)&&ur(r.char)&&ct(r.enum)&&Ys(r,"value")}function Qs(r,o){if(zs(r));else if(Hs(r))r=String(r);else{if(!Ks(r))return!1;r=r.layout}if(zs(o));else if(Hs(o))o=String(o);else{if(!Ks(o))return!1;o=o.layout}return r===o}$(Gs,"name","DataType"),Qt(Gs.prototype,"alignment",(function(){return this._alignment})),Qt(Gs.prototype,"byteLength",(function(){return this._byteLength})),Qt(Gs.prototype,"byteOrder",(function(){return this._byteOrder})),Qt(Gs.prototype,"char",(function(){return this._char})),Qt(Gs.prototype,"description",(function(){return this._description})),Qt(Gs.prototype,"enum",(function(){return this._enum})),Qt(Gs.prototype,"value",(function(){return this._value})),$(Gs.prototype,"toJSON",(function(){return{type:"DataType",value:this.toString(),byteOrder:this._byteOrder,description:this._description}})),$(Gs.prototype,"toString",(function(){return"struct"===this._type?this._value.layout:String(this._value)})),$(Gs.prototype,"valueOf",(function(){return this.toString()}));var rn=vs(xs("floating_point"));function on(r){return rn(String(r))}var tn=vs(xs("index"));var en=["throw","normalize","clamp","wrap"];function fn(){return en.slice()}function sn(){return{throw:1,clamp:2,wrap:3,normalize:4}}$(fn,"enum",sn);var nn=vs(fn()),an=["none","promoted","accumulation","output"];function un(){return an.slice()}function dn(){return{none:0,promoted:1,accumulation:2,output:3}}$(un,"enum",dn),function(r,o){var t,e,f;for(t=pf(o),f=0;ft)return!1;t=e}return!0}function Wn(r){return"row-major"===r}function Gn(r,o){return r2){if(e=ga(ya[t]))return new e(r,o);throw new TypeError(P("invalid argument. Must provide a recognized data type. Value: `%s`.",t))}return new va(r,o)}(e,f,ma[r.type])}}var ba={float64:Zr,float32:to,int16:Go,int32:Lo,int8:nt,uint16:Uo,uint32:So,uint8:po,uint8c:Qo,complex64:ie,complex128:ve,bool:Ee};function xa(r){return ba[r]||null}function _a(){return{dtypes:{default:"float64",numeric:"float64",real:"float64",floating_point:"float64",real_floating_point:"float64",complex_floating_point:"complex128",integer:"int32",signed_integer:"int32",unsigned_integer:"uint32",boolean:"bool",index:"int32",integer_index:"int32",boolean_index:"bool",mask_index:"uint8"}}}var Ea={dtypes:{default:"float64",numeric:"float64",real:"float64",floating_point:"float64",real_floating_point:"float64",complex_floating_point:"complex128",integer:"int32",signed_integer:"int32",unsigned_integer:"uint32",boolean:"bool",index:"int32",integer_index:"int32",boolean_index:"bool",mask_index:"uint8"}},Ta={"dtypes.default":Ea.dtypes.default,"dtypes.numeric":Ea.dtypes.numeric,"dtypes.real":Ea.dtypes.real,"dtypes.floating_point":Ea.dtypes.floating_point,"dtypes.real_floating_point":Ea.dtypes.real_floating_point,"dtypes.complex_floating_point":Ea.dtypes.complex_floating_point,"dtypes.integer":Ea.dtypes.integer,"dtypes.signed_integer":Ea.dtypes.signed_integer,"dtypes.unsigned_integer":Ea.dtypes.unsigned_integer,"dtypes.boolean":Ea.dtypes.boolean,"dtypes.index":Ea.dtypes.index,"dtypes.integer_index":Ea.dtypes.integer_index,"dtypes.boolean_index":Ea.dtypes.boolean_index,"dtypes.mask_index":Ea.dtypes.mask_index};$(_a,"get",(function(r){var o=Ta[r];return void 0===o?null:o}));var Va=_a.get("dtypes.default"),ja=xa("complex64"),Oa=xa("complex128"),Sa=xa("bool");function Aa(){var r,o,t,e;if(null===(t=xa(o=(r=arguments.length)&&ur(arguments[r-1])?arguments[r-=1]:Va)))throw new TypeError(P("invalid argument. Must provide a recognized data type. Value: `%s`.",o));return r<=0?new t(0):1===r?((e=arguments[0])instanceof ja?e=eo(e,0):e instanceof Oa?e=Kr(e,0):e instanceof Sa&&(e=ho(e,0)),new t(e)):2===r?new t(arguments[0],arguments[1]):new t(arguments[0],arguments[1],arguments[2])}function Pa(r){if(r.length)return r.isStructType?function(r){return function(){var o,t,e,f;for(o=(t=this[sa]).byteOffset+r.byteOffset,e=[],f=0;f0&&o.push("generic"),o)}var Ra=vs(Ia("real_floating_point")),La=vs(Ia("signed_integer")),Na=Dt();function Ba(){return"function"==typeof Na.BigInt&&"function"==typeof BigInt&&"bigint"==typeof Na.BigInt("1")&&"bigint"==typeof BigInt("1")}function Da(r){return"bigint"==typeof r}function Ma(r){return"object"==typeof r&&"[object BigInt]"===vr(r)&&function(r){try{return"bigint"==typeof r.valueOf()}catch(r){return!1}}(r)}function Ca(r){return Da(r)||Ma(r)}function Ua(r){return function(){return r}}$(Ca,"isPrimitive",Da),$(Ca,"isObject",Ma);var za,Ya=Ua(!1),qa=Ua(!1),Ja=Ua(!1);$(Ya,"isPrimitive",qa),$(Ya,"isObject",Ja),za=Ba()?Ca:Ya;const{isPrimitive:$a}=za;function Wa(r){return 0===r&&1/r===at}var Ga=1401298464324817e-60,Za=16777215,Ka=-16777215;function Xa(r){return r!=r||r===Hr||r===at?"float32":ut(r)?r>=Ka&&r<=Za?"float32":"float64":r>-Ga&&r=tt?"int8":r>=qo?"int16":r>=Fo?"int32":"float64":r<=ao?"uint8":r<=Bo?"uint16":r<=To?"uint32":"float64":r>-Ga&&r=tt?"int8":r>=qo?"int16":r>=Fo?"int32":"float64":r<=ot?"int8":r<=Yo?"int16":r<=Po?"int32":"float64"}(t):Ha(t):ai.dtypes.real,f=t):Zt(t)?(e=fi(t)||("float32"===r.type?"complex64":"complex128"),f=t.re):St(t)?(e="bool",f=si(t)):$a(t)?(e="int64",f=ni(t)):(e="generic",f=t);if(!gs(e,r.type,r.castingMode))throw new TypeError(P("invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].",r.name,r.type,e));this[sa][o](r.byteOffset,f,ha)}}function ui(r){return At(r)}function di(r){return At(r.re||r.im)}function ci(r,o){return function(t){var e,f;St(t)?(e="bool",f=si(t)):jr(t)?(e=ai.dtypes.real,f=si(ui(t))):$a(t)?(e="int64",f=si(function(r){return At(r)}(t))):Zt(t)?(e=fi(t)||ai.dtypes.complex,f=si(di(t))):(e="generic",f=At(t));if(!gs(e,r.type,r.castingMode))throw new TypeError(P("invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].",r.name,r.type,e));this[sa][o](r.byteOffset,f,ha)}}var pi="function"==typeof BigInt?BigInt:void 0;function hi(r,o){return function(t){var e,f;$a(t)?(e="int64",f=t):jr(t)?ct(t)?(e=Ha(t),f=pi(t)):(e=ai.dtypes.real,f=pi(it(t))):St(t)?(e="bool",f=function(r){return pi(r?1:0)}(t)):Zt(t)?(e=fi(t)||ai.dtypes.complex,f=pi(it(t.re))):(e="generic",f=pi(it(Or(f))));if(!gs(e,r.type,r.castingMode))throw new TypeError(P("invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].",r.name,r.type,e));this[sa][o](r.byteOffset,f,ha)}}function li(r,o,t,e,f,s,n){var a,i,u,d,c,p,h;for(a=o.data,i=f.data,d=o.accessors[0],u=f.accessors[1],c=e,p=n,h=0;h0)for(d=0;d0)for(p=0;p0)for(i=0;i0&&(a+=o),ki(u=n(s,i))||(a+=String(u)),i+=e;return a}(r,o,a,e,f);for(n=f,s="",u=0;u0&&(s+=o),ki(i=t[n])||(s+=String(i)),n+=e;return s}function Ri(r,o){return Ii(r.length,o,r,1,0)}function Li(r,o){return St(r)?null:new TypeError(P("invalid argument. `%s` field must be a boolean. Value: `%s`.",o,r))}$((function(r,o,t,e){return Ii(r,o,t,e,lo(r,e))}),"ndarray",Ii);var Ni=["int8","int16","int32","int64","uint8","uint16","uint32","uint64","float32","float64","complex64","complex128","bool"];var Bi,Di={int8:1,int16:2,int32:4,int64:8,uint8:1,uint16:2,uint32:4,uint64:8,float16:2,float32:4,float64:8,complex32:2,complex64:4,complex128:8,bool:1},Mi=["name","type"],Ci={name:function(r,o){return ur(r)||r.length>0?null:new TypeError(P("invalid argument. `%s` field must be a non-empty string. Value: `%s`.",o,r))},type:function(r){return ys(Ni,r)||Qf(r)?null:new TypeError(P('invalid argument. `%s` field must be either a struct type or one of the following: "%s". Value: `%s`.',"type",Ri(Ni,", "),r))},description:function(r,o){return ur(r)?null:new TypeError(P("invalid argument. `%s` field must be a string. Value: `%s`.",o,r))},length:function(r,o){return Be(r)?null:new TypeError(P("invalid argument. `%s` field must be a positive integer. Value: `%s`.",o,r))},enumerable:Li,writable:Li,default:Ua(null),castingMode:(Bi=["none","safe","mostly-safe","same-kind","unsafe"],function(r,o){return ys(Bi,r)?null:new TypeError(P('invalid argument. `%s` field must be one of the following: "%s". Value: `%s`.',o,Ri(Bi,", "),r))})};function Ui(r,o){var t,e,f,s,n;for(t={isStructType:!1,description:"",byteLength:0,byteOffset:0,alignment:0,padding:0,enumerable:!0,writable:!0,default:void 0,castingMode:"none"},n=0;no&&(o=t);return o}function Yi(r){var o,t,e,f,s,n,a;if(0===(o=r.fields).length)return null;for(e=[],a=0;a0&&s.byteOffset===r[n-1].byteOffset||(s.isStructType?o.push(ms(s.type.layout,e,Gi(s.byteOffset))):o.push(P("|<%s>[%u,%u]",s.type,s.byteOffset,s.byteLength)));return"|"===(t=P("%s|",o.join("")))[t.length-2]&&(t=t.substring(0,t.length-1)),t}var Ki=["none","linear","layout"],Xi=vs(Ki);function Hi(r,o,t){var e;if(!mf(t))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",t));if(e={format:"none"},lr(t,"format")&&(e.format=t.format,!Xi(e.format)))throw new TypeError(P('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"format",Ri(Ki,", "),t.format));return"linear"===e.format?function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E;for(v=o.length,t="%"+(r.byteLength-1).toString().length+"s",g=0,x=0;xg&&(g=y);for(e="%"+g+"s",f="// %s",a="%s: %s %s",c=0,u=[],x=0;x0&&m.byteOffset===o[x-1].byteOffset)){for(d=x1?" (byte %u)":"",d){for(n=" => union: %s",i=[],E=x+1;E":w.type,i.push(P("%s<%s>[%u]",w.name,b,_%w.alignment)),E+=1;n=P(n,i.join(", "))}else n="";i=P(s+n,_%m.alignment),l=m.length?P(f,P("%s[%u]%s",m.type,it(_/m.alignment),i)):P(f,P("%s%s",m.type,i)),u.push(P(a,p,h,l)),c+=1}for(_=0;_"}function Qi(){}var ru="foo"===Qi.name;var ou=[Zr,to,Lo,So,Go,Uo,nt,po,Qo],tu=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"],eu=Wr()?yf(Zr):fu;function fu(){}eu="TypedArray"===function(r){if(!1===Yt(r))throw new TypeError(P("invalid argument. Must provide a function. Value: `%s`.",r));return ru?r.name:bo.exec(r.toString())[1]}(eu)?eu:fu;var su=[ve,ie],nu=["Complex64Array","Complex128Array"];function au(){return"function"==typeof gr&&"symbol"==typeof gr("foo")&&lr(gr,"hasInstance")&&"symbol"==typeof gr.hasInstance}var iu=au()?Symbol.hasInstance:null,uu=au();function du(r,o){if("function"!=typeof o&&(!uu||"object"!=typeof o||"function"!=typeof o[iu]))throw new TypeError(P("invalid argument. Second argument must be callable. Value: `%s`.",o));return r instanceof o}var cu=[[Zr,"Float64Array"],[to,"Float32Array"],[Lo,"Int32Array"],[So,"Uint32Array"],[Go,"Int16Array"],[Uo,"Uint16Array"],[nt,"Int8Array"],[po,"Uint8Array"],[Qo,"Uint8ClampedArray"],[ie,"Complex64Array"],[ve,"Complex128Array"],[Ee,"BooleanArray"]];function pu(r){var o,t;for(t=0;t0){if(!Et(r))throw new TypeError(P("invalid argument. First argument must be an object. Value: `%s`.",r));h=r}if($(this,sa,p),void 0!==h){for(i=Cf(void 0,n.length),c={},y=0;y0&&((s=r[a-1]).padding=e,Fi(n)&&Wi(s.fields,e)),n.byteOffset=f,Fi(n))for(i=0;i0?arguments[0]:{})})),$(u.prototype,"toJSON",(function(){if(!(this instanceof u))throw new Error("invalid invocation. `this` is not a struct instance.");return function(r,o){var t,e,f,s;for(t={},s=0;s=Ka&&r<=Za?"float32":"float64":r>-Ga&&r=tt?"int8":r>=qo?"int16":r>=Fo?"int32":"float64":r<=ao?"uint8":r<=Bo?"uint16":r<=To?"uint32":"float64":r>-Ga&&r=tt?"int8":r>=qo?"int16":r>=Fo?"int32":"float64":r<=ot?"int8":r<=Yo?"int16":r<=Po?"int32":"float64"}function Eu(r,o){return function(r){return gu.isStruct(r)}(r)&&r.toString({format:"layout"})===o}function Tu(r,o){var t=ts(o)||"";return"generic"===t||("binary"===t?function(r){return ct(r)&&"uint8"===xu(r)}(r):Jn(t)?function(r){return jr(r)}(r):vu(t)?function(r,o){return ct(r)&&ns(xu(r),o)}(r,t):wu(t)?function(r,o){return ct(r)&&ns(_u(r),o)}(r,t):Es(t)?function(r){return St(r)}(r):Rs(t)?function(r){return jr(r)||Zt(r)}(r):!!Ks(o)&&Eu(r,t))}var Vu={};M(Vu,"hasEqualShape",(function(r,o){return function(r,o){var t;if(r.length!==o.length)return!1;for(t=0;t=sr(o)})),M(Vu,"isCastingMode",(function(r){var o;for(o=0;o=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=ar(o),e),{sh:r=Le(r,e),sx:o,sy:t=Le(t,e),idx:e}}function Au(r,o){return jf([r,o])}var Pu="throw";var Fu="throw";var ku=[function(r,o){o.data[o.offset]=r.data[r.offset]},function(r,o){var t,e,f,s,n,a,i,u;for(n=r.shape[0],f=r.strides[0],s=o.strides[0],a=r.offset,i=o.offset,t=r.data,e=o.data,u=0;u0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr=0&&"/"!==r[t];t--);return void 0===t||t<=0?r.replace(Ju,"\\$&"):(o=(o=r.substring(1,t)).replace(Ju,"\\$&"),r=r[0]+o+r.substring(t))}(o),"g");else if(!Gu(o))throw new TypeError(P("invalid argument. Second argument must be a string or regular expression. Value: `%s`.",o));if(!ur(t)&&!Yt(t))throw new TypeError(P("invalid argument. Third argument must be a string or replacement function. Value: `%s`.",t));return ms(r,o,t)}var Ku={int8:"new Int8Array( [ {{data}} ] )",uint8:"new Uint8Array( [ {{data}} ] )",uint8c:"new Uint8ClampedArray( [ {{data}} ] )",int16:"new Int16Array( [ {{data}} ] )",uint16:"new Uint16Array( [ {{data}} ] )",int32:"new Int32Array( [ {{data}} ] )",uint32:"new Uint32Array( [ {{data}} ] )",float32:"new Float32Array( [ {{data}} ] )",float64:"new Float64Array( [ {{data}} ] )",generic:"[ {{data}} ]",binary:"new Buffer( [ {{data}} ] )",complex64:"new Complex64Array( [ {{data}} ] )",complex128:"new Complex128Array( [ {{data}} ] )",bool:"new BooleanArray( [ {{data}} ] )"};var Xu={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},Hu=Vn(),Qu={throw:1,clamp:2,wrap:3,normalize:4};var rd=4294967295,od=4294967296,td=new po(8),ed=new fa(td.buffer);function fd(r,o,t,e){var f,s,n;if(0===r){for(n=0;n>>0,f=it(r/od),ha?(ed.setUint32(0,s,ha),ed.setUint32(4,f,ha)):(ed.setUint32(0,f,ha),ed.setUint32(4,s,ha)),n=0;n>>0,e=it(r/4294967296),t=new fa(o.buffer),ha?(t.setUint32(0,f,ha),t.setUint32(4,e,ha)):(t.setUint32(0,e,ha),t.setUint32(4,f,ha))),o}),"assign",fd);var sd={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},nd=Vn(),ad={throw:1,clamp:2,wrap:3,normalize:4};function id(r,o,t,e,f,s){var n,a,i,u,d;if(!(this instanceof id))return new id(r,o,t,e,f,s);for(u=1,d=0;d=0;u--)if(!((d=a-n+u)<0)){if(i=f[d],0!==(e=o[u])&&eo?-1:r}function cd(r,o){var t,e,f,s;for(t={},e=[],s=0;s0?t:0)-t,g=function(r,o){return Je(r)||Je(o)?NaN:r===at||o===at?at:r===o&&0===r?Wa(r)?r:o:r0&&(s+=h*c+p*d),a=[],f=[],y=0;y=0;n--)r-=s=r%t[n],r/=t[n],f+=s*o[n];return this._accessors?this._buffer.get(f):this._buffer[f]})),$(id.prototype,"set",(function(){var r,o;for(r=this._offset,o=0;o=0;a--)r-=n=r%e[a],r/=e[a],s+=n*t[a];return this._accessors?this._buffer.set(o,s):this._buffer[s]=o,this})),$(id.prototype,"toString",(function(){var r,o,t,e,f,s;if(o=this._shape.length,t="ndarray( '"+(e=this._dtype)+"', ",r="",this._length<=100)if("complex64"===e||"complex128"===e)for(s=0;s=0;s--)r+=ue(f=this.iget(this._length-1-s))+", "+de(f),s>0&&(r+=", ");else for(s=2;s>=0;s--)r+=this.iget(this._length-1-s),s>0&&(r+=", ")}if(t+=Zu(Ku[this.dtype],"{{data}}",r),t+=", ",t+=0===o?"[]":"[ "+this._shape.join(", ")+" ]",t+=", ",t+="[ ",0===o)t+="0";else for(s=0;s0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(O0;)for(j0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(O0;)for(j0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=a.byteLength)throw new RangeError(P("invalid argument. Second argument exceeds the bounds of the ArrayBuffer. Value: `%s`.",t));if(2===n){if(!ct(i=(a.byteLength-t)/o))throw new RangeError(P("invalid argument. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.",o,a.byteLength-t))}else{if(!lt(i=e))throw new TypeError(P("invalid argument. Third argument must be a nonnegative integer. Value: `%s`.",i));if(i*o>a.byteLength-t)throw new RangeError(P("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*o))}}return $(this,"_buffer",a),$(this,"_byteOffset",t||0),$(this,"_byteLength",i*o),$(this,"_length",i),this}return o=f.byteLength,t=f.layout,e=f.fields,$(s,"BYTES_PER_ELEMENT",o),$(s,"name",Fd),$(s,"struct",f),Qt(s.prototype,"buffer",(function(){return this._buffer})),Qt(s.prototype,"byteLength",(function(){return this._byteLength})),Qt(s.prototype,"byteOffset",(function(){return this._byteOffset})),$(s.prototype,"BYTES_PER_ELEMENT",s.BYTES_PER_ELEMENT),$(s.prototype,"get",(function(r){if(!n(this))throw new TypeError(P("invalid invocation. `this` is not a %s.",Fd));if(!lt(r))throw new TypeError(P("invalid argument. Must provide a nonnegative integer. Value: `%s`.",r));if(!(r>=this._length))return new f(this._buffer,this._byteOffset+r*o,o)})),Qt(s.prototype,"length",(function(){return this._length})),$(s.prototype,"set",(function(r){var s,a,i,u,d,c,p,h,l,g,y,v;if(!n(this))throw new TypeError(P("invalid invocation. `this` is not a %s.",Fd));if(u=this._buffer,arguments.length>1){if(!lt(i=arguments[1]))throw new TypeError(P("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(a={format:"layout"},p=f.byteLength,!bt(r)||ys(e,"length")){if(i>=this._length)throw new RangeError(P("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));if(!Et(r))throw new TypeError(P("invalid argument. Must provide either a valid object or a struct instance. Value: `%s`.",r));if(r.toString(a)===t)return s=f.viewOf(r),void mi(p,new po(s.buffer,s.byteOffset,p),1,0,new po(u,this._byteOffset+i*o,p),1,0);for(l=new f(u,this._byteOffset+i*o,p),y=0;ythis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(c=(s=r).get&&s.set?H("default"):tr("default"),v=this._byteOffset+i*o,s.buffer===u&&s.byteOffsetv){for(d=[],y=0;yr.length&&(e=r.length),(f=Se(r)).accessorProtocol?function(r,o,t,e){var f,s,n;for(f=r.data,s=r.accessors[1],n=t;n=r){f.push(i);continue}for(s=ir(i,!1),n=Vr(i,!1),e=[],t=[],c=0;c=f&&(f=s,c=d);a=e[c][0]}for(t=Ie(r.length),function(r,o){var t,e,f,s,n,a,i,u,d;for(e=1,f=1,d=1;d=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(ar(a),t),n=[Le(r,t)],d=0;d0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(kr0;)for(Fr0;)for(Pr0;)for(Ar0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Ur0;)for(Cr0;)for(Mr0;)for(Dr0;)for(Br0;)for(Nr0;)for(Lr0;)for(Rr0;)for(Ir0;)for(Kr0;)for(Zr0;)for(Gr0;)for(Wr0;)for($r0;)for(Jr0;)for(qr0;)for(Yr0;)for(zr0;)for(Ur0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(Lr0;)for(Rr0;)for(Ir0;)for(kr0;)for(Fr0;)for(Pr0;)for(Ar0;)for(Sr0;)for(qr0;)for(Yr0;)for(zr0;)for(Ur0;)for(Cr0;)for(Mr0;)for(Dr0;)for(Br0;)for(Nr0;)for(Qr0;)for(Hr0;)for(Xr0;)for(Kr0;)for(Zr0;)for(Gr0;)for(Wr0;)for($r0;)for(Jr0;)for(qr1?arguments[1]:Zc))return Uf(r);if(t=function(r){return Wc[r]||null}(o),null===t)throw new TypeError(P("invalid argument. Second argument must be a recognized data type. Value: `%s`.",o));return new t(r)}Gc=no(Ud(1))?function(r){var o,t,e,f,s,n;if(!lt(r))throw new TypeError(P("invalid argument. First argument must be a nonnegative integer. Value: `%s`.",r));if("generic"===(e=arguments.length>1?arguments[1]:$c))return Uf(r);if(null===(o=Tf(e)))throw new TypeError(P("invalid argument. Second argument must be a supported data type. Value: `%s`.",e));return f=xa(e),n=o*r,"complex128"===e&&(n+=8),t=(s=Ud(n)).byteOffset,"complex128"===e&&(lt(t/o)||(t+=8)),new f(s.buffer,t,r)}:function(r){return arguments.length>1?Kc(r,arguments[1]):Kc(r)};var Xc=Gc;function Hc(r){var o,t,e,f,s,n,a;return f=ts(a=nr(r)),s=ir(r,!0),e=Dr(r),s.length>0?(o=sr(s),n=Er(s,e)):(o=1,n=[0]),t="binary"===f?Ud(o):Xc(o,f),new r.constructor(a,t,s,n,kr(s,n),e)}function Qc(r){return r}function rp(r){return{dtype:r.dtype,data:r.data,shape:[1],strides:[0],offset:r.offset,order:r.order}}function op(r){var o,t,e,f,s,n,a;if(0===(o=(s=r.shape).length))return rp;if(1===o)return Qc;for(e=1,n=0,a=0;a0;){for(_0;){for(x0;){for(O0;){for(j0;){for(V0;){for(k0;){for(F0;){for(P0;){for(A0;){for(B0;){for(N0;){for(L0;){for(R0;){for(I0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(B0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ur0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(E0;){for(_0;){for(S0;){for(O0;){for(j0;){for(I0;){for(k0;){for(F0;){for(P0;){for(D0;){for(B0;){for(N0;){for(L0;){for(R0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(dr0;){for(ur0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr3?e:{},I=o.length,g=[],M=0;Ma)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",a,Ri(t,",")));if(L=a-R,D.shape.length!==L)throw new Error(P("invalid argument. Output array must have the same number of non-reduced dimensions as input arrays. Input array shape: [%s]. Number of non-reduced dimensions: %d. Output array shape: [%s].",Ri(v,","),L,Ri(D.shape,",")));for(i=Nc(v.length,F),h=Bc(v,N.strides,i),l=Bc(m,B.strides,i),b=h[0],j=h[1],O=l[1],h=Bc(v,N.strides,F),l=Bc(m,B.strides,F),w=h[0],T=h[1],V=l[1],y=1,A=0,M=0;M=0&&r.length<=vt}function wp(r){if("function"!=typeof r)throw new TypeError(P("invalid argument. Must provide a function. Value: `%s`.",r));return function(o){var t,e;if(!mp(o))return!1;if(t=o.length,0===t)return!1;for(e=0;e2?e:{};return yp(r,o,t,f)}}));var bp=wp(Yt);function xp(r){var o,t;for(o=[],t=0;tr)throw new RangeError(P("invalid argument. First argument must be greater than or equal to the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `%d`.",i.length,r));if(null===(d=cd(t,r-1)))throw new RangeError(P("invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.",r,r-1,t.join(", ")));if(d.length!==t.length)throw new Error(P("invalid argument. Must provide unique dimension indices. Value: `[%s]`.",t.join(", ")));if(d.length!==i.length)throw new RangeError(P("invalid argument. Must provide the same number of dimension indices as the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `[%s]`.",i.length,t.join(", ")));if(d.length&&!function(r){var o,t,e,f,s,n;if(e=Oe(r),t=K(r)?H(e):tr(e),0===(o=r.length))return!1;for(f=t(r,0),n=1;n(s=t(r,n)))return!1;f=s}return!0}(d))throw new Error(P("invalid argument. Must provide dimension indices which resolve to nonnegative indices arranged in ascending order. Value: `[%s]`.",t.join(", ")));if(0===i.length)s=Zd(r),f=Uf(r);else for(f=[],s=[],l=0,h=0;h0?(e=sr(o),f=Er(o,t)):(e=1,f=[0]),new id(r,"binary"===(s=ts(r))?Ud(e):Xc(e,s),o,f,kr(o,f),t)}var Vp=wp(yt.isPrimitive),jp=wp(yt.isObject),Op=wp(yt);$(Op,"primitives",Vp),$(Op,"objects",jp);var Sp=wp(ht.isPrimitive),Ap=wp(ht.isObject),Pp=wp(ht);function Fp(r){var o=typeof r;return null===r||"object"!==o&&"function"!==o?new TypeError(P("invalid argument. A provided constructor must be either an object (except null) or a function. Value: `%s`.",r)):null}$(Pp,"primitives",Sp),$(Pp,"objects",Ap);var kp=Object.create;function Ip(){}var Rp="function"==typeof kp?kp:function(r){return Ip.prototype=r,new Ip};function Lp(r,o){return r<0?0:r>o?o:r}function Np(r,o){var t=o+1;return r<0?((r+=t)<0&&0!==(r%=t)&&(r+=t),r):r>o?((r-=t)>o&&(r%=t),r):r}var Bp={wrap:Np,clamp:Lp,normalize:function(r,o){var t=dd(r,o);if(t<0||t>o)throw new RangeError(P("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",o,r));return t},throw:function(r,o){if(r<0||r>o)throw new RangeError(P("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",o,r));return r}};function Dp(r){if(!nn(r))throw new TypeError(P("invalid argument. First argument must be a recognized index mode. Value: `%s`.",r));return Bp[r]}function Mp(r,o,t){var e;if("clamp"===t)return Lp(r,o);if("wrap"===t)return Np(r,o);if(e=r,"normalize"===t&&(e=dd(e,o)),e<0||e>o)throw new RangeError(P("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",o,r));return e}$(Mp,"factory",Dp);var Cp=id.prototype.iget;var Up=id.prototype.iset;function zp(r,o){var t,e;for(t=[],e=0;e0))throw new TypeError(P("invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.",t));if((a=t.length)>Yp)throw new RangeError(P("invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.",Yp,a));if(!Sp(e))throw new TypeError(P("invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.",e));if(a>0){if(e.length!==a)throw new RangeError(P("invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.",a,e.length))}else{if(1!==e.length)throw new RangeError("invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.");if(0!==e[0])throw new RangeError(P("invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.",e[0]))}if(!lt(f))throw new TypeError(P("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",f));if(!jn(s))throw new TypeError(P("invalid argument. Sixth argument must be a supported order. Value: `%s`.",s));if(a>0&&!js(o.length,t,e,f)&&sr(t)>0)throw new Error("invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.");if((i={}).mode=qp,i.readonly=Jp,arguments.length>6&&(u=function(r,o){var t;if(!mf(o))return new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",o));if(lr(o,"mode")&&(r.mode=o.mode,!nn(r.mode)))return new TypeError(P("invalid option. `%s` option must be a recognized mode. Option: `%s`.","mode",r.mode));if(lr(o,"submode")){if(r.submode=o.submode,!mt(r.submode))return new TypeError(P("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode));if(0===r.submode.length)return new TypeError(P("invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.","submode",r.submode.join(",")));for(t=0;t0){if(!ct(r))throw new TypeError(P("invalid argument. Index must be an integer. Value: `%s`.",r));return r=Mp(r,this._length-1,this._mode),Cp.call(this,r)}return Cp.call(this)})),$($p.prototype,"set",(function(){var r,o,t,e;if(this._flags.READONLY)throw new Error("invalid invocation. Cannot write to a read-only array.");if(arguments.length!==this._ndims+1)throw new RangeError(P("invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.",this._ndims,arguments.length));for(r=this._offset,t=this._submode.length,e=0;e0){if(!ct(r))throw new TypeError(P("invalid argument. Index must be an integer. Value: `%s`.",r));r=Mp(r,this._length-1,this._mode),Up.call(this,r,o)}else Up.call(this,r);return this}));var Wp=$d.get("dtypes.default"),Gp=$d.get("order");function Zp(r){var o,t,e,f,s,n,a;if(f={},arguments.length>1){if(!mf(o=arguments[1]))throw new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",o));t=lr(o,"dtype")?o.dtype:Wp,e=lr(o,"order")?o.order:Gp,lr(o,"mode")&&(f.mode=o.mode),lr(o,"submode")&&(f.submode=o.submode)}else t=Wp,e=Gp;if(jr(r))a=[r];else{if(!mp(r))throw new TypeError(P("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));a=r}if(a.length>0){if((s=sr(a))!=s||s<0)throw new TypeError(P("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));n=Er(a,e)}else s=1,n=[0];return new $p(t,"binary"===t?Ud(s):Xc(s,t),a,n,kr(a,n),e,f)}function Kp(r){var o,t,e,f;for(e=qi(r),t=r.length,o=[],f=0;fe&&(o=e),r.push(r[e-1]),f=e-2;f>=o;f--)r[f+1]=r[f];return r[o]=t,r}function Hp(r,o,t){var e;return function(r,o){return"function"==typeof r[o]}(r,"every")?r.every(o,t):(e=Se(r)).accessorProtocol?function(r,o,t){var e,f,s;for(e=r.data,f=r.accessors[0],s=0;so?r:o}function eh(r,o,t,e,f,s,n,a,i){var u,d,c,p,h,l,g,y,v,m,w;if(r<=0||o<=0)return-1;if(m=Se(t),w=Se(n),m.accessorProtocol||w.accessorProtocol)return function(r,o,t,e,f,s,n,a,i){var u,d,c,p,h,l,g,y,v,m,w,b,x;if(d=t.data,c=n.data,p=t.accessors[0],h=n.accessors[0],$n([e,f])){for(y=o,v=r,x=0;x=0;p--)if(!((h=d-u+p)<0))if(l>=0&&f[l]===h)o[p]=n[h],e[p]=a[h],l-=1;else{if(c=n[h],0!==(s=o[p])&&su&&(u=o[d]);for(d=0;d=0;){for(e=(s=o[0]-u+d)>=0?f[s]:1,c=1;c=0?r[c][n]:1,1!==e){if(1!==a&&e!==a)return null}else e=a;t[d]=e,d-=1}return t}$(ih.prototype,"apply",(function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E;if(e=arguments.length,!Od(r))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(!Od(o))throw new TypeError(P("invalid argument. Second argument must be an ndarray-like object. Value: `%s`.",o));if(y=nr(r),!ys(this._idtypes[0],ts(y)))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),y));if(v=nr(o),!ys(this._idtypes[1],ts(v)))throw new TypeError(P('invalid argument. Second argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[1],'", "'),v));for(f=[r,o],_=2;__&&(t=arguments[e-1],u=nh(s,b,this._odtypes,t)))throw u;return null===s.dims&&(s.dims=Ie(b)),h=Le(c,d=Nc(b,s.dims)),i=(n=Dr(r))===(a=Dr(o))?n:ah,x=Zp(h,{dtype:m=s.dtype||Lc(y,v,this._policies.output),order:i}),Qs(y,w=wc(y,v,m,this._policies.casting))||(Cu([r,g=Tp(w,c,n)]),f[0]=g,y=w),Qs(v,w=wc(v,y,m,this._policies.casting))||(Cu([o,g=Tp(w,p,a)]),f[1]=g,v=w),yp((_=fh(this._table.fcns.length,2,this._table.types,2,1,0,xp([y,v]),1,0))>=0?this._table.fcns[_]:this._table.default,Xp(f,2,x),s.dims),s.keepdims&&(x=Ep(b,x,d,!0)),x})),$(ih.prototype,"assign",(function r(o,t){var e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b;if(f=arguments.length,!Od(o))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(!Od(t))throw new TypeError(P("invalid argument. Second argument must be an ndarray-like object. Value: `%s`.",t));if(p=nr(o),!ys(this._idtypes[0],ts(p)))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),p));if(h=nr(t),!ys(this._idtypes[1],ts(h)))throw new TypeError(P('invalid argument. Second argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[1],'", "'),h));if(d=Mc(o),c=Mc(t),d.length!==c.length)throw new Error(P("invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.",d.length,c.length));for(v=d.length,b=0;b=0?this._table.fcns[w]:this._table.default,Xp(n,2,m),s.dims),m}));var ph={Buffer:"binary",Float16Array:"float16",Float32Array:"float32",Float64Array:"float64",Array:"generic",Int16Array:"int16",Int32Array:"int32",Int8Array:"int8",Object:"generic",Uint16Array:"uint16",Uint32Array:"uint32",Uint8Array:"uint8",Uint8ClampedArray:"uint8c",Complex32Array:"complex32",Complex64Array:"complex64",Complex128Array:"complex128",BooleanArray:"bool"};function hh(){throw new Error("not implemented")}var lh,gh=[Zr,to,hh,Lo,So,Go,Uo,nt,po,Qo,hh,ie,ve,Ee],yh=["float64","float32","float16","int32","uint32","int16","uint16","int8","uint8","uint8c","complex32","complex64","complex128","bool"],vh=yh.length;function mh(r){var o;if(go(r))return"generic";if(mo(r))return"binary";for(o=0;o0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(O0;)for(j0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(A0;)for(S0;)for(O0;)for(j0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(b0;)for(w0;)for(V0;)for(T0;)for(E0;)for(P0;)for(A0;)for(S0;)for(O0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(O0;)for(j0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W ("):s.push("("):u===i?u===d?s.push(") => ()"):s.push(")"):u===d?s.push(") => ("):u%2==1?s.push(""):s.push(", ");for(u=0;u0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(O0;)for(j0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(g0;)for(l0;)for(b0;)for(w0;)for(m0;)for(V0;)for(T0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(O0;)for(j0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(S0;)for(O0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(P0;)for(A0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(A0;)for(S0;)for(O0;)for(j0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(C0;)for(M0;)for(D0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(S0;)for(O0;)for(L0;)for(R0;)for(I0;)for(z0;)for(U0;)for(C0;)for(M0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(Pr0;)for(Ar0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr=o?(f*=r[s],s===e-1&&(t[n]=f,n+=1)):(t[n]=r[s],n+=1);return t}function Fl(r,o){var t,e,f;return t=r.length,o<0&&(o+=t)<0&&(o=0),Pl(r,f=Gn(t-1,o),e=Uf(f+1)),e}function kl(r){return null===r}function Il(r){return void 0===r}function Rl(r){return ct(r)||kl(r)||Il(r)}function Ll(){var r,o,t,e;if(0===(r=arguments.length)?(o=null,t=null,e=null):1===r?(o=null,t=arguments[0],e=null):2===r?(o=arguments[0],t=arguments[1],e=null):(o=arguments[0],t=arguments[1],e=arguments[2]),!(this instanceof Ll))return new Ll(o,t,e);if(!Rl(o))throw new TypeError(P("invalid argument. First argument must be an integer, null, or undefined. Value: `%s`.",o));if(!Rl(t))throw new TypeError(P("invalid argument. Second argument must be an integer, null, or undefined. Value: `%s`.",t));if(!Rl(e))throw new TypeError(P("invalid argument. Third argument must be an integer, null, or undefined. Value: `%s`.",e));if(0===e)throw new RangeError(P("invalid argument. Third argument cannot be zero. Value: `%s`.",e));return this._start=void 0===o?null:o,this._stop=void 0===t?null:t,this._step=void 0===e?null:e,this}function Nl(r){return ct(r)||kl(r)||Il(r)||function(r){return r instanceof Ll||"Slice"===xo(r)}(r)}function Bl(){var r,o,t,e,f;if(r=arguments.length,!(this instanceof Bl)){if(1===r)return new Bl(arguments[0]);if(2===r)return new Bl(arguments[0],arguments[1]);if(3===r)return new Bl(arguments[0],arguments[1],arguments[2]);if(4===r)return new Bl(arguments[0],arguments[1],arguments[2],arguments[3]);if(5===r)return new Bl(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);for(t=[],f=0;f=o?t?{code:"ERR_SLICE_OUT_OF_BOUNDS"}:new Ll(o,o,1):r<0&&(r=o+r)<0?t?{code:"ERR_SLICE_OUT_OF_BOUNDS"}:new Ll(0,0,1):new Ll(r,r+1,1)}(r,o,t):function(r,o,t){var e,f,s;if(e=r.start,f=r.stop,null===(s=r.step)&&(s=1),null===e)e=s>0?0:o-1;else if(e<0){if((e=o+e)<0){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};e=0}}else if(e>=o){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};e=s<0?o-1:o}if(null===f)f=s>0?o:null;else if(f<0){if((f=o+f)<0)if(s>0){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};f=0}else{if(t&&f<-1)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};f=null}}else if(f>o){if(t)return{code:"ERR_SLICE_OUT_OF_BOUNDS"};f=o}return new Ll(e,f,s)}(r,o,t)}function Cl(r,o,t){var e,f,s,n;for(e=r.data,f=[],n=0;n0&&t>=e||o<0&&t<=e?0:zf((e-t)/o)}function zl(r){var o,t,e;for(o=r.data,t=[],e=0;e0&&(p=Uf(p.length))}else p=zl(h);return 0===sr(p)?function(r,o,t,e,f){var s,n;return s=0===(n=t.length)?[0]:Uf(n),new r(o,Yd(o,0),t,s,0,e,{readonly:f})}(c,n,Le(p,u),i,!e):(s=function(r,o,t){var e,f,s;for(e=r.data,f=t,s=0;s=f)throw new RangeError(P("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",f,o));return(e=ql(f))[s]=new Ll(null,null,-1),Yl(r,Dl(e),!0,t)}$(Al,"assign",Sl),$(Fl,"assign",Pl),$(Ll,"name","Slice"),Qt(Ll.prototype,"start",(function(){return this._start})),Qt(Ll.prototype,"stop",(function(){return this._stop})),Qt(Ll.prototype,"step",(function(){return this._step})),$(Ll.prototype,"toString",(function(){return"Slice("+this._start+","+this._stop+","+this.step+")"})),$(Ll.prototype,"toJSON",(function(){return{type:"Slice",data:[this._start,this._stop,this._step]}})),$(Bl,"name","MultiSlice"),Qt(Bl.prototype,"ndims",(function(){return this._data.length})),Qt(Bl.prototype,"data",(function(){return this._data.slice()})),$(Bl.prototype,"toString",(function(){var r,o,t;for(r=this._data,o=[],t=0;t0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(S0;)for(O0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(P0;)for(A0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(A0;)for(S0;)for(O0;)for(j0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(O0;)for(j0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W=s)return null;return o===pg?function(r,o,t,e,f){var s,n;for(s=r-1;s>e;s--)f[s]=t[s];for(s=e;s>=0&&(n=(t[s]+1)%o[s],f[s]=n,!(n>0));s--);for(s-=1;s>=0;s--)f[s]=t[s];return f}(s,r,t,e,f):function(r,o,t,e,f){var s,n;for(s=0;s0));s++);for(s+=1;s0;)for(y0;)for(g0;)for(x0;)for(b0;)for(w0;)for(j0;)for(V0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(S0;)for(O0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(v0;)for(y0;)for(_0;)for(x0;)for(b0;)for(O0;)for(j0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;){for(b0;){for(w0;){for(V0;){for(T0;){for(E0;){for(P0;){for(A0;){for(S0;){for(O0;){for(L0;){for(R0;){for(I0;){for(k0;){for(F0;){for(C0;){for(M0;){for(D0;){for(B0;){for(N0;){for(L0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(M0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X3?f:{};for(E=t.length,d=[],O=0;Oa)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",a,Ri(e,",")));for(V=a-T,O=1;O1?(r=Lg(arguments[1]),t=arguments[0],e=f):Yt(arguments[0])?(r=Ng,t=arguments[0],e=f):(r=Lg(arguments[0]),e=s),e;function f(o,e,f){return r(t,o,e,arguments.length>2?f:{})}function s(o,t,e,f){return r(o,t,e,arguments.length>3?f:{})}}));var Bg={dims:null};function Dg(r,o,t,e){var f,s;if(!(this instanceof Dg))return arguments.length>3?new Dg(r,o,t,e):new Dg(r,o,t);if(!Et(r))throw new TypeError(P("invalid argument. First argument must be an object. Value: `%s`.",r));if(!Yt(r.default))throw new TypeError(P('invalid argument. First argument must be an object having a "default" property and an associated method.'));if(Ys(r,"types")&&!bt(r.types)&&!vp(r.types))throw new TypeError(P('invalid argument. First argument must be an object having a "types" property whose associated value is an array-like object.'));if(Ys(r,"fcns")&&!bp(r.fcns)&&!vp(r.fcns))throw new TypeError(P('invalid argument. First argument must be an object having a "fcns" property whose associated value is an array-like object containing functions.'));if(!bt(o))throw new TypeError(P("invalid argument. Second argument must be an array-like object. Value: `%s`.",o));for(s=0;s3?Ng.factory(e):Ng,this}$(Dg.prototype,"assign",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p,h;if(e=arguments.length,!Od(r))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(u=nr(r),!ys(this._odtypes,u))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._odtypes,'", "'),u));for(s=[r],h=1;h=0?this._table.fcns[h]:this._table.default,this._apply(p,s,f.dims),r}));var Mg=$d.get("order");var Cg=wf({same:0,promoted:1,accumulation:2,boolean:3,boolean_and_generic:4,signed_integer:5,signed_integer_and_generic:6,unsigned_integer:7,unsigned_integer_and_generic:8,integer:9,integer_and_generic:10,floating_point:11,floating_point_and_generic:12,real_floating_point:13,real_floating_point_and_generic:14,complex_floating_point:15,complex_floating_point_and_generic:16,real:17,real_and_generic:18,numeric:19,numeric_and_generic:20,integer_index:21,integer_index_and_generic:22,boolean_index:23,boolean_index_and_generic:24,mask_index:25,mask_index_and_generic:26,default:27,default_index:28},{duplicates:!1});function Ug(r){var o=Cg[r];return ur(o)?o:null}var zg={same:0,promoted:1,accumulation:2,boolean:3,boolean_and_generic:4,signed_integer:5,signed_integer_and_generic:6,unsigned_integer:7,unsigned_integer_and_generic:8,integer:9,integer_and_generic:10,floating_point:11,floating_point_and_generic:12,real_floating_point:13,real_floating_point_and_generic:14,complex_floating_point:15,complex_floating_point_and_generic:16,real:17,real_and_generic:18,numeric:19,numeric_and_generic:20,integer_index:21,integer_index_and_generic:22,boolean_index:23,boolean_index_and_generic:24,mask_index:25,mask_index_and_generic:26,default:27,default_index:28};function Yg(r){var o=zg[r];return jr(o)?o:null}function qg(r,o,t,e){var f,s,n,a;for(s=ir(r),f=[],a=0;a=2&&((o%=4)<0&&(o+=4),i=f[d-2],u=f[d-1],n=s[d-2],a=s[d-1],1===o?(f[d-2]=u,f[d-1]=i,s[d-2]=a,s[d-1]=-n,e+=(i-1)*n):2===o?(s[d-2]=-n,s[d-1]=-a,e+=(i-1)*n+(u-1)*a):3===o&&(f[d-2]=u,f[d-1]=i,s[d-2]=-a,s[d-1]=n,e+=(u-1)*a)),new r.constructor(nr(r),Mr(r),f,s,e,Dr(r),{readonly:!t})}function Qg(r,o,t){return Hg(r,-o,t)}var ry={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},oy=Vn(),ty={throw:1,clamp:2,wrap:3,normalize:4};var ey,fy={bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float16:10,float32:11,float64:12,complex32:13,complex64:14,complex128:15,binary:16,generic:17,notype:18,userdefined_type:256},sy=Vn(),ny={throw:1,clamp:2,wrap:3,normalize:4};ey=Ba()?function(r){var o,t,e,f,s,n,a,i,u,d,c,p,h;if(r.__array_meta_dataview__)return r.__array_meta_dataview__();for(e=nr(r),f=ir(r,!1),s=Vr(r,!1),c=f.length,i=r.mode||"throw",p=(n=r.submode||[i]).length,o=Tf(e),u=0,(a=new fa(new Hn(33+16*c+p))).setInt8(u,ha?1:0),u+=1,a.setInt16(u,ry[e],ha),u+=2,a.setBigInt64(u,pi(c),ha),d=8*c,u+=8,h=0;h=o)return!0;return!1}var dy="throw";function cy(r,o){var t,e,f,s,n,a,i,u,d;for(s=sr(n=r.shape),e=r.data,a=r.strides,i=r.offset,f=r.order,t=0,d=0;d=o)return!0;return!1}var py="throw";function hy(r,o){var t,e,f,s,n,a,i,u;for(s=sr(n=r.shape),e=r.data,a=r.strides,i=r.offset,f=r.order,t=0,u=0;u=o)return!0;return!1}var ly=[function(r,o){return!!(o<=1&&r.data[r.offset])},function(r,o){var t,e,f,s,n,a;for(s=r.shape[0],f=r.strides[0],n=r.offset,e=r.data,t=0,a=0;a=o)return!0;n+=f}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p;for(n=r.shape,1===Lr(u=r.strides)?(a=n[1],i=n[0],f=u[1],s=u[0]-a*u[1]):(a=n[0],i=n[1],f=u[0],s=u[1]-a*u[0]),d=r.offset,e=r.data,t=0,p=0;p=o)return!0;d+=f}d+=s}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g;for(a=r.shape,1===Lr(c=r.strides)?(i=a[2],u=a[1],d=a[0],f=c[2],s=c[1]-i*c[2],n=c[0]-u*c[1]):(i=a[0],u=a[1],d=a[2],f=c[0],s=c[1]-i*c[0],n=c[2]-u*c[1]),p=r.offset,e=r.data,t=0,g=0;g=o)return!0;p+=f}p+=s}p+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m;for(i=r.shape,1===Lr(h=r.strides)?(u=i[3],d=i[2],c=i[1],p=i[0],f=h[3],s=h[2]-u*h[3],n=h[1]-d*h[2],a=h[0]-c*h[1]):(u=i[0],d=i[1],c=i[2],p=i[3],f=h[0],s=h[1]-u*h[0],n=h[2]-d*h[1],a=h[3]-c*h[2]),l=r.offset,e=r.data,t=0,m=0;m=o)return!0;l+=f}l+=s}l+=n}l+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x;for(u=r.shape,1===Lr(g=r.strides)?(d=u[4],c=u[3],p=u[2],h=u[1],l=u[0],f=g[4],s=g[3]-d*g[4],n=g[2]-c*g[3],a=g[1]-p*g[2],i=g[0]-h*g[1]):(d=u[0],c=u[1],p=u[2],h=u[3],l=u[4],f=g[0],s=g[1]-d*g[0],n=g[2]-c*g[1],a=g[3]-p*g[2],i=g[4]-h*g[3]),y=r.offset,e=r.data,t=0,x=0;x=o)return!0;y+=f}y+=s}y+=n}y+=a}y+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T;for(d=r.shape,1===Lr(v=r.strides)?(c=d[5],p=d[4],h=d[3],l=d[2],g=d[1],y=d[0],f=v[5],s=v[4]-c*v[5],n=v[3]-p*v[4],a=v[2]-h*v[3],i=v[1]-l*v[2],u=v[0]-g*v[1]):(c=d[0],p=d[1],h=d[2],l=d[3],g=d[4],y=d[5],f=v[0],s=v[1]-c*v[0],n=v[2]-p*v[1],a=v[3]-h*v[2],i=v[4]-l*v[3],u=v[5]-g*v[4]),m=r.offset,e=r.data,t=0,T=0;T=o)return!0;m+=f}m+=s}m+=n}m+=a}m+=i}m+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O;for(c=r.shape,1===Lr(w=r.strides)?(p=c[6],h=c[5],l=c[4],g=c[3],y=c[2],v=c[1],m=c[0],f=w[6],s=w[5]-p*w[6],n=w[4]-h*w[5],a=w[3]-l*w[4],i=w[2]-g*w[3],u=w[1]-y*w[2],d=w[0]-v*w[1]):(p=c[0],h=c[1],l=c[2],g=c[3],y=c[4],v=c[5],m=c[6],f=w[0],s=w[1]-p*w[0],n=w[2]-h*w[1],a=w[3]-l*w[2],i=w[4]-g*w[3],u=w[5]-y*w[4],d=w[6]-v*w[5]),b=r.offset,e=r.data,t=0,O=0;O=o)return!0;b+=f}b+=s}b+=n}b+=a}b+=i}b+=u}b+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P;for(p=r.shape,1===Lr(x=r.strides)?(h=p[7],l=p[6],g=p[5],y=p[4],v=p[3],m=p[2],w=p[1],b=p[0],f=x[7],s=x[6]-h*x[7],n=x[5]-l*x[6],a=x[4]-g*x[5],i=x[3]-y*x[4],u=x[2]-v*x[3],d=x[1]-m*x[2],c=x[0]-w*x[1]):(h=p[0],l=p[1],g=p[2],y=p[3],v=p[4],m=p[5],w=p[6],b=p[7],f=x[0],s=x[1]-h*x[0],n=x[2]-l*x[1],a=x[3]-g*x[2],i=x[4]-y*x[3],u=x[5]-v*x[4],d=x[6]-m*x[5],c=x[7]-w*x[6]),_=r.offset,e=r.data,t=0,P=0;P=o)return!0;_+=f}_+=s}_+=n}_+=a}_+=i}_+=u}_+=d}_+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I;for(h=r.shape,1===Lr(E=r.strides)?(l=h[8],g=h[7],y=h[6],v=h[5],m=h[4],w=h[3],b=h[2],x=h[1],_=h[0],f=E[8],s=E[7]-l*E[8],n=E[6]-g*E[7],a=E[5]-y*E[6],i=E[4]-v*E[5],u=E[3]-m*E[4],d=E[2]-w*E[3],c=E[1]-b*E[2],p=E[0]-x*E[1]):(l=h[0],g=h[1],y=h[2],v=h[3],m=h[4],w=h[5],b=h[6],x=h[7],_=h[8],f=E[0],s=E[1]-l*E[0],n=E[2]-g*E[1],a=E[3]-y*E[2],i=E[4]-v*E[3],u=E[5]-m*E[4],d=E[6]-w*E[5],c=E[7]-b*E[6],p=E[8]-x*E[7]),T=r.offset,e=r.data,t=0,I=0;I<_;I++){for(k=0;k=o)return!0;T+=f}T+=s}T+=n}T+=a}T+=i}T+=u}T+=d}T+=c}T+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N;for(l=r.shape,1===Lr(V=r.strides)?(g=l[9],y=l[8],v=l[7],m=l[6],w=l[5],b=l[4],x=l[3],_=l[2],E=l[1],T=l[0],f=V[9],s=V[8]-g*V[9],n=V[7]-y*V[8],a=V[6]-v*V[7],i=V[5]-m*V[6],u=V[4]-w*V[5],d=V[3]-b*V[4],c=V[2]-x*V[3],p=V[1]-_*V[2],h=V[0]-E*V[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],_=l[7],E=l[8],T=l[9],f=V[0],s=V[1]-g*V[0],n=V[2]-y*V[1],a=V[3]-v*V[2],i=V[4]-m*V[3],u=V[5]-w*V[4],d=V[6]-b*V[5],c=V[7]-x*V[6],p=V[8]-_*V[7],h=V[9]-E*V[8]),j=r.offset,e=r.data,t=0,N=0;N=o)return!0;j+=f}j+=s}j+=n}j+=a}j+=i}j+=u}j+=d}j+=c}j+=p}j+=h}return!1},hy],gy=[function(r,o){return!!(o<=1&&r.accessors[0](r.data,r.offset))},function(r,o){var t,e,f,s,n,a,i;for(n=r.shape[0],s=r.strides[0],a=r.offset,e=r.data,f=r.accessors[0],t=0,i=0;i=o)return!0;a+=s}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h;for(a=r.shape,1===Lr(d=r.strides)?(i=a[1],u=a[0],s=d[1],n=d[0]-i*d[1]):(i=a[0],u=a[1],s=d[0],n=d[1]-i*d[0]),c=r.offset,e=r.data,f=r.accessors[0],t=0,h=0;h=o)return!0;c+=s}c+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y;for(i=r.shape,1===Lr(p=r.strides)?(u=i[2],d=i[1],c=i[0],s=p[2],n=p[1]-u*p[2],a=p[0]-d*p[1]):(u=i[0],d=i[1],c=i[2],s=p[0],n=p[1]-u*p[0],a=p[2]-d*p[1]),h=r.offset,e=r.data,f=r.accessors[0],t=0,y=0;y=o)return!0;h+=s}h+=n}h+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w;for(u=r.shape,1===Lr(l=r.strides)?(d=u[3],c=u[2],p=u[1],h=u[0],s=l[3],n=l[2]-d*l[3],a=l[1]-c*l[2],i=l[0]-p*l[1]):(d=u[0],c=u[1],p=u[2],h=u[3],s=l[0],n=l[1]-d*l[0],a=l[2]-c*l[1],i=l[3]-p*l[2]),g=r.offset,e=r.data,f=r.accessors[0],t=0,w=0;w=o)return!0;g+=s}g+=n}g+=a}g+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_;for(d=r.shape,1===Lr(y=r.strides)?(c=d[4],p=d[3],h=d[2],l=d[1],g=d[0],s=y[4],n=y[3]-c*y[4],a=y[2]-p*y[3],i=y[1]-h*y[2],u=y[0]-l*y[1]):(c=d[0],p=d[1],h=d[2],l=d[3],g=d[4],s=y[0],n=y[1]-c*y[0],a=y[2]-p*y[1],i=y[3]-h*y[2],u=y[4]-l*y[3]),v=r.offset,e=r.data,f=r.accessors[0],t=0,_=0;_=o)return!0;v+=s}v+=n}v+=a}v+=i}v+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V;for(c=r.shape,1===Lr(m=r.strides)?(p=c[5],h=c[4],l=c[3],g=c[2],y=c[1],v=c[0],s=m[5],n=m[4]-p*m[5],a=m[3]-h*m[4],i=m[2]-l*m[3],u=m[1]-g*m[2],d=m[0]-y*m[1]):(p=c[0],h=c[1],l=c[2],g=c[3],y=c[4],v=c[5],s=m[0],n=m[1]-p*m[0],a=m[2]-h*m[1],i=m[3]-l*m[2],u=m[4]-g*m[3],d=m[5]-y*m[4]),w=r.offset,e=r.data,f=r.accessors[0],t=0,V=0;V=o)return!0;w+=s}w+=n}w+=a}w+=i}w+=u}w+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S;for(p=r.shape,1===Lr(b=r.strides)?(h=p[6],l=p[5],g=p[4],y=p[3],v=p[2],m=p[1],w=p[0],s=b[6],n=b[5]-h*b[6],a=b[4]-l*b[5],i=b[3]-g*b[4],u=b[2]-y*b[3],d=b[1]-v*b[2],c=b[0]-m*b[1]):(h=p[0],l=p[1],g=p[2],y=p[3],v=p[4],m=p[5],w=p[6],s=b[0],n=b[1]-h*b[0],a=b[2]-l*b[1],i=b[3]-g*b[2],u=b[4]-y*b[3],d=b[5]-v*b[4],c=b[6]-m*b[5]),x=r.offset,e=r.data,f=r.accessors[0],t=0,S=0;S=o)return!0;x+=s}x+=n}x+=a}x+=i}x+=u}x+=d}x+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F;for(h=r.shape,1===Lr(_=r.strides)?(l=h[7],g=h[6],y=h[5],v=h[4],m=h[3],w=h[2],b=h[1],x=h[0],s=_[7],n=_[6]-l*_[7],a=_[5]-g*_[6],i=_[4]-y*_[5],u=_[3]-v*_[4],d=_[2]-m*_[3],c=_[1]-w*_[2],p=_[0]-b*_[1]):(l=h[0],g=h[1],y=h[2],v=h[3],m=h[4],w=h[5],b=h[6],x=h[7],s=_[0],n=_[1]-l*_[0],a=_[2]-g*_[1],i=_[3]-y*_[2],u=_[4]-v*_[3],d=_[5]-m*_[4],c=_[6]-w*_[5],p=_[7]-b*_[6]),E=r.offset,e=r.data,f=r.accessors[0],t=0,F=0;F=o)return!0;E+=s}E+=n}E+=a}E+=i}E+=u}E+=d}E+=c}E+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R;for(l=r.shape,1===Lr(T=r.strides)?(g=l[8],y=l[7],v=l[6],m=l[5],w=l[4],b=l[3],x=l[2],_=l[1],E=l[0],s=T[8],n=T[7]-g*T[8],a=T[6]-y*T[7],i=T[5]-v*T[6],u=T[4]-m*T[5],d=T[3]-w*T[4],c=T[2]-b*T[3],p=T[1]-x*T[2],h=T[0]-_*T[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],_=l[7],E=l[8],s=T[0],n=T[1]-g*T[0],a=T[2]-y*T[1],i=T[3]-v*T[2],u=T[4]-m*T[3],d=T[5]-w*T[4],c=T[6]-b*T[5],p=T[7]-x*T[6],h=T[8]-_*T[7]),V=r.offset,e=r.data,f=r.accessors[0],t=0,R=0;R=o)return!0;V+=s}V+=n}V+=a}V+=i}V+=u}V+=d}V+=c}V+=p}V+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B;for(g=r.shape,1===Lr(j=r.strides)?(y=g[9],v=g[8],m=g[7],w=g[6],b=g[5],x=g[4],_=g[3],E=g[2],T=g[1],V=g[0],s=j[9],n=j[8]-y*j[9],a=j[7]-v*j[8],i=j[6]-m*j[7],u=j[5]-w*j[6],d=j[4]-b*j[5],c=j[3]-x*j[4],p=j[2]-_*j[3],h=j[1]-E*j[2],l=j[0]-T*j[1]):(y=g[0],v=g[1],m=g[2],w=g[3],b=g[4],x=g[5],_=g[6],E=g[7],T=g[8],V=g[9],s=j[0],n=j[1]-y*j[0],a=j[2]-v*j[1],i=j[3]-m*j[2],u=j[4]-w*j[3],d=j[5]-b*j[4],c=j[6]-x*j[5],p=j[7]-_*j[6],h=j[8]-E*j[7],l=j[9]-T*j[8]),O=r.offset,e=r.data,f=r.accessors[0],t=0,B=0;B=o)return!0;O+=s}O+=n}O+=a}O+=i}O+=u}O+=d}O+=c}O+=p}O+=h}O+=l}return!1},uy],yy=[function(r,o){return!!(o<=1&&(r.data[r.offset]||r.data[r.offset+1]))},function(r,o){var t,e,f,s,n,a;for(s=r.shape[0],f=r.strides[0],n=r.offset,e=r.data,t=0,a=0;a=o)return!0;n+=f}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p;for(n=r.shape,1===Lr(u=r.strides)?(a=n[1],i=n[0],f=u[1],s=u[0]-a*u[1]):(a=n[0],i=n[1],f=u[0],s=u[1]-a*u[0]),d=r.offset,e=r.data,t=0,p=0;p=o)return!0;d+=f}d+=s}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g;for(a=r.shape,1===Lr(c=r.strides)?(i=a[2],u=a[1],d=a[0],f=c[2],s=c[1]-i*c[2],n=c[0]-u*c[1]):(i=a[0],u=a[1],d=a[2],f=c[0],s=c[1]-i*c[0],n=c[2]-u*c[1]),p=r.offset,e=r.data,t=0,g=0;g=o)return!0;p+=f}p+=s}p+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m;for(i=r.shape,1===Lr(h=r.strides)?(u=i[3],d=i[2],c=i[1],p=i[0],f=h[3],s=h[2]-u*h[3],n=h[1]-d*h[2],a=h[0]-c*h[1]):(u=i[0],d=i[1],c=i[2],p=i[3],f=h[0],s=h[1]-u*h[0],n=h[2]-d*h[1],a=h[3]-c*h[2]),l=r.offset,e=r.data,t=0,m=0;m=o)return!0;l+=f}l+=s}l+=n}l+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x;for(u=r.shape,1===Lr(g=r.strides)?(d=u[4],c=u[3],p=u[2],h=u[1],l=u[0],f=g[4],s=g[3]-d*g[4],n=g[2]-c*g[3],a=g[1]-p*g[2],i=g[0]-h*g[1]):(d=u[0],c=u[1],p=u[2],h=u[3],l=u[4],f=g[0],s=g[1]-d*g[0],n=g[2]-c*g[1],a=g[3]-p*g[2],i=g[4]-h*g[3]),y=r.offset,e=r.data,t=0,x=0;x=o)return!0;y+=f}y+=s}y+=n}y+=a}y+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T;for(d=r.shape,1===Lr(v=r.strides)?(c=d[5],p=d[4],h=d[3],l=d[2],g=d[1],y=d[0],f=v[5],s=v[4]-c*v[5],n=v[3]-p*v[4],a=v[2]-h*v[3],i=v[1]-l*v[2],u=v[0]-g*v[1]):(c=d[0],p=d[1],h=d[2],l=d[3],g=d[4],y=d[5],f=v[0],s=v[1]-c*v[0],n=v[2]-p*v[1],a=v[3]-h*v[2],i=v[4]-l*v[3],u=v[5]-g*v[4]),m=r.offset,e=r.data,t=0,T=0;T=o)return!0;m+=f}m+=s}m+=n}m+=a}m+=i}m+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O;for(c=r.shape,1===Lr(w=r.strides)?(p=c[6],h=c[5],l=c[4],g=c[3],y=c[2],v=c[1],m=c[0],f=w[6],s=w[5]-p*w[6],n=w[4]-h*w[5],a=w[3]-l*w[4],i=w[2]-g*w[3],u=w[1]-y*w[2],d=w[0]-v*w[1]):(p=c[0],h=c[1],l=c[2],g=c[3],y=c[4],v=c[5],m=c[6],f=w[0],s=w[1]-p*w[0],n=w[2]-h*w[1],a=w[3]-l*w[2],i=w[4]-g*w[3],u=w[5]-y*w[4],d=w[6]-v*w[5]),b=r.offset,e=r.data,t=0,O=0;O=o)return!0;b+=f}b+=s}b+=n}b+=a}b+=i}b+=u}b+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P;for(p=r.shape,1===Lr(x=r.strides)?(h=p[7],l=p[6],g=p[5],y=p[4],v=p[3],m=p[2],w=p[1],b=p[0],f=x[7],s=x[6]-h*x[7],n=x[5]-l*x[6],a=x[4]-g*x[5],i=x[3]-y*x[4],u=x[2]-v*x[3],d=x[1]-m*x[2],c=x[0]-w*x[1]):(h=p[0],l=p[1],g=p[2],y=p[3],v=p[4],m=p[5],w=p[6],b=p[7],f=x[0],s=x[1]-h*x[0],n=x[2]-l*x[1],a=x[3]-g*x[2],i=x[4]-y*x[3],u=x[5]-v*x[4],d=x[6]-m*x[5],c=x[7]-w*x[6]),_=r.offset,e=r.data,t=0,P=0;P=o)return!0;_+=f}_+=s}_+=n}_+=a}_+=i}_+=u}_+=d}_+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I;for(h=r.shape,1===Lr(E=r.strides)?(l=h[8],g=h[7],y=h[6],v=h[5],m=h[4],w=h[3],b=h[2],x=h[1],_=h[0],f=E[8],s=E[7]-l*E[8],n=E[6]-g*E[7],a=E[5]-y*E[6],i=E[4]-v*E[5],u=E[3]-m*E[4],d=E[2]-w*E[3],c=E[1]-b*E[2],p=E[0]-x*E[1]):(l=h[0],g=h[1],y=h[2],v=h[3],m=h[4],w=h[5],b=h[6],x=h[7],_=h[8],f=E[0],s=E[1]-l*E[0],n=E[2]-g*E[1],a=E[3]-y*E[2],i=E[4]-v*E[3],u=E[5]-m*E[4],d=E[6]-w*E[5],c=E[7]-b*E[6],p=E[8]-x*E[7]),T=r.offset,e=r.data,t=0,I=0;I<_;I++){for(k=0;k=o)return!0;T+=f}T+=s}T+=n}T+=a}T+=i}T+=u}T+=d}T+=c}T+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N;for(l=r.shape,1===Lr(V=r.strides)?(g=l[9],y=l[8],v=l[7],m=l[6],w=l[5],b=l[4],x=l[3],_=l[2],E=l[1],T=l[0],f=V[9],s=V[8]-g*V[9],n=V[7]-y*V[8],a=V[6]-v*V[7],i=V[5]-m*V[6],u=V[4]-w*V[5],d=V[3]-b*V[4],c=V[2]-x*V[3],p=V[1]-_*V[2],h=V[0]-E*V[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],_=l[7],E=l[8],T=l[9],f=V[0],s=V[1]-g*V[0],n=V[2]-y*V[1],a=V[3]-v*V[2],i=V[4]-m*V[3],u=V[5]-w*V[4],d=V[6]-b*V[5],c=V[7]-x*V[6],p=V[8]-_*V[7],h=V[9]-E*V[8]),j=r.offset,e=r.data,t=0,N=0;N=o)return!0;j+=f}j+=s}j+=n}j+=a}j+=i}j+=u}j+=d}j+=c}j+=p}j+=h}return!1},cy],vy=[function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m;for(i=(m=Ne(r.shape,r.strides)).sh,c=m.sx,t=Of(r.dtype),p=r.offset,f=r.data,s=c[0],e=0,v=i[1];v>0;)for(v0;)for(y=o)return!0;h+=s}h+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E;for(d=(E=Ne(r.shape,r.strides)).sh,l=E.sx,t=Of(r.dtype),g=r.offset,f=r.data,s=l[0],e=0,_=d[2];_>0;)for(_0;)for(x0;)for(b=o)return!0;y+=s}y+=n}y+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S;for(p=(S=Ne(r.shape,r.strides)).sh,v=S.sx,t=Of(r.dtype),m=r.offset,f=r.data,s=v[0],e=0,O=p[3];O>0;)for(O0;)for(j0;)for(V0;)for(T=o)return!0;w+=s}w+=n}w+=a}w+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I;for(l=(I=Ne(r.shape,r.strides)).sh,b=I.sx,t=Of(r.dtype),x=r.offset,f=r.data,s=b[0],e=0,k=l[4];k>0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S=o)return!0;_+=s}_+=n}_+=a}_+=i}_+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D;for(y=(D=Ne(r.shape,r.strides)).sh,E=D.sx,e=Of(r.dtype),T=r.offset,f=r.data,s=E[0],t=0,B=y[5];B>0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k=o)return!0;V+=s}V+=n}V+=a}V+=i}V+=u}V+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y;for(m=(Y=Ne(r.shape,r.strides)).sh,j=Y.sx,e=Of(r.dtype),O=r.offset,f=r.data,s=j[0],t=0,z=m[6];z>0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N=o)return!0;S+=s}S+=n}S+=a}S+=i}S+=u}S+=d}S+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G;for(b=(G=Ne(r.shape,r.strides)).sh,A=G.sx,e=Of(r.dtype),P=r.offset,f=r.data,s=A[0],t=0,W=b[7];W>0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C=o)return!0;F+=s}F+=n}F+=a}F+=i}F+=u}F+=d}F+=c}F+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q;for(_=(Q=Ne(r.shape,r.strides)).sh,k=Q.sx,e=Of(r.dtype),I=r.offset,f=r.data,s=k[0],t=0,H=_[8];H>0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q=o)return!0;R+=s}R+=n}R+=a}R+=i}R+=u}R+=d}R+=c}R+=p}R+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr;for(T=(fr=Ne(r.shape,r.strides)).sh,L=fr.sx,e=Of(r.dtype),N=r.offset,f=r.data,s=L[0],t=0,er=T[9];er>0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=o)return!0;B+=s}B+=n}B+=a}B+=i}B+=u}B+=d}B+=c}B+=p}B+=h}B+=l}return!1}],my=[function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w;for(u=(w=Ne(r.shape,r.strides)).sh,p=w.sx,t=Of(r.dtype),h=r.offset,f=r.data,n=p[0],s=r.accessors[0],e=0,m=u[1];m>0;)for(m0;)for(v=o)return!0;l+=n}l+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T;for(c=(T=Ne(r.shape,r.strides)).sh,g=T.sx,t=Of(r.dtype),y=r.offset,f=r.data,n=g[0],s=r.accessors[0],e=0,E=c[2];E>0;)for(E0;)for(_0;)for(x=o)return!0;v+=n}v+=a}v+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A;for(h=(A=Ne(r.shape,r.strides)).sh,m=A.sx,t=Of(r.dtype),w=r.offset,f=r.data,n=m[0],s=r.accessors[0],e=0,S=h[3];S>0;)for(S0;)for(O0;)for(j0;)for(V=o)return!0;b+=n}b+=a}b+=i}b+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R;for(g=(R=Ne(r.shape,r.strides)).sh,x=R.sx,e=Of(r.dtype),_=r.offset,f=r.data,n=x[0],s=r.accessors[0],t=0,I=g[4];I>0;)for(I0;)for(k0;)for(F0;)for(P0;)for(A=o)return!0;E+=n}E+=a}E+=i}E+=u}E+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M;for(v=(M=Ne(r.shape,r.strides)).sh,T=M.sx,e=Of(r.dtype),V=r.offset,f=r.data,n=T[0],s=r.accessors[0],t=0,D=v[5];D>0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I=o)return!0;j+=n}j+=a}j+=i}j+=u}j+=d}j+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q;for(w=(q=Ne(r.shape,r.strides)).sh,O=q.sx,e=Of(r.dtype),S=r.offset,f=r.data,n=O[0],s=r.accessors[0],t=0,Y=w[6];Y>0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B=o)return!0;A+=n}A+=a}A+=i}A+=u}A+=d}A+=c}A+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z;for(x=(Z=Ne(r.shape,r.strides)).sh,P=Z.sx,e=Of(r.dtype),F=r.offset,f=r.data,n=P[0],s=r.accessors[0],t=0,G=x[7];G>0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U=o)return!0;k+=n}k+=a}k+=i}k+=u}k+=d}k+=c}k+=p}k+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr;for(E=(rr=Ne(r.shape,r.strides)).sh,I=rr.sx,e=Of(r.dtype),R=r.offset,f=r.data,n=I[0],s=r.accessors[0],t=0,Q=E[8];Q>0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J=o)return!0;L+=n}L+=a}L+=i}L+=u}L+=d}L+=c}L+=p}L+=h}L+=l}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr,sr;for(V=(sr=Ne(r.shape,r.strides)).sh,N=sr.sx,e=Of(r.dtype),B=r.offset,f=r.data,n=N[0],s=r.accessors[0],t=0,fr=V[9];fr>0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z=o)return!0;D+=n}D+=a}D+=i}D+=u}D+=d}D+=c}D+=p}D+=h}D+=l}D+=g}return!1}],wy=[function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m;for(i=(m=Ne(r.shape,r.strides)).sh,c=m.sx,e=Of(r.dtype),p=r.offset,f=r.data,s=c[0],t=0,v=i[1];v>0;)for(v0;)for(y=o)return!0;h+=s}h+=n}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E;for(d=(E=Ne(r.shape,r.strides)).sh,l=E.sx,e=Of(r.dtype),g=r.offset,f=r.data,s=l[0],t=0,_=d[2];_>0;)for(_0;)for(x0;)for(b=o)return!0;y+=s}y+=n}y+=a}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S;for(p=(S=Ne(r.shape,r.strides)).sh,v=S.sx,t=Of(r.dtype),m=r.offset,f=r.data,s=v[0],e=0,O=p[3];O>0;)for(O0;)for(j0;)for(V0;)for(T=o)return!0;w+=s}w+=n}w+=a}w+=i}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I;for(l=(I=Ne(r.shape,r.strides)).sh,b=I.sx,t=Of(r.dtype),x=r.offset,f=r.data,s=b[0],e=0,k=l[4];k>0;)for(k0;)for(F0;)for(P0;)for(A0;)for(S=o)return!0;_+=s}_+=n}_+=a}_+=i}_+=u}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D;for(y=(D=Ne(r.shape,r.strides)).sh,E=D.sx,e=Of(r.dtype),T=r.offset,f=r.data,s=E[0],t=0,B=y[5];B>0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k=o)return!0;V+=s}V+=n}V+=a}V+=i}V+=u}V+=d}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y;for(m=(Y=Ne(r.shape,r.strides)).sh,j=Y.sx,e=Of(r.dtype),O=r.offset,f=r.data,s=j[0],t=0,z=m[6];z>0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N=o)return!0;S+=s}S+=n}S+=a}S+=i}S+=u}S+=d}S+=c}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G;for(b=(G=Ne(r.shape,r.strides)).sh,A=G.sx,e=Of(r.dtype),P=r.offset,f=r.data,s=A[0],t=0,W=b[7];W>0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C=o)return!0;F+=s}F+=n}F+=a}F+=i}F+=u}F+=d}F+=c}F+=p}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q;for(_=(Q=Ne(r.shape,r.strides)).sh,k=Q.sx,e=Of(r.dtype),I=r.offset,f=r.data,s=k[0],t=0,H=_[8];H>0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q=o)return!0;R+=s}R+=n}R+=a}R+=i}R+=u}R+=d}R+=c}R+=p}R+=h}return!1},function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr;for(T=(fr=Ne(r.shape,r.strides)).sh,L=fr.sx,e=Of(r.dtype),N=r.offset,f=r.data,s=L[0],t=0,er=T[9];er>0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=o)return!0;B+=s}B+=n}B+=a}B+=i}B+=u}B+=d}B+=c}B+=p}B+=h}B+=l}return!1}],by=ly.length-1;var xy="throw";var _y="throw";var Ey=[function(r,o,t,e){return!(1!==o||!t.call(e,r.data[r.offset],[],r.ref))},function(r,o,t,e){var f,s,n,a,i,u;for(a=r.shape[0],n=r.strides[0],i=r.offset,s=r.data,f=0,u=0;u=o)return!0;i+=n}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g;for(u=r.shape,p=r.strides,n=Ie(u.length),1===Lr(p)?(d=u[1],c=u[0],a=p[1],i=p[0]-d*p[1]):(d=u[0],c=u[1],a=p[0],i=p[1]-d*p[0],n=Mf(n)),h=r.offset,s=r.data,f=0,g=0;g=o)return!0;h+=a}h+=i}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m;for(d=r.shape,l=r.strides,n=Ie(d.length),1===Lr(l)?(c=d[2],p=d[1],h=d[0],a=l[2],i=l[1]-c*l[2],u=l[0]-p*l[1]):(c=d[0],p=d[1],h=d[2],a=l[0],i=l[1]-c*l[0],u=l[2]-p*l[1],n=Mf(n)),g=r.offset,s=r.data,f=0,m=0;m=o)return!0;g+=a}g+=i}g+=u}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x;for(c=r.shape,y=r.strides,n=Ie(c.length),1===Lr(y)?(p=c[3],h=c[2],l=c[1],g=c[0],a=y[3],i=y[2]-p*y[3],u=y[1]-p*y[2],d=y[0]-h*y[1]):(p=c[0],h=c[1],l=c[2],g=c[3],a=y[0],i=y[1]-p*y[0],u=y[2]-h*y[1],d=y[3]-l*y[2],n=Mf(n)),v=r.offset,s=r.data,f=0,x=0;x=o)return!0;v+=a}v+=i}v+=u}v+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T;for(p=r.shape,m=r.strides,n=Ie(p.length),1===Lr(m)?(h=p[4],l=p[3],g=p[2],y=p[1],v=p[0],a=m[4],i=m[3]-h*m[4],u=m[2]-l*m[3],d=m[1]-g*m[2],c=m[0]-y*m[1]):(h=p[0],l=p[1],g=p[2],y=p[3],v=p[4],a=m[0],i=m[1]-h*m[0],u=m[2]-l*m[1],d=m[3]-g*m[2],c=m[4]-y*m[3],n=Mf(n)),w=r.offset,s=r.data,f=0,T=0;T=o)return!0;w+=a}w+=i}w+=u}w+=d}w+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O;for(h=r.shape,b=r.strides,n=Ie(h.length),1===Lr(b)?(l=h[5],g=h[4],y=h[3],v=h[2],m=h[1],w=h[0],a=b[5],i=b[4]-l*b[5],u=b[3]-g*b[4],d=b[2]-y*b[3],c=b[1]-v*b[2],p=b[0]-m*b[1]):(l=h[0],g=h[1],y=h[2],v=h[3],m=h[4],w=h[5],a=b[0],i=b[1]-l*b[0],u=b[2]-g*b[1],d=b[3]-y*b[2],c=b[4]-v*b[3],p=b[5]-m*b[4],n=Mf(n)),x=r.offset,s=r.data,f=0,O=0;O=o)return!0;x+=a}x+=i}x+=u}x+=d}x+=c}x+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P;for(l=r.shape,_=r.strides,n=Ie(l.length),1===Lr(_)?(g=l[6],y=l[5],v=l[4],m=l[3],w=l[2],b=l[1],x=l[0],a=_[6],i=_[5]-g*_[6],u=_[4]-y*_[5],d=_[3]-v*_[4],c=_[2]-m*_[3],p=_[1]-w*_[2],h=_[0]-b*_[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],x=l[6],a=_[0],i=_[1]-g*_[0],u=_[2]-y*_[1],d=_[3]-v*_[2],c=_[4]-m*_[3],p=_[5]-w*_[4],h=_[6]-b*_[5],n=Mf(n)),E=r.offset,s=r.data,f=0,P=0;P=o)return!0;E+=a}E+=i}E+=u}E+=d}E+=c}E+=p}E+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I;for(g=r.shape,T=r.strides,n=Ie(g.length),1===Lr(T)?(y=g[7],v=g[6],m=g[5],w=g[4],b=g[3],x=g[2],_=g[1],E=g[0],a=T[7],i=T[6]-y*T[7],u=T[5]-v*T[6],d=T[4]-m*T[5],c=T[3]-w*T[4],p=T[2]-b*T[3],h=T[1]-x*T[2],l=T[0]-_*T[1]):(y=g[0],v=g[1],m=g[2],w=g[3],b=g[4],x=g[5],_=g[6],E=g[7],a=T[0],i=T[1]-y*T[0],u=T[2]-v*T[1],d=T[3]-m*T[2],c=T[4]-w*T[3],p=T[5]-b*T[4],h=T[6]-x*T[5],l=T[7]-_*T[6],n=Mf(n)),V=r.offset,s=r.data,f=0,I=0;I=o)return!0;V+=a}V+=i}V+=u}V+=d}V+=c}V+=p}V+=h}V+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N;for(y=r.shape,j=r.strides,n=Ie(y.length),1===Lr(j)?(v=y[8],m=y[7],w=y[6],b=y[5],x=y[4],_=y[3],E=y[2],T=y[1],V=y[0],a=j[8],i=j[7]-v*j[8],u=j[6]-m*j[7],d=j[5]-w*j[6],c=j[4]-b*j[5],p=j[3]-x*j[4],h=j[2]-_*j[3],l=j[1]-E*j[2],g=j[0]-T*j[1]):(v=y[0],m=y[1],w=y[2],b=y[3],x=y[4],_=y[5],E=y[6],T=y[7],V=y[8],a=j[0],i=j[1]-v*j[0],u=j[2]-m*j[1],d=j[3]-w*j[2],c=j[4]-b*j[3],p=j[5]-x*j[4],h=j[6]-_*j[5],l=j[7]-E*j[6],g=j[8]-T*j[7],n=Mf(n)),O=r.offset,s=r.data,f=0,N=0;N=o)return!0;O+=a}O+=i}O+=u}O+=d}O+=c}O+=p}O+=h}O+=l}O+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M;for(v=r.shape,S=r.strides,n=Ie(v.length),1===Lr(S)?(m=v[9],w=v[8],b=v[7],x=v[6],_=v[5],E=v[4],T=v[3],V=v[2],j=v[1],O=v[0],a=S[9],i=S[8]-m*S[9],u=S[7]-w*S[8],d=S[6]-b*S[7],c=S[5]-x*S[6],p=S[4]-_*S[5],h=S[3]-E*S[4],l=S[2]-T*S[3],g=S[1]-V*S[2],y=S[0]-j*S[1]):(m=v[0],w=v[1],b=v[2],x=v[3],_=v[4],E=v[5],T=v[6],V=v[7],j=v[8],O=v[9],a=S[0],i=S[1]-m*S[0],u=S[2]-w*S[1],d=S[3]-b*S[2],c=S[4]-x*S[3],p=S[5]-_*S[4],h=S[6]-E*S[5],l=S[7]-T*S[6],g=S[8]-V*S[7],y=S[9]-j*S[8],n=Mf(n)),A=r.offset,s=r.data,f=0,M=0;M=o)return!0;A+=a}A+=i}A+=u}A+=d}A+=c}A+=p}A+=h}A+=l}A+=g}A+=y}return!1}],Ty=[function(r,o,t,e){return!(1!==o||!t.call(e,r.accessors[0](r.data,r.offset),[],r.ref))},function(r,o,t,e){var f,s,n,a,i,u,d;for(i=r.shape[0],a=r.strides[0],u=r.offset,s=r.data,n=r.accessors[0],f=0,d=0;d=o)return!0;u+=a}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y;for(d=r.shape,h=r.strides,n=Ie(d.length),1===Lr(h)?(c=d[1],p=d[0],i=h[1],u=h[0]-c*h[1]):(c=d[0],p=d[1],i=h[0],u=h[1]-c*h[0],n=Mf(n)),l=r.offset,s=r.data,a=r.accessors[0],f=0,y=0;y=o)return!0;l+=i}l+=u}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w;for(c=r.shape,g=r.strides,n=Ie(c.length),1===Lr(g)?(p=c[2],h=c[1],l=c[0],i=g[2],u=g[1]-p*g[2],d=g[0]-h*g[1]):(p=c[0],h=c[1],l=c[2],i=g[0],u=g[1]-p*g[0],d=g[2]-h*g[1],n=Mf(n)),y=r.offset,s=r.data,a=r.accessors[0],f=0,w=0;w=o)return!0;y+=i}y+=u}y+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_;for(p=r.shape,v=r.strides,n=Ie(p.length),1===Lr(v)?(h=p[3],l=p[2],g=p[1],y=p[0],i=v[3],u=v[2]-h*v[3],d=v[1]-h*v[2],c=v[0]-l*v[1]):(h=p[0],l=p[1],g=p[2],y=p[3],i=v[0],u=v[1]-h*v[0],d=v[2]-l*v[1],c=v[3]-g*v[2],n=Mf(n)),m=r.offset,s=r.data,a=r.accessors[0],f=0,_=0;_=o)return!0;m+=i}m+=u}m+=d}m+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V;for(h=r.shape,w=r.strides,n=Ie(h.length),1===Lr(w)?(l=h[4],g=h[3],y=h[2],v=h[1],m=h[0],i=w[4],u=w[3]-l*w[4],d=w[2]-g*w[3],c=w[1]-y*w[2],p=w[0]-v*w[1]):(l=h[0],g=h[1],y=h[2],v=h[3],m=h[4],i=w[0],u=w[1]-l*w[0],d=w[2]-g*w[1],c=w[3]-y*w[2],p=w[4]-v*w[3],n=Mf(n)),b=r.offset,s=r.data,a=r.accessors[0],f=0,V=0;V=o)return!0;b+=i}b+=u}b+=d}b+=c}b+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S;for(l=r.shape,x=r.strides,n=Ie(l.length),1===Lr(x)?(g=l[5],y=l[4],v=l[3],m=l[2],w=l[1],b=l[0],i=x[5],u=x[4]-g*x[5],d=x[3]-y*x[4],c=x[2]-v*x[3],p=x[1]-m*x[2],h=x[0]-w*x[1]):(g=l[0],y=l[1],v=l[2],m=l[3],w=l[4],b=l[5],i=x[0],u=x[1]-g*x[0],d=x[2]-y*x[1],c=x[3]-v*x[2],p=x[4]-m*x[3],h=x[5]-w*x[4],n=Mf(n)),_=r.offset,s=r.data,a=r.accessors[0],f=0,S=0;S=o)return!0;_+=i}_+=u}_+=d}_+=c}_+=p}_+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F;for(g=r.shape,E=r.strides,n=Ie(g.length),1===Lr(E)?(y=g[6],v=g[5],m=g[4],w=g[3],b=g[2],x=g[1],_=g[0],i=E[6],u=E[5]-y*E[6],d=E[4]-v*E[5],c=E[3]-m*E[4],p=E[2]-w*E[3],h=E[1]-b*E[2],l=E[0]-x*E[1]):(y=g[0],v=g[1],m=g[2],w=g[3],b=g[4],x=g[5],_=g[6],i=E[0],u=E[1]-y*E[0],d=E[2]-v*E[1],c=E[3]-m*E[2],p=E[4]-w*E[3],h=E[5]-b*E[4],l=E[6]-x*E[5],n=Mf(n)),T=r.offset,s=r.data,a=r.accessors[0],f=0,F=0;F<_;F++){for(P=0;P=o)return!0;T+=i}T+=u}T+=d}T+=c}T+=p}T+=h}T+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R;for(y=r.shape,V=r.strides,n=Ie(y.length),1===Lr(V)?(v=y[7],m=y[6],w=y[5],b=y[4],x=y[3],_=y[2],E=y[1],T=y[0],i=V[7],u=V[6]-v*V[7],d=V[5]-m*V[6],c=V[4]-w*V[5],p=V[3]-b*V[4],h=V[2]-x*V[3],l=V[1]-_*V[2],g=V[0]-E*V[1]):(v=y[0],m=y[1],w=y[2],b=y[3],x=y[4],_=y[5],E=y[6],T=y[7],i=V[0],u=V[1]-v*V[0],d=V[2]-m*V[1],c=V[3]-w*V[2],p=V[4]-b*V[3],h=V[5]-x*V[4],l=V[6]-_*V[5],g=V[7]-E*V[6],n=Mf(n)),j=r.offset,s=r.data,a=r.accessors[0],f=0,R=0;R=o)return!0;j+=i}j+=u}j+=d}j+=c}j+=p}j+=h}j+=l}j+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B;for(v=r.shape,O=r.strides,n=Ie(v.length),1===Lr(O)?(m=v[8],w=v[7],b=v[6],x=v[5],_=v[4],E=v[3],T=v[2],V=v[1],j=v[0],i=O[8],u=O[7]-m*O[8],d=O[6]-w*O[7],c=O[5]-b*O[6],p=O[4]-x*O[5],h=O[3]-_*O[4],l=O[2]-E*O[3],g=O[1]-T*O[2],y=O[0]-V*O[1]):(m=v[0],w=v[1],b=v[2],x=v[3],_=v[4],E=v[5],T=v[6],V=v[7],j=v[8],i=O[0],u=O[1]-m*O[0],d=O[2]-w*O[1],c=O[3]-b*O[2],p=O[4]-x*O[3],h=O[5]-_*O[4],l=O[6]-E*O[5],g=O[7]-T*O[6],y=O[8]-V*O[7],n=Mf(n)),S=r.offset,s=r.data,a=r.accessors[0],f=0,B=0;B=o)return!0;S+=i}S+=u}S+=d}S+=c}S+=p}S+=h}S+=l}S+=g}S+=y}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C;for(m=r.shape,A=r.strides,n=Ie(m.length),1===Lr(A)?(w=m[9],b=m[8],x=m[7],_=m[6],E=m[5],T=m[4],V=m[3],j=m[2],O=m[1],S=m[0],i=A[9],u=A[8]-w*A[9],d=A[7]-b*A[8],c=A[6]-x*A[7],p=A[5]-_*A[6],h=A[4]-E*A[5],l=A[3]-T*A[4],g=A[2]-V*A[3],y=A[1]-j*A[2],v=A[0]-O*A[1]):(w=m[0],b=m[1],x=m[2],_=m[3],E=m[4],T=m[5],V=m[6],j=m[7],O=m[8],S=m[9],i=A[0],u=A[1]-w*A[0],d=A[2]-b*A[1],c=A[3]-x*A[2],p=A[4]-_*A[3],h=A[5]-E*A[4],l=A[6]-T*A[5],g=A[7]-V*A[6],y=A[8]-j*A[7],v=A[9]-O*A[8],n=Mf(n)),P=r.offset,s=r.data,a=r.accessors[0],f=0,C=0;C=o)return!0;P+=i}P+=u}P+=d}P+=c}P+=p}P+=h}P+=l}P+=g}P+=y}P+=v}return!1}],Vy=[function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x;for(c=(x=Ne(r.shape,r.strides)).sh,l=x.sx,a=Mf(x.idx),f=Of(r.dtype),g=r.offset,n=r.data,i=l[0],s=0,b=c[1];b>0;)for(b0;)for(w=o)return!0;y+=i}y+=u}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j;for(h=(j=Ne(r.shape,r.strides)).sh,v=j.sx,a=Mf(j.idx),f=Of(r.dtype),m=r.offset,n=r.data,i=v[0],s=0,V=h[2];V>0;)for(V0;)for(T0;)for(E=o)return!0;w+=i}w+=u}w+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F;for(g=(F=Ne(r.shape,r.strides)).sh,b=F.sx,a=Mf(F.idx),f=Of(r.dtype),x=r.offset,n=r.data,i=b[0],s=0,P=g[3];P>0;)for(P0;)for(A0;)for(S0;)for(O=o)return!0;_+=i}_+=u}_+=d}_+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N;for(v=(N=Ne(r.shape,r.strides)).sh,E=N.sx,a=Mf(N.idx),f=Of(r.dtype),T=r.offset,n=r.data,i=E[0],s=0,L=v[4];L>0;)for(L0;)for(R0;)for(I0;)for(k0;)for(F=o)return!0;V+=i}V+=u}V+=d}V+=c}V+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U;for(w=(U=Ne(r.shape,r.strides)).sh,j=U.sx,a=Mf(U.idx),f=Of(r.dtype),O=r.offset,n=r.data,i=j[0],s=0,C=w[5];C>0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L=o)return!0;S+=i}S+=u}S+=d}S+=c}S+=p}S+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$;for(x=($=Ne(r.shape,r.strides)).sh,A=$.sx,a=Mf($.idx),f=Of(r.dtype),P=r.offset,n=r.data,i=A[0],s=0,J=x[6];J>0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M=o)return!0;F+=i}F+=u}F+=d}F+=c}F+=p}F+=h}F+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X;for(E=(X=Ne(r.shape,r.strides)).sh,k=X.sx,a=Mf(X.idx),f=Of(r.dtype),I=r.offset,n=r.data,i=k[0],s=0,K=E[7];K>0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y=o)return!0;R+=i}R+=u}R+=d}R+=c}R+=p}R+=h}R+=l}R+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr;for(V=(tr=Ne(r.shape,r.strides)).sh,L=tr.sx,a=Mf(tr.idx),f=Of(r.dtype),N=r.offset,n=r.data,i=L[0],s=0,or=V[8];or>0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W=o)return!0;B+=i}B+=u}B+=d}B+=c}B+=p}B+=h}B+=l}B+=g}B+=y}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr,sr,nr,ar;for(O=(ar=Ne(r.shape,r.strides)).sh,D=ar.sx,a=Mf(ar.idx),f=Of(r.dtype),M=r.offset,n=r.data,i=D[0],s=0,nr=O[9];nr>0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X=o)return!0;C+=i}C+=u}C+=d}C+=c}C+=p}C+=h}C+=l}C+=g}C+=y}C+=v}return!1}],jy=[function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_;for(p=(_=Ne(r.shape,r.strides)).sh,g=_.sx,a=Mf(_.idx),f=Of(r.dtype),y=r.offset,n=r.data,u=g[0],i=r.accessors[0],s=0,x=p[1];x>0;)for(x0;)for(b=o)return!0;v+=u}v+=d}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O;for(l=(O=Ne(r.shape,r.strides)).sh,m=O.sx,a=Mf(O.idx),f=Of(r.dtype),w=r.offset,n=r.data,u=m[0],i=r.accessors[0],s=0,j=l[2];j>0;)for(j0;)for(V0;)for(T=o)return!0;b+=u}b+=d}b+=c}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k;for(y=(k=Ne(r.shape,r.strides)).sh,x=k.sx,a=Mf(k.idx),f=Of(r.dtype),_=r.offset,n=r.data,u=x[0],i=r.accessors[0],s=0,F=y[3];F>0;)for(F0;)for(P0;)for(A0;)for(S=o)return!0;E+=u}E+=d}E+=c}E+=p}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B;for(m=(B=Ne(r.shape,r.strides)).sh,T=B.sx,a=Mf(B.idx),f=Of(r.dtype),V=r.offset,n=r.data,u=T[0],i=r.accessors[0],s=0,N=m[4];N>0;)for(N0;)for(L0;)for(R0;)for(I0;)for(k=o)return!0;j+=u}j+=d}j+=c}j+=p}j+=h}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z;for(b=(z=Ne(r.shape,r.strides)).sh,O=z.sx,a=Mf(z.idx),f=Of(r.dtype),S=r.offset,n=r.data,u=O[0],i=r.accessors[0],s=0,U=b[5];U>0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(N=o)return!0;A+=u}A+=d}A+=c}A+=p}A+=h}A+=l}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W;for(_=(W=Ne(r.shape,r.strides)).sh,P=W.sx,a=Mf(W.idx),f=Of(r.dtype),F=r.offset,n=r.data,u=P[0],i=r.accessors[0],s=0,$=_[6];$>0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C=o)return!0;k+=u}k+=d}k+=c}k+=p}k+=h}k+=l}k+=g}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H;for(T=(H=Ne(r.shape,r.strides)).sh,I=H.sx,a=Mf(H.idx),f=Of(r.dtype),R=r.offset,n=r.data,u=I[0],i=r.accessors[0],s=0,X=T[7];X>0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q=o)return!0;L+=u}L+=d}L+=c}L+=p}L+=h}L+=l}L+=g}L+=y}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er;for(j=(er=Ne(r.shape,r.strides)).sh,N=er.sx,a=Mf(er.idx),f=Of(r.dtype),B=r.offset,n=r.data,u=N[0],i=r.accessors[0],s=0,tr=j[8];tr>0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G=o)return!0;D+=u}D+=d}D+=c}D+=p}D+=h}D+=l}D+=g}D+=y}D+=v}return!1},function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,P,F,k,I,R,L,N,B,D,M,C,U,z,Y,q,J,$,W,G,Z,K,X,H,Q,rr,or,tr,er,fr,sr,nr,ar,ir;for(S=(ir=Ne(r.shape,r.strides)).sh,M=ir.sx,a=Mf(ir.idx),f=Of(r.dtype),C=r.offset,n=r.data,u=M[0],i=r.accessors[0],s=0,ar=S[9];ar>0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H=o)return!0;U+=u}U+=d}U+=c}U+=p}U+=h}U+=l}U+=g}U+=y}U+=v}U+=m}return!1}],Oy=Ey.length-1;function Sy(r,o,t,e,f){var s=tc(r,[o,t,e,f]);return{sh:s[0],sx:s[1],sy:s[2],sz:s[3],sw:s[4]}}function Ay(r,o,t,e){return jf([r,o,t,e])}var Py=[function(r,o,t,e,f){e.data[e.offset]=f(r.data[r.offset],o.data[o.offset],t.data[t.offset])},function(r,o,t,e,f){var s,n,a,i,u,d,c,p,h,l,g,y,v,m;for(h=r.shape[0],u=r.strides[0],d=o.strides[0],c=t.strides[0],p=e.strides[0],l=r.offset,g=o.offset,y=t.offset,v=e.offset,s=r.data,n=o.data,a=t.data,i=e.data,m=0;m0;)for(C0;)for(M0;)for(X0;)for(K0;)for(Z0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(Pr0;)for(Ar0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Ur0;)for(Cr0;)for(Mr0;)for(Dr0;)for(Br0;)for(Nr0;)for(Lr0;)for(Hr0;)for(Xr0;)for(Kr0;)for(Zr0;)for(Gr0;)for(Wr0;)for($r0;)for(Jr0;)for(uo0;)for(io0;)for(ao0;)for(no0;)for(so0;)for(fo0;)for(eo0;)for(to0;)for(oo0;)for(xo0;)for(bo0;)for(wo0;)for(mo0;)for(vo0;)for(yo0;)for(go0;)for(lo0;)for(ho0;)for(po0;)for(q0;)for(Y0;)for(or0;)for(rr0;)for(Q0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(Rr0;)for(Ir0;)for(kr0;)for(Fr0;)for(Pr0;)for(Ar0;)for(Jr0;)for(qr0;)for(Yr0;)for(zr0;)for(Ur0;)for(Cr0;)for(Mr0;)for(to0;)for(oo0;)for(ro0;)for(Qr0;)for(Hr0;)for(Xr0;)for(Kr0;)for(Zr0;)for(lo0;)for(ho0;)for(po0;)for(co0;)for(uo0;)for(io0;)for(ao0;)for(no0;)for(so0;)for(Vo0;)for(To0;)for(Eo0;)for(_o0;)for(xo0;)for(bo0;)for(wo0;)for(mo0;)for(vo0;)for(yo=o.length)return r.accessors[0](r.data,e);for(i=[],u=o[s],n=t[s],d=0;d0;h--)f[p+h-1]=f[p+h]*t[h];else for(f[p]=u[p],h=0;h0;)for(T0;)for(E0;)for(F0;)for(P0;)for(A0;)for(D0;)for(B0;)for(N0;)for(L0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(C0;)for(M0;)for(D0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(m0;)for(v0;)for(E0;)for(_0;)for(x0;)for(S0;)for(O0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(P0;)for(A0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(I0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(B0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(w0;)for(m0;)for(T0;)for(E0;)for(_0;)for(A0;)for(S0;)for(O0;)for(j0;)for(R0;)for(I0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(M0;)for(D0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(j0;)for(V0;)for(I0;)for(k0;)for(F0;)for(C0;)for(M0;)for(D0;)for(B0;)for(W0;)for($0;)for(J0;)for(q0;)for(Y0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(S0;)for(O0;)for(L0;)for(R0;)for(I0;)for(z0;)for(U0;)for(C0;)for(M0;)for(Z0;)for(G0;)for(W0;)for($0;)for(J0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(X0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(Pr0;)for(Ar0;)for(Sr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;){for(b0;){for(w0;){for(V0;){for(T0;){for(E0;){for(P0;){for(A0;){for(S0;){for(O0;){for(L0;){for(R0;){for(I0;){for(k0;){for(F0;){for(C0;){for(M0;){for(D0;){for(B0;){for(N0;){for(L0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(M0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(x0;){for(b0;){for(j0;){for(V0;){for(T0;){for(F0;){for(P0;){for(A0;){for(S0;){for(N0;){for(L0;){for(R0;){for(I0;){for(k0;){for(U0;){for(C0;){for(M0;){for(D0;){for(B0;){for(N0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H3?e:{},T=o.length,u=[],A=0;An)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",n,Ri(t,",")));for(j=n-V,A=1;A2?e:{};return Fv(r,o,t,f)}}));var Dv="throw";var Mv=[function(r,o,t,e){o[0]=t(o[0]),r(o,e)},function(r,o,t,e,f,s){var n,a,i,u,d,c;for(a=o[1].shape[0],n=[e[0]],c=1;c0;){for(w0;){for(m0;){for(T0;){for(E0;){for(_0;){for(A0;){for(S0;){for(O0;){for(j0;){for(R0;){for(I0;){for(k0;){for(F0;){for(P0;){for(M0;){for(D0;){for(B0;){for(N0;){for(L0;){for(R0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K3?e:{},T=o.length,u=[],A=0;An)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",n,Ri(t,",")));for(j=n-V,A=1;A2?e:{};return zv(r,o,t,f)}}));var Zv={all:["complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},Kv=/_and_generic$/;var Xv=vs(function(){var r,o,t;return 0===arguments.length?Zv.all.slice():(t=!1,r=arguments[0],Kv.test(r)&&"all"!==(r=ms(r,Kv,""))&&(t=!0),o=(o=Zv[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}("boolean"));function Hv(r,o){return new po(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,r.length-o)}function Qv(r,o,t,e){var f,s,n,a,i,u;if(o.length>0)if(t.length===o.length)s=1;else{if(1!==t.length)throw new Error(P("invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).",t.length,o.length));s=0}return f=Dp(e),n=r.length-1,a=Se(r),i=Se(o),u=Se(t),a.accessorProtocol||i.accessorProtocol||u.accessorProtocol?bi(a.dtype)&&bi(u.dtype)?(function(r,o,t,e,f,s){var n,a,i,u,d,c;for(n=o.data,a=o.accessors[0],u=2*e,i=0,d=0;d0;){for(j0;){for(V0;){for(F0;){for(P0;){for(A0;){for(N0;){for(L0;){for(R0;){for(I0;){for(U0;){for(C0;){for(M0;){for(D0;){for(B0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(hr0;){for(pr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(O0;){for(j0;){for(k0;){for(F0;){for(P0;){for(B0;){for(N0;){for(L0;){for(R0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(ur0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(lr0;){for(hr0;){for(pr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(nr0;){for(sr0;){for(fr5?(_=!0,p=e,O=f,E=s):Yt(e)?(p={},O=e,E=f):(_=!0,p=e,O=f),F=o.length,h=[],N=0;Nu)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",u,Ri(t,",")));for(I=u-k,N=1;Ny&&(o=arguments[e-1],n=cm(s,l,this._odtypes,o)))throw n;return null===s.dims&&(s.dims=Ie(l)),g=Zp(Le(i,a=Nc(l,s.dims)),{dtype:p=s.dtype||vv(c,this._policies.output),order:Dr(r)}),c!==(h=yv(c,p,this._policies.casting))&&(Cu([r,d=Tp(h,i,Dr(r))]),f[0]=d,c=h),t=[qs(c)],Fv((y=fh(this._table.fcns.length,1,this._table.types,1,1,0,t,1,0))>=0?this._table.fcns[y]:this._table.default,Xp(f,1,g),s.dims),s.keepdims&&(g=Ep(l,g,a,!0)),g})),$(pm.prototype,"assign",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p,h,l;if(e=arguments.length,!Od(r))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(u=nr(r),!ys(this._idtypes[0],u))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),u));for(s=[r],l=1;l=0?this._table.fcns[l]:this._table.default,Xp(s,1,h),f.dims),h}));var hm={dims:null,keepdims:!1};function lm(r,o,t,e){var f;if(!mf(e))return new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",e));if(lr(e,"keepdims")&&(r.keepdims=e.keepdims,!St(r.keepdims)))return new TypeError(P("invalid option. `%s` option must be a boolean. Option: `%s`.","keepdims",r.keepdims));if(lr(e,"dims")){if(r.dims=e.dims,!Sp(r.dims)&&!vp(r.dims))return new TypeError(P("invalid option. `%s` option must be an array of integers. Option: `%s`.","dims",r.dims));if(null===(f=cd(r.dims,o-1)))return new RangeError(P("invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].","dims",Ri(r.dims,",")));if(f.length!==r.dims.length)return new Error(P("invalid option. `%s` option contains duplicate indices. Option: [%s].","dims",Ri(r.dims,",")));r.dims=f}return lr(e,"dtype")&&(r.dtype=e.dtype,!ys(t,r.dtype))?new TypeError(P('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"dtype",Ri(t,'", "'),r.dtype)):null}function gm(r,o,t,e){var f,s;if(!(this instanceof gm))return new gm(r,o,t,e);if(!Et(r))throw new TypeError(P("invalid argument. First argument must be an object. Value: `%s`.",r));if(!Yt(r.default))throw new TypeError(P('invalid argument. First argument must be an object having a "default" property and an associated method.'));if(Ys(r,"types")&&!bt(r.types)&&!vp(r.types))throw new TypeError(P('invalid argument. First argument must be an object having a "types" property whose associated value is an array-like object.'));if(Ys(r,"fcns")&&!bp(r.fcns)&&!vp(r.fcns))throw new TypeError(P('invalid argument. First argument must be an object having a "fcns" property whose associated value is an array-like object containing functions.'));if(!bt(o))throw new TypeError(P("invalid argument. Second argument must be an array-like object. Value: `%s`.",o));for(s=0;s=0?this._table.fcns[w]:this._table.default,Xp(n,1,m),a.dims,s,o),a.keepdims&&(m=Ep(v,m,u,!0)),m})),$(gm.prototype,"assign",(function r(o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v;if(s=arguments.length,!Od(o))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(p=nr(o),!ys(this._idtypes[0],p))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),p));for(i=[o],v=1;v=0?this._table.fcns[v]:this._table.default,Xp(i,1,y),a.dims,n,t),y}));var vm={all:["binary","bool","complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["binary","bool","complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],boolean:["bool"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},mm=/_and_generic$/;function wm(){var r,o,t;return 0===arguments.length?vm.all.slice():(t=!1,r=arguments[0],mm.test(r)&&"all"!==(r=ms(r,mm,""))&&(t=!0),o=(o=vm[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}function bm(){return{bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256}}$(wm,"enum",bm),function(r,o){var t,e,f;for(t=pf(o),f=0;f=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=ar(o),e),{sh:r=Le(r,e),sx:o,sy:t=Le(t,e)}}var Tm="throw";var Vm="throw";var jm=[function(r,o){o.data[o.offset]=r.data[r.offset]},function(r,o){var t,e,f,s,n,a,i,u;for(n=r.shape[0],f=r.strides[0],s=o.strides[0],a=r.offset,i=o.offset,t=r.data,e=o.data,u=0;u0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr=0?this._table.fcns[w]:this._table.default,Xp(n,1,m),a.dims,s,o),a.keepdims&&(m=Ep(v,m,u,!0)),m})),$(Rm.prototype,"assign",(function r(o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v;if(s=arguments.length,!Od(o))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(p=nr(o),!ys(this._idtypes[0],p))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),p));for(i=[o],v=1;v=0?this._table.fcns[v]:this._table.default,Xp(i,1,y),a.dims,n,t),y}));var Nm={all:["binary","bool","complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["binary","bool","complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],boolean:["bool"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},Bm=/_and_generic$/;function Dm(){var r,o,t;return 0===arguments.length?Nm.all.slice():(t=!1,r=arguments[0],Bm.test(r)&&"all"!==(r=ms(r,Bm,""))&&(t=!0),o=(o=Nm[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}function Mm(){return{bool:0,int8:1,uint8:2,uint8c:3,int16:4,uint16:5,int32:6,uint32:7,int64:8,uint64:9,float32:10,float64:11,complex64:12,complex128:13,binary:14,generic:15,notype:17,userdefined_type:256}}$(Dm,"enum",Mm),function(r,o){var t,e,f;for(t=pf(o),f=0;f=0&&!(((u=r[s])<0?-u:u)<=t);)r[s+1]=u,o[n+1]=o[n],s-=1,n-=1;r[s+1]=a,o[n+1]=i,e+=1,f+=1}}(o=ar(o),e),{sh:r=Le(r,e),sx:o,sy:t=Le(t,e)}}var Ym="throw";var qm="throw";var Jm=[function(r,o){o.data[o.offset]=r.data[r.offset]},function(r,o){var t,e,f,s,n,a,i,u;for(n=r.shape[0],f=r.strides[0],s=o.strides[0],a=r.offset,i=o.offset,t=r.data,e=o.data,u=0;u0;)for(E0;)for(_0;)for(P0;)for(A0;)for(S0;)for(B0;)for(N0;)for(L0;)for(R0;)for(q0;)for(Y0;)for(z0;)for(U0;)for(C0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(W0;)for($0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(Q0;)for(H0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(sr0;)for(fr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(V0;)for(T0;)for(k0;)for(F0;)for(P0;)for(M0;)for(D0;)for(B0;)for(N0;)for($0;)for(J0;)for(q0;)for(Y0;)for(z0;)for(Q0;)for(H0;)for(X0;)for(K0;)for(Z0;)for(G0;)for(nr0;)for(sr0;)for(fr0;)for(er0;)for(tr0;)for(or0;)for(rr0;)for(hr0;)for(pr0;)for(cr0;)for(dr0;)for(ur0;)for(ir0;)for(ar0;)for(nr0;)for(br0;)for(wr0;)for(mr0;)for(vr0;)for(yr0;)for(gr0;)for(lr0;)for(hr0;)for(pr0;)for(Or0;)for(jr0;)for(Vr0;)for(Tr0;)for(Er0;)for(_r0;)for(xr0;)for(br0;)for(wr0;)for(mry&&(o=arguments[e-1],n=Hm(s,l,this._odtypes,o)))throw n;return null===s.dims&&(s.dims=Ie(l)),g=Zp(Le(i,a=Nc(l,s.dims)),{dtype:p=s.dtype||vv(c,this._policies.output),order:Dr(r)}),c!==(h=yv(c,p,this._policies.casting))&&(Km([r,d=Tp(h,i,Dr(r))]),f[0]=d,c=h),t=[qs(c)],Fv((y=fh(this._table.fcns.length,1,this._table.types,1,1,0,t,1,0))>=0?this._table.fcns[y]:this._table.default,Xp(f,1,g),s.dims),s.keepdims&&(g=Ep(l,g,a,!0)),g})),$(Qm.prototype,"assign",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p,h,l;if(e=arguments.length,!Od(r))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(u=nr(r),!ys(this._idtypes[0],u))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),u));for(s=[r],l=1;l=0?this._table.fcns[l]:this._table.default,Xp(s,1,h),f.dims),h}));var ew="throw";var fw="throw";var sw=[function(r,o,t){o[1].data[o[1].offset]=r(ap(o,1),t)},function(r,o,t,e,f){var s,n,a,i,u,d,c;for(a=(d=o[1]).shape[0],n=[e[0]],c=1;c0;){for(w0;){for(m0;){for(T0;){for(E0;){for(_0;){for(A0;){for(S0;){for(O0;){for(j0;){for(R0;){for(I0;){for(k0;){for(F0;){for(P0;){for(M0;){for(D0;){for(B0;){for(N0;){for(L0;){for(R0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(b0;){for(w0;){for(V0;){for(T0;){for(E0;){for(P0;){for(A0;){for(S0;){for(O0;){for(L0;){for(R0;){for(I0;){for(k0;){for(F0;){for(C0;){for(M0;){for(D0;){for(B0;){for(N0;){for(L0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(C0;){for(M0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X3?e:{},E=o.length,i=[],S=0;Ss)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",s,Ri(t,",")));for(V=s-T,S=1;S2?e:{};return dw(r,o,t,f)}}));var lw={all:["complex64","complex128","float32","float64","generic","int16","int32","int8","uint16","uint32","uint8","uint8c"],typed:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],floating_point:["complex64","complex128","float32","float64"],real_floating_point:["float32","float64"],complex_floating_point:["complex64","complex128"],integer:["int16","int32","int8","uint16","uint32","uint8","uint8c"],signed_integer:["int16","int32","int8"],unsigned_integer:["uint16","uint32","uint8","uint8c"],real:["float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"],numeric:["complex64","complex128","float32","float64","int16","int32","int8","uint16","uint32","uint8","uint8c"]},gw=/_and_generic$/;var yw=vs(function(){var r,o,t;return 0===arguments.length?lw.all.slice():(t=!1,r=arguments[0],gw.test(r)&&"all"!==(r=ms(r,gw,""))&&(t=!0),o=(o=lw[r])?o.slice():[],t&&o.length>0&&o.push("generic"),o)}("boolean"));function vw(r,o){return new po(r.buffer,r.byteOffset+r.BYTES_PER_ELEMENT*o,r.length-o)}function mw(r,o,t,e){var f,s,n,a,i,u;if(o.length>0)if(t.length===o.length)s=1;else{if(1!==t.length)throw new Error(P("invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).",t.length,o.length));s=0}return f=Dp(e),n=r.length-1,a=Se(r),i=Se(o),u=Se(t),a.accessorProtocol||i.accessorProtocol||u.accessorProtocol?bi(a.dtype)&&bi(u.dtype)?(function(r,o,t,e,f,s){var n,a,i,u,d,c;for(n=o.data,a=o.accessors[0],u=2*e,i=0,d=0;d0;){for(j0;){for(V0;){for(F0;){for(P0;){for(A0;){for(N0;){for(L0;){for(R0;){for(I0;){for(U0;){for(C0;){for(M0;){for(D0;){for(B0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ar0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(pr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(O0;){for(j0;){for(k0;){for(F0;){for(P0;){for(B0;){for(N0;){for(L0;){for(R0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(ir0;){for(ar0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(hr0;){for(pr0;){for(cr0;){for(dr0;){for(ur0;){for(ir0;){for(ar0;){for(nr0;){for(sr0;){for(fr5?(_=!0,c=e,j=f,p=s):Yt(e)?(c={},j=e,p=f):(_=!0,c=e,j=f),A=o.length,h=[],L=0;Lu)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",u,Ri(t,",")));for(k=u-F,L=1;L0;){for(_0;){for(x0;){for(O0;){for(j0;){for(V0;){for(k0;){for(F0;){for(P0;){for(A0;){for(B0;){for(N0;){for(L0;){for(R0;){for(I0;){for(z0;){for(U0;){for(C0;){for(M0;){for(D0;){for(B0;){for(W0;){for($0;){for(J0;){for(q0;){for(Y0;){for(z0;){for(U0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(G0;){for(W0;){for($0;){for(J0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q0;){for(H0;){for(X0;){for(K0;){for(Z0;){for(ur0;){for(ir0;){for(nr0;){for(sr0;){for(fr0;){for(er0;){for(tr0;){for(or0;){for(rr0;){for(Q3?f:{};for(O=t.length,c=[],I=0;Ii)throw new RangeError(P("invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].",i,Ri(e,",")));for(A=i-S,I=2;I1?(o=Yw(arguments[1]),t=arguments[0],e=f):Yt(arguments[0])?(o=qw,t=arguments[0],e=f):(o=Yw(arguments[0]),e=s),e;function f(r,e,f){return o(t,r,e,arguments.length>2?f:{})}function s(r,t,e,f){return o(r,t,e,arguments.length>3?f:{})}}));var Jw={dims:null};function $w(r,o,t,e){var f;if(!mf(e))return new TypeError(P("invalid argument. Options argument must be an object. Value: `%s`.",e));if(lr(e,"dims")){if(r.dims=e.dims,!Sp(r.dims)&&!vp(r.dims))return new TypeError(P("invalid option. `%s` option must be an array of integers. Option: `%s`.","dims",r.dims));if(null===(f=cd(r.dims,o-1)))return new RangeError(P("invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].","dims",Ri(r.dims,",")));if(f.length!==r.dims.length)return new Error(P("invalid option. `%s` option contains duplicate indices. Option: [%s].","dims",Ri(r.dims,",")));r.dims=f}return lr(e,"dtype")&&(r.dtype=e.dtype,!ys(t,r.dtype))?new TypeError(P('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"dtype",Ri(t,'", "'),r.dtype)):null}function Ww(r,o,t,e,f){var s,n;if(!(this instanceof Ww))return arguments.length>4?new Ww(r,o,t,e,f):new Ww(r,o,t,e);if(!Et(r))throw new TypeError(P("invalid argument. First argument must be an object. Value: `%s`.",r));if(!Yt(r.default))throw new TypeError(P('invalid argument. First argument must be an object having a "default" property and an associated method.'));if(Ys(r,"types")&&!bt(r.types)&&!vp(r.types))throw new TypeError(P('invalid argument. First argument must be an object having a "types" property whose associated value is an array-like object.'));if(Ys(r,"fcns")&&!bp(r.fcns)&&!vp(r.fcns))throw new TypeError(P('invalid argument. First argument must be an object having a "fcns" property whose associated value is an array-like object containing functions.'));if(!bt(o))throw new TypeError(P("invalid argument. Second argument must be an array-like object. Value: `%s`.",o));for(n=0;n4?qw.factory(f):qw,this}function Gw(r){return function(){return r.get(this._i)}}function Zw(r){return function(o){r.set(this._i,o)}}$(Ww.prototype,"apply",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p,h,l,g;if(t=arguments.length,!Od(r))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(i=nr(r),!ys(this._idtypes[0],i))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),i));for(e=[r],g=1;gg&&(o=arguments[t-1],s=$w(f,h,this._odtypes,o)))throw s;return null===f.dims&&(f.dims=Ie(h)),l=Zp(n,{dtype:u=f.dtype||vv(i,this._policies.output),order:Dr(r)}),i!==(c=yv(i,u,this._policies.casting))&&(Cu([r,d=Tp(c,n,Dr(r))]),e[0]=d,i=c),p=(g=fh(this._table.fcns.length,2,this._table.types,2,1,0,xp([i,u]),1,0))>=0?this._table.fcns[g]:this._table.default,this._apply(p,Xp(e,1,l),f.dims),l})),$(Ww.prototype,"assign",(function r(o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y;if(e=arguments.length,!Od(o))throw new TypeError(P("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",o));if(u=nr(o),!ys(this._idtypes[0],u))throw new TypeError(P('invalid argument. First argument must have one of the following data types: "%s". Data type: `%s`.',Ri(this._idtypes[0],'", "'),u));for(s=[o],y=1;y=0?this._table.fcns[y]:this._table.default,this._apply(l,Xp(s,1,g),f.dims),g}));var Kw={};return M(Kw,"any",(function(r){var o,t,e,f,s,n,a,i,u,d,c,p;if(t=(f=(d=Cr(r[0])).shape).length,q(d.data)?(d.data=ho(d.data,0),d.accessorProtocol=!1):z(d.data)&&(d.data=fo(d.data,0),d.accessorProtocol=!1,d.strides=ke(t,2,d.strides,1),d.offset*=2,o=!0),0===t)return d.accessorProtocol?If[t](d):o?Rf[t](d):kf[t](d);for(n=1,u=0,p=0;p0?n[a-1]:n[0],u=0;u=a&&(f=a-1);else if("wrap"===s)f<0?(f+=a)<0&&0!==(f%=a)&&(f+=a):f>=a&&(f-=a)>=a&&(f%=a);else if("normalize"===s&&f<0&&(f+=a),f<0||f>=a)throw new RangeError(P("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",a,f));if(i=0,_r(e)){for(c=n-1;c>=0;c--)(d=o[c])<0?(f-=(u=Yf(f/d))*d,u+=r[c]-1):f-=(u=Yf(f/d))*d,i+=u*Rr(d);return i}for(c=0;co?o:r})),M(Kw,"complementShape",(function(r,o){var t=cd(o,r.length-1);return null===t?[]:Le(r,Nc(r.length,t))})),M(Kw,"consensusOrder",(function(r){var o,t,e,f;for(e=r.length,t=(o=Uf(4)).length,f=0;f0)return bh(f);return o[1]>o[2]?bh(1):o[1]0&&(f+=o[s]*(r[s]-1))}return f})),M(Kw,"maybeBroadcastArray",dg),M(Kw,"maybeBroadcastArrayExceptDimensions",(function(r,o,t){var e,f,s,n,a,i,u;if(f=ir(r,!1),n=o.length,(a=f.length)===n){if(s=(e=Kp(t)).length,null===(e=cd(e,a-1)))throw new RangeError(P("invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].",Ri(t,",")));if(e.sort(),e.length!==s)throw new Error(P("invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].",Ri(t,",")));for(u=0,i=0;i3?new Dg(r,o,t,e):new Dg(r,o,t),function(){var r,o;for(r=[],o=0;o=o)return!0;return!1}(s,a,o,t):function(r,o,t,e){var f,s,n,a,i,u,d,c,p,h;for(i=sr(u=r.shape),s=r.data,d=r.strides,c=r.offset,n=r.order,f=0,h=0;h=o)return!0;return!1}(s,a,o,t))})),M(Kw,"spreadDimensions",Ep),M(Kw,"stride",(function(r,o){var t,e;if(0===(t=Jd(r)))throw new TypeError(P("invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.",t));if(-1===(e=dd(o,t-1)))throw new RangeError(P("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",t,o));return Vr(r,!1)[e]})),M(Kw,"strides",Vr),M(Kw,"strides2offset",kr),M(Kw,"strides2order",Lr),M(Kw,"sub2ind",(function(){var r,o,t,e,f,s,n,a,i,u,d,c;for(r=arguments[1],o=arguments[2],t=(s=arguments[3+(f=(e=arguments[0]).length)]).length,a=o,c=0;c=i&&(d=i-1);else if("wrap"===n)d<0?(d+=i)<0&&0!==(d%=i)&&(d+=i):d>=i&&(d-=i)>=i&&(d%=i);else if("normalize"===n&&d<0&&(d+=i),d<0||d>=i)throw new RangeError(P("invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.",c,d));(u=r[c])<0&&0===o?a-=d*u:a+=d*u}return a})),M(Kw,"ternary",(function(r,o){var t,e,f,s,n,a,i,u,d,c,p,h,l,g,y,v,m,w,b,x,_,E,T,V,j,O,S,A,F,k;if(j=Cr(r[0]),O=Cr(r[1]),A=Cr(r[2]),S=Cr(r[3]),a=j.shape,i=O.shape,d=A.shape,u=S.shape,(t=a.length)!==i.length||t!==d.length||t!==u.length)throw new Error(P("invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d. ndims(z) == %d. ndims(w) == %d.",t,i.length,d.length,u.length));if(0===t)return Ly(j,O,A,S)?Fy[t](j,O,A,S,o):Py[t](j,O,A,S,o);for(g=1,V=0,k=0;k0?(u=sr(s),a=Er(s,e)):(u=1,a=[0]),i=Yd(t,u),d=new r.constructor(t,i,s,a,0,e),Cu([id(t,Mr(r),n,p,Ir(r),e),id(t,i,n,Er(n,e),0,e)]),d})),M(Kw,"blockSize",jf),M(Kw,"ndarray2array",(function(r,o,t,e,f){var s;if(0===o.length)return[];for(s=0;s1&&(o=arguments[1]),Xc(r.length,o)}(r),e=0;e4?new Ww(r,o,t,e,f):new Ww(r,o,t,e),$(n,"assign",(function(){var r,o;for(r=[],o=0;o0?(f=sr(o),s=Er(o,t)):(f=1,s=[0]),null===(e=Yd(r,f)))throw new TypeError(P("invalid argument. First argument must be a recognized data type. Value: `%s`.",r));return new id(r,e,o,s,kr(o,s),t)})),M(Kw,"zerosLike",(function(r){var o,t,e,f,s,n;if(n=nr(r),f=ir(r,!0),e=Dr(r),f.length>0?(o=sr(f),s=Er(f,e)):(o=1,s=[0]),null===(t=Yd(n,o)))throw new TypeError(P("invalid argument. First argument must have a recognized data type. Value: `%s`.",n));return new r.constructor(n,t,f,s,kr(f,s),e)})),M(Kw,"zip2views1d",(function(r,o){var t,e,f,s,n,a,i,u;if((a=r.length)<1)return[];for(f=[],u=0;u 0 ) {\n\t\t\t\tdigits -= 1;\n\t\t\t}\n\t\t\tout = f.toExponential( digits );\n\t\t} else {\n\t\t\tout = f.toPrecision( token.precision );\n\t\t}\n\t\tif ( !token.alternate ) {\n\t\t\tout = replace.call( out, RE_ZERO_BEFORE_EXP, '$1e' );\n\t\t\tout = replace.call( out, RE_PERIOD_ZERO_EXP, 'e' );\n\t\t\tout = replace.call( out, RE_TRAILING_PERIOD_ZERO, '' );\n\t\t}\n\t\tbreak;\n\tdefault:\n\t\tthrow new Error( 'invalid double notation. Value: ' + token.specifier );\n\t}\n\tout = replace.call( out, RE_EXP_POS_DIGITS, 'e+0$1' );\n\tout = replace.call( out, RE_EXP_NEG_DIGITS, 'e-0$1' );\n\tif ( token.alternate ) {\n\t\tout = replace.call( out, RE_ONLY_DIGITS, '$1.' );\n\t\tout = replace.call( out, RE_DIGITS_BEFORE_EXP, '$1.e' );\n\t}\n\tif ( f >= 0 && token.sign ) {\n\t\tout = token.sign + out;\n\t}\n\tout = ( token.specifier === uppercase.call( token.specifier ) ) ?\n\t\tuppercase.call( out ) :\n\t\tlowercase.call( out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatDouble;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Returns `n` spaces.\n*\n* @private\n* @param {number} n - number of spaces\n* @returns {string} string of spaces\n*/\nfunction spaces( n ) {\n\tvar out = '';\n\tvar i;\n\tfor ( i = 0; i < n; i++ ) {\n\t\tout += ' ';\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Pads a token with spaces to the specified width.\n*\n* @private\n* @param {string} str - token argument\n* @param {number} width - token width\n* @param {boolean} [right=false] - boolean indicating whether to pad to the right\n* @returns {string} padded token argument\n*/\nfunction spacePad( str, width, right ) {\n\tvar pad = width - str.length;\n\tif ( pad < 0 ) {\n\t\treturn str;\n\t}\n\tstr = ( right ) ?\n\t\tstr + spaces( pad ) :\n\t\tspaces( pad ) + str;\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default spacePad;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport formatInteger from './format_integer.js';\nimport isString from './is_string.js';\nimport isNumber from './is_number.js';\nimport formatDouble from './format_double.js';\nimport spacePad from './space_pad.js';\nimport zeroPad from './zero_pad.js';\n\n\n// VARIABLES //\n\nvar fromCharCode = String.fromCharCode;\nvar isArray = Array.isArray; // NOTE: We use the global `Array.isArray` function here instead of `@stdlib/assert/is-array` to avoid circular dependencies.\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating whether a value is `NaN`.\n*\n* @private\n* @param {*} value - input value\n* @returns {boolean} boolean indicating whether a value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 4 );\n* // returns false\n*/\nfunction isnan( value ) { // explicitly define a function here instead of `@stdlib/math/base/assert/is-nan` in order to avoid circular dependencies\n\treturn ( value !== value );\n}\n\n/**\n* Initializes token object with properties of supplied format identifier object or default values if not present.\n*\n* @private\n* @param {Object} token - format identifier object\n* @returns {Object} token object\n*/\nfunction initialize( token ) {\n\tvar out = {};\n\tout.specifier = token.specifier;\n\tout.precision = ( token.precision === void 0 ) ? 1 : token.precision;\n\tout.width = token.width;\n\tout.flags = token.flags || '';\n\tout.mapping = token.mapping;\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates string from a token array by interpolating values.\n*\n* @param {Array} tokens - string parts and format identifier objects\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be an array\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var tokens = [ 'beep ', { 'specifier': 's' } ];\n* var out = formatInterpolate( tokens, 'boop' );\n* // returns 'beep boop'\n*/\nfunction formatInterpolate( tokens ) {\n\tvar hasPeriod;\n\tvar flags;\n\tvar token;\n\tvar flag;\n\tvar num;\n\tvar out;\n\tvar pos;\n\tvar f;\n\tvar i;\n\tvar j;\n\n\tif ( !isArray( tokens ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an array. Value: `' + tokens + '`.' );\n\t}\n\tout = '';\n\tpos = 1;\n\tfor ( i = 0; i < tokens.length; i++ ) {\n\t\ttoken = tokens[ i ];\n\t\tif ( isString( token ) ) {\n\t\t\tout += token;\n\t\t} else {\n\t\t\thasPeriod = token.precision !== void 0;\n\t\t\ttoken = initialize( token );\n\t\t\tif ( !token.specifier ) {\n\t\t\t\tthrow new TypeError( 'invalid argument. Token is missing `specifier` property. Index: `'+ i +'`. Value: `' + token + '`.' );\n\t\t\t}\n\t\t\tif ( token.mapping ) {\n\t\t\t\tpos = token.mapping;\n\t\t\t}\n\t\t\tflags = token.flags;\n\t\t\tfor ( j = 0; j < flags.length; j++ ) {\n\t\t\t\tflag = flags.charAt( j );\n\t\t\t\tswitch ( flag ) {\n\t\t\t\tcase ' ':\n\t\t\t\t\ttoken.sign = ' ';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '+':\n\t\t\t\t\ttoken.sign = '+';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '-':\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase '0':\n\t\t\t\t\ttoken.padZeros = flags.indexOf( '-' ) < 0; // NOTE: We use built-in `Array.prototype.indexOf` here instead of `@stdlib/assert/contains` in order to avoid circular dependencies.\n\t\t\t\t\tbreak;\n\t\t\t\tcase '#':\n\t\t\t\t\ttoken.alternate = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error( 'invalid flag: ' + flag );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( token.width === '*' ) {\n\t\t\t\ttoken.width = parseInt( arguments[ pos ], 10 );\n\t\t\t\tpos += 1;\n\t\t\t\tif ( isnan( token.width ) ) {\n\t\t\t\t\tthrow new TypeError( 'the argument for * width at position ' + pos + ' is not a number. Value: `' + token.width + '`.' );\n\t\t\t\t}\n\t\t\t\tif ( token.width < 0 ) {\n\t\t\t\t\ttoken.padRight = true;\n\t\t\t\t\ttoken.width = -token.width;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( hasPeriod ) {\n\t\t\t\tif ( token.precision === '*' ) {\n\t\t\t\t\ttoken.precision = parseInt( arguments[ pos ], 10 );\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tif ( isnan( token.precision ) ) {\n\t\t\t\t\t\tthrow new TypeError( 'the argument for * precision at position ' + pos + ' is not a number. Value: `' + token.precision + '`.' );\n\t\t\t\t\t}\n\t\t\t\t\tif ( token.precision < 0 ) {\n\t\t\t\t\t\ttoken.precision = 1;\n\t\t\t\t\t\thasPeriod = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttoken.arg = arguments[ pos ];\n\t\t\tswitch ( token.specifier ) {\n\t\t\tcase 'b':\n\t\t\tcase 'o':\n\t\t\tcase 'x':\n\t\t\tcase 'X':\n\t\t\tcase 'd':\n\t\t\tcase 'i':\n\t\t\tcase 'u':\n\t\t\t\t// Case: %b (binary), %o (octal), %x, %X (hexadecimal), %d, %i (decimal), %u (unsigned decimal)\n\t\t\t\tif ( hasPeriod ) {\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatInteger( token );\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\t// Case: %s (string)\n\t\t\t\ttoken.maxWidth = ( hasPeriod ) ? token.precision : -1;\n\t\t\t\ttoken.arg = String( token.arg );\n\t\t\t\tbreak;\n\t\t\tcase 'c':\n\t\t\t\t// Case: %c (character)\n\t\t\t\tif ( !isnan( token.arg ) ) {\n\t\t\t\t\tnum = parseInt( token.arg, 10 );\n\t\t\t\t\tif ( num < 0 || num > 127 ) {\n\t\t\t\t\t\tthrow new Error( 'invalid character code. Value: ' + token.arg );\n\t\t\t\t\t}\n\t\t\t\t\ttoken.arg = ( isnan( num ) ) ? String( token.arg ) : fromCharCode( num ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'e':\n\t\t\tcase 'E':\n\t\t\tcase 'f':\n\t\t\tcase 'F':\n\t\t\tcase 'g':\n\t\t\tcase 'G':\n\t\t\t\t// Case: %e, %E (scientific notation), %f, %F (decimal floating point), %g, %G (uses the shorter of %e/E or %f/F)\n\t\t\t\tif ( !hasPeriod ) {\n\t\t\t\t\ttoken.precision = 6;\n\t\t\t\t}\n\t\t\t\tf = parseFloat( token.arg );\n\t\t\t\tif ( !isFinite( f ) ) { // NOTE: We use the global `isFinite` function here instead of `@stdlib/math/base/assert/is-finite` in order to avoid circular dependencies.\n\t\t\t\t\tif ( !isNumber( token.arg ) ) {\n\t\t\t\t\t\tthrow new Error( 'invalid floating-point number. Value: ' + out );\n\t\t\t\t\t}\n\t\t\t\t\t// Case: NaN, Infinity, or -Infinity\n\t\t\t\t\tf = token.arg;\n\t\t\t\t\ttoken.padZeros = false;\n\t\t\t\t}\n\t\t\t\ttoken.arg = formatDouble( f, token );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'invalid specifier: ' + token.specifier );\n\t\t\t}\n\t\t\t// Fit argument into field width...\n\t\t\tif ( token.maxWidth >= 0 && token.arg.length > token.maxWidth ) {\n\t\t\t\ttoken.arg = token.arg.substring( 0, token.maxWidth );\n\t\t\t}\n\t\t\tif ( token.padZeros ) {\n\t\t\t\ttoken.arg = zeroPad( token.arg, token.width || token.precision, token.padRight ); // eslint-disable-line max-len\n\t\t\t} else if ( token.width ) {\n\t\t\t\ttoken.arg = spacePad( token.arg, token.width, token.padRight );\n\t\t\t}\n\t\t\tout += token.arg || '';\n\t\t\tpos += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default formatInterpolate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar RE = /%(?:([1-9]\\d*)\\$)?([0 +\\-#]*)(\\*|\\d+)?(?:(\\.)(\\*|\\d+)?)?[hlL]?([%A-Za-z])/g;\n\n\n// FUNCTIONS //\n\n/**\n* Parses a delimiter.\n*\n* @private\n* @param {Array} match - regular expression match\n* @returns {Object} delimiter token object\n*/\nfunction parse( match ) {\n\tvar token = {\n\t\t'mapping': ( match[ 1 ] ) ? parseInt( match[ 1 ], 10 ) : void 0,\n\t\t'flags': match[ 2 ],\n\t\t'width': match[ 3 ],\n\t\t'precision': match[ 5 ],\n\t\t'specifier': match[ 6 ]\n\t};\n\tif ( match[ 4 ] === '.' && match[ 5 ] === void 0 ) {\n\t\ttoken.precision = '1';\n\t}\n\treturn token;\n}\n\n\n// MAIN //\n\n/**\n* Tokenizes a string into an array of string parts and format identifier objects.\n*\n* @param {string} str - input string\n* @returns {Array} tokens\n*\n* @example\n* var tokens = formatTokenize( 'Hello %s!' );\n* // returns [ 'Hello ', {...}, '!' ]\n*/\nfunction formatTokenize( str ) {\n\tvar content;\n\tvar tokens;\n\tvar match;\n\tvar prev;\n\n\ttokens = [];\n\tprev = 0;\n\tmatch = RE.exec( str );\n\twhile ( match ) {\n\t\tcontent = str.slice( prev, RE.lastIndex - match[ 0 ].length );\n\t\tif ( content.length ) {\n\t\t\ttokens.push( content );\n\t\t}\n\t\t// Check for an escaped percent sign `%%`...\n\t\tif ( match[ 6 ] === '%' ) {\n\t\t\ttokens.push( '%' );\n\t\t} else {\n\t\t\ttokens.push( parse( match ) );\n\t\t}\n\t\tprev = RE.lastIndex;\n\t\tmatch = RE.exec( str );\n\t}\n\tcontent = str.slice( prev );\n\tif ( content.length ) {\n\t\ttokens.push( content );\n\t}\n\treturn tokens;\n}\n\n\n// EXPORTS //\n\nexport default formatTokenize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport interpolate from '@stdlib/string-base-format-interpolate';\nimport tokenize from '@stdlib/string-base-format-tokenize';\nimport isString from './is_string.js';\n\n\n// MAIN //\n\n/**\n* Inserts supplied variable values into a format string.\n*\n* @param {string} str - input string\n* @param {Array} ...args - variable values\n* @throws {TypeError} first argument must be a string\n* @throws {Error} invalid flags\n* @returns {string} formatted string\n*\n* @example\n* var str = format( 'Hello %s!', 'world' );\n* // returns 'Hello world!'\n*\n* @example\n* var str = format( 'Pi: ~%.2f', 3.141592653589793 );\n* // returns 'Pi: ~3.14'\n*/\nfunction format( str ) {\n\tvar args;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\targs = [ tokenize( str ) ];\n\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn interpolate.apply( null, args );\n}\n\n\n// EXPORTS //\n\nexport default format;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' ); // NOTE: we inline the `isString.isPrimitive` function from `@stdlib/assert/is-string` in order to avoid circular dependencies.\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-underscore-dangle, no-proto */\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar objectProtoype = Object.prototype;\nvar toStr = objectProtoype.toString;\nvar defineGetter = objectProtoype.__defineGetter__;\nvar defineSetter = objectProtoype.__defineSetter__;\nvar lookupGetter = objectProtoype.__lookupGetter__;\nvar lookupSetter = objectProtoype.__lookupSetter__;\n\n\n// MAIN //\n\n/**\n* Defines (or modifies) an object property.\n*\n* ## Notes\n*\n* - Property descriptors come in two flavors: **data descriptors** and **accessor descriptors**. A data descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property described by a getter-setter function pair. A descriptor must be one of these two flavors and cannot be both.\n*\n* @param {Object} obj - object on which to define the property\n* @param {string} prop - property name\n* @param {Object} descriptor - property descriptor\n* @param {boolean} [descriptor.configurable=false] - boolean indicating if property descriptor can be changed and if the property can be deleted from the provided object\n* @param {boolean} [descriptor.enumerable=false] - boolean indicating if the property shows up when enumerating object properties\n* @param {boolean} [descriptor.writable=false] - boolean indicating if the value associated with the property can be changed with an assignment operator\n* @param {*} [descriptor.value] - property value\n* @param {(Function|void)} [descriptor.get=undefined] - function which serves as a getter for the property, or, if no getter, undefined. When the property is accessed, a getter function is called without arguments and with the `this` context set to the object through which the property is accessed (which may not be the object on which the property is defined due to inheritance). The return value will be used as the property value.\n* @param {(Function|void)} [descriptor.set=undefined] - function which serves as a setter for the property, or, if no setter, undefined. When assigning a property value, a setter function is called with one argument (the value being assigned to the property) and with the `this` context set to the object through which the property is assigned.\n* @throws {TypeError} first argument must be an object\n* @throws {TypeError} third argument must be an object\n* @throws {Error} property descriptor cannot have both a value and a setter and/or getter\n* @returns {Object} object with added property\n*\n* @example\n* var obj = {};\n*\n* defineProperty( obj, 'foo', {\n* 'value': 'bar'\n* });\n*\n* var str = obj.foo;\n* // returns 'bar'\n*/\nfunction defineProperty( obj, prop, descriptor ) {\n\tvar prototype;\n\tvar hasValue;\n\tvar hasGet;\n\tvar hasSet;\n\n\tif ( typeof obj !== 'object' || obj === null || toStr.call( obj ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', obj ) );\n\t}\n\tif ( typeof descriptor !== 'object' || descriptor === null || toStr.call( descriptor ) === '[object Array]' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Property descriptor must be an object. Value: `%s`.', descriptor ) );\n\t}\n\thasValue = ( 'value' in descriptor );\n\tif ( hasValue ) {\n\t\tif (\n\t\t\tlookupGetter.call( obj, prop ) ||\n\t\t\tlookupSetter.call( obj, prop )\n\t\t) {\n\t\t\t// Override `__proto__` to avoid touching inherited accessors:\n\t\t\tprototype = obj.__proto__;\n\t\t\tobj.__proto__ = objectProtoype;\n\n\t\t\t// Delete property as existing getters/setters prevent assigning value to specified property:\n\t\t\tdelete obj[ prop ];\n\t\t\tobj[ prop ] = descriptor.value;\n\n\t\t\t// Restore original prototype:\n\t\t\tobj.__proto__ = prototype;\n\t\t} else {\n\t\t\tobj[ prop ] = descriptor.value;\n\t\t}\n\t}\n\thasGet = ( 'get' in descriptor );\n\thasSet = ( 'set' in descriptor );\n\n\tif ( hasValue && ( hasGet || hasSet ) ) {\n\t\tthrow new Error( 'invalid argument. Cannot specify one or more accessors and a value or writable attribute in the property descriptor.' );\n\t}\n\n\tif ( hasGet && defineGetter ) {\n\t\tdefineGetter.call( obj, prop, descriptor.get );\n\t}\n\tif ( hasSet && defineSetter ) {\n\t\tdefineSetter.call( obj, prop, descriptor.set );\n\t}\n\treturn obj;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Define (or modify) an object property.\n*\n* @module @stdlib/utils-define-property\n*\n* @example\n* import defineProperty from '@stdlib/utils-define-property';\n*\n* var obj = {};\n* defineProperty( obj, 'foo', {\n* 'value': 'bar',\n* 'writable': false,\n* 'configurable': false,\n* 'enumerable': false\n* });\n* obj.foo = 'boop'; // => throws\n*/\n\n// MODULES //\n\nimport hasDefinePropertySupport from './has_define_property_support.js';\nimport builtin from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar defineProperty;\nif ( hasDefinePropertySupport() ) {\n\tdefineProperty = builtin;\n} else {\n\tdefineProperty = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default defineProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from './define_property.js';\n\n\n// MAIN //\n\n/**\n* Tests for `Object.defineProperty` support.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment has `Object.defineProperty` support\n*\n* @example\n* var bool = hasDefinePropertySupport();\n* // returns \n*/\nfunction hasDefinePropertySupport() {\n\t// Test basic support...\n\ttry {\n\t\tdefineProperty( {}, 'x', {} );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default hasDefinePropertySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar C64_BYTES_PER_ELEMENT = 8; // 4 bytes per float32 x (1 real + 1 imag component)\nvar C128_BYTES_PER_ELEMENT = 16; // 8 bytes per float64 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isComplexTypedArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isComplexTypedArray( [] );\n* // returns false\n*/\nfunction isComplexTypedArray( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex128Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex-typed-array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t(\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\t\t\tvalue.BYTES_PER_ELEMENT === C128_BYTES_PER_ELEMENT\n\t\t\t) ||\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\t\t\tvalue.BYTES_PER_ELEMENT === C64_BYTES_PER_ELEMENT\n\t\t\t)\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplexTypedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 1; // 1 bytes per uint8\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var bool = isBooleanArray( new BooleanArray( 10 ) );\n* // returns true\n*\n* bool = isBooleanArray( [] );\n* // returns false\n*/\nfunction isBooleanArray( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `BooleanArray` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-booleanarray`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBooleanArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns array iteration order.\n*\n* ## Notes\n*\n* - Return value key:\n*\n* - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`)\n* - `1`: ordered left-to-right (i.e., all nonnegative strides)\n* - `-1`: ordered right-to-left (i.e., all negative strides)\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} iteration order\n*\n* @example\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\n* // returns -1\n*/\nfunction iterationOrder( strides ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < strides.length; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\tif ( cnt === 0 ) {\n\t\t// All nonnegative strides:\n\t\treturn 1|0; // asm-type annotation\n\t}\n\tif ( cnt === strides.length ) {\n\t\t// All negative strides:\n\t\treturn -1|0; // asm-type annotation\n\t}\n\t// Strides of mixed signs:\n\treturn 0|0; // asm-type annotation\n}\n\n\n// EXPORTS //\n\nexport default iterationOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only property.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {*} value - value to set\n*\n* @example\n* var obj = {};\n*\n* setNonEnumerableReadOnly( obj, 'foo', 'bar' );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnly( obj, prop, value ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'writable': false,\n\t\t'value': value\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {Array} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [ offset, offset ];\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\treturn [ min, max ];\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset, out ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\tout[ 0 ] = offset;\n\t\t\tout[ 1 ] = offset;\n\t\t\treturn out;\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\tout[ 0 ] = min;\n\tout[ 1 ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default minmaxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Compute the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @module @stdlib/ndarray-base-minmax-view-buffer-index\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* import minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar TYPE = 'function';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like object supports the accessor (get/set) protocol.\n*\n* @param {Object} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn ( typeof value.get === TYPE && typeof value.set === TYPE ); // eslint-disable-line valid-typeof\n}\n\n\n// EXPORTS //\n\nexport default isAccessorArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'complex128': getComplex128,\n\t'complex64': getComplex64,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex128( arr, 1 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction getComplex128( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex64( arr, 1 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction getComplex64( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'complex128': setComplex128,\n\t'complex64': setComplex64,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex128( arr, 1, new Complex128( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns [ 10.0, 11.0 ]\n*/\nfunction setComplex128( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex64( arr, 1, new Complex64( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns [ 10.0, 11.0 ]\n*/\nfunction setComplex64( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* setArrayLike( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns [ 10.0, 11.0 ]\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default getter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'float64': setFloat64,\n\t'float32': setFloat32,\n\t'int32': setInt32,\n\t'int16': setInt16,\n\t'int8': setInt8,\n\t'uint32': setUint32,\n\t'uint16': setUint16,\n\t'uint8': setUint8,\n\t'uint8c': setUint8c,\n\t'generic': setGeneric,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( 4 );\n*\n* setFloat64( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat64( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var arr = new Float32Array( 4 );\n*\n* setFloat32( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var arr = new Int32Array( 4 );\n*\n* setInt32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var arr = new Int16Array( 4 );\n*\n* setInt16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var arr = new Int8Array( 4 );\n*\n* setInt8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var arr = new Uint32Array( 4 );\n*\n* setUint32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var arr = new Uint16Array( 4 );\n*\n* setUint16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var arr = new Uint8Array( 4 );\n*\n* setUint8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var arr = new Uint8ClampedArray( 4 );\n*\n* setUint8c( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8c( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setGeneric( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setGeneric( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setArrayLike( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* import dtype from '@stdlib/array-dtype';\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nexport default setter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the number of elements in an array.\n*\n* @param {(NonNegativeIntegerArray|EmptyArray)} shape - array shape\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\nfunction numel( shape ) {\n\tvar ndims;\n\tvar n;\n\tvar i;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tn *= shape[ i ];\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default numel;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\treturn x.dtype;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( x[ i ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x, copy ) {\n\tvar sh = x.shape;\n\tif ( copy ) {\n\t\treturn copyIndexed( sh );\n\t}\n\treturn sh;\n}\n\n\n// EXPORTS //\n\nexport default shape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a string primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string primitive\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns false\n*/\nfunction isString( value ) {\n\treturn ( typeof value === 'string' );\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasSymbols from '@stdlib/assert-has-symbol-support';\n\n\n// VARIABLES //\n\nvar FLG = hasSymbols();\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.toStringTag` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.toStringTag` support\n*\n* @example\n* var bool = hasToStringTagSupport();\n* // returns \n*/\nfunction hasToStringTagSupport() {\n\treturn ( FLG && typeof Symbol.toStringTag === 'symbol' );\n}\n\n\n// EXPORTS //\n\nexport default hasToStringTagSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests for native `Symbol` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol` support\n*\n* @example\n* var bool = hasSymbolSupport();\n* // returns \n*/\nfunction hasSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar toStr = Object.prototype.toString;\n\n\n// EXPORTS //\n\nexport default toStr;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\nvar has = Object.prototype.hasOwnProperty;\n\n\n// MAIN //\n\n/**\n* Tests if an object has a specified property.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object has a specified property\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasOwnProp( beep, 'bap' );\n* // returns false\n*/\nfunction hasOwnProp( value, property ) {\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\treturn has.call( value, property );\n}\n\n\n// EXPORTS //\n\nexport default hasOwnProp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar Sym = ( typeof Symbol === 'function' ) ? Symbol : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Sym;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Symbol from '@stdlib/symbol-ctor';\n\n\n// MAIN //\n\nvar toStrTag = ( typeof Symbol === 'function' ) ? Symbol.toStringTag : '';\n\n\n// EXPORTS //\n\nexport default toStrTag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a string value indicating a specification defined classification of an object.\n*\n* @module @stdlib/utils-native-class\n*\n* @example\n* import nativeClass from '@stdlib/utils-native-class';\n*\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* function Beep() {\n* return this;\n* }\n* str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( hasToStringTag() ) {\n\tmain = polyfill;\n} else {\n\tmain = builtin;\n}\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport toStringTag from './tostringtag.js';\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification of an object in environments supporting `Symbol.toStringTag`.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\tvar isOwn;\n\tvar tag;\n\tvar out;\n\n\tif ( v === null || v === void 0 ) {\n\t\treturn toStr.call( v );\n\t}\n\ttag = v[ toStringTag ];\n\tisOwn = hasOwnProp( v, toStringTag );\n\n\t// Attempt to override the `toStringTag` property. For built-ins having a `Symbol.toStringTag` property (e.g., `JSON`, `Math`, etc), the `Symbol.toStringTag` property is read-only (e.g., , so we need to wrap in a `try/catch`.\n\ttry {\n\t\tv[ toStringTag ] = void 0;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn toStr.call( v );\n\t}\n\tout = toStr.call( v );\n\n\tif ( isOwn ) {\n\t\tv[ toStringTag ] = tag;\n\t} else {\n\t\tdelete v[ toStringTag ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toStr from './tostring.js';\n\n\n// MAIN //\n\n/**\n* Returns a string value indicating a specification defined classification (via the internal property `[[Class]]`) of an object.\n*\n* @param {*} v - input value\n* @returns {string} string value indicating a specification defined classification of the input value\n*\n* @example\n* var str = nativeClass( 'a' );\n* // returns '[object String]'\n*\n* @example\n* var str = nativeClass( 5 );\n* // returns '[object Number]'\n*\n* @example\n* function Beep() {\n* return this;\n* }\n* var str = nativeClass( new Beep() );\n* // returns '[object Object]'\n*/\nfunction nativeClass( v ) {\n\treturn toStr.call( v );\n}\n\n\n// EXPORTS //\n\nexport default nativeClass;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar valueOf = String.prototype.valueOf; // non-generic\n\n\n// EXPORTS //\n\nexport default valueOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport test from './try2valueof.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a string object\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns false\n*/\nfunction isString( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof String ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object String]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport valueOf from './valueof.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to extract a string value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a string can be extracted\n*/\nfunction test( value ) {\n\ttry {\n\t\tvalueOf.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a string.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a string\n*\n* @example\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* @example\n* var bool = isString( 'beep' );\n* // returns true\n*/\nfunction isString( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isString;\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* Tests whether an input value is the string representing column-major order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean result\n*\n* @example\n* var bool = isColumnMajorString( 'column-major' );\n* // returns true\n*\n* bool = isColumnMajorString( 'row-major' );\n* // returns false\n*\n* bool = isColumnMajorString( 'foo' );\n* // returns false\n*/\nfunction isColumnMajorString( v ) {\n\treturn ( v === 'column-major' );\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction rowmajor( shape ) {\n\tvar ndims;\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tout = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( 0 );\n\t}\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction columnmajor( shape ) {\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tout = [];\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout.push( s );\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Array} array strides\n*\n* @example\n* var s = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* s = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order ) {\n\tif ( isColumnMajor( order ) ) {\n\t\treturn columnmajor( shape );\n\t}\n\treturn rowmajor( shape );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a string.\n*\n* @module @stdlib/assert-is-string\n*\n* @example\n* import isString from '@stdlib/assert-is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 5 );\n* // returns false\n*\n* @example\n* import { isObject as isString } from '@stdlib/assert-is-string';\n*\n* var bool = isString( new String( 'beep' ) );\n* // returns true\n*\n* bool = isString( 'beep' );\n* // returns false\n*\n* @example\n* import { isPrimitive as isString } from '@stdlib/assert-is-string';\n*\n* var bool = isString( 'beep' );\n* // returns true\n*\n* bool = isString( new String( 'beep' ) );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a stride array from an array shape.\n*\n* @module @stdlib/ndarray-base-shape2strides\n*\n* @example\n* import shape2strides from '@stdlib/ndarray-base-shape2strides';\n*\n* var strides = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* strides = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction rowmajor( shape, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction columnmajor( shape, out ) {\n\tvar s;\n\tvar i;\n\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*\n* @example\n* var strides = [ 0, 0 ];\n*\n* var out = shape2strides( [ 3, 2 ], 'row-major', strides );\n* // returns [ 2, 1 ]\n*\n* var bool = ( out === strides );\n* // returns true\n*\n* out = shape2strides( [ 3, 2 ], 'column-major', strides );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order, out ) {\n\tif ( isColumnMajor( order ) ) {\n\t\treturn columnmajor( shape, out );\n\t}\n\treturn rowmajor( shape, out );\n}\n\n\n// EXPORTS //\n\nexport default shape2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property\n* @returns {IntegerArray} strides\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x, copy ) {\n\tvar ord;\n\tvar sh;\n\tvar st;\n\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\tsh = x.shape;\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( !isString( ord ) ) {\n\t\t\tord = ROW_MAJOR;\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\tif ( copy ) {\n\t\treturn copyIndexed( st );\n\t}\n\treturn st;\n}\n\n\n// EXPORTS //\n\nexport default strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( typeof value === 'number' );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// EXPORTS //\n\nexport default Number; // eslint-disable-line stdlib/require-globals\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Number from '@stdlib/number-ctor';\n\n\n// MAIN //\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Number.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport Number from '@stdlib/number-ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\nfunction isNumber( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Number ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Number]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a number\n*\n* @example\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* @example\n* var bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* @example\n* var bool = isNumber( NaN );\n* // returns true\n*\n* @example\n* var bool = isNumber( null );\n* // returns false\n*/\nfunction isNumber( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\nfunction strides2offset( shape, strides ) {\n\tvar offset;\n\tvar ndims;\n\tvar i;\n\n\tndims = shape.length;\n\toffset = 0;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\t// Note that, since the stride is negative, this operation increments, not decrements, the offset...\n\t\t\toffset -= strides[ i ] * ( shape[ i ]-1 );\n\t\t}\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nexport default strides2offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar o;\n\n\to = x.offset;\n\tif ( isNumber( o ) ) {\n\t\treturn o;\n\t}\n\tsh = x.shape;\n\tif ( sh.length === 0 ) {\n\t\treturn 0;\n\t}\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn 0;\n\t}\n\treturn strides2offset( sh, st );\n}\n\n\n// EXPORTS //\n\nexport default offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the absolute value of a double-precision floating-point number `x`.\n*\n* @param {number} x - input value\n* @returns {number} absolute value\n*\n* @example\n* var v = abs( -1.0 );\n* // returns 1.0\n*\n* @example\n* var v = abs( 2.0 );\n* // returns 2.0\n*\n* @example\n* var v = abs( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( -0.0 );\n* // returns 0.0\n*\n* @example\n* var v = abs( NaN );\n* // returns NaN\n*/\nfunction abs( x ) {\n\treturn Math.abs( x ); // eslint-disable-line stdlib/no-builtin-math\n}\n\n\n// EXPORTS //\n\nexport default abs;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from '@stdlib/math-base-special-abs';\n\n\n// MAIN //\n\n/**\n* Determines the order of a multidimensional array based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} order\n*\n* @example\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\nfunction strides2order( strides ) {\n\tvar column;\n\tvar ndims;\n\tvar row;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0|0; // 'none'\n\t}\n\tcolumn = true;\n\trow = true;\n\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( column && s2 < s1 ) {\n\t\t\tcolumn = false;\n\t\t} else if ( row && s2 > s1 ) {\n\t\t\trow = false;\n\t\t}\n\t\tif ( row || column ) {\n\t\t\ts1 = s2;\n\t\t} else {\n\t\t\treturn 0|0; // 'none'\n\t\t}\n\t}\n\tif ( row && column ) {\n\t\treturn 3|0; // 'both'\n\t}\n\tif ( row ) {\n\t\treturn 1|0; // 'row-major'\n\t}\n\treturn 2|0; // 'column-major'\n}\n\n\n// EXPORTS //\n\nexport default strides2order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a number.\n*\n* @module @stdlib/assert-is-number\n*\n* @example\n* import isNumber from '@stdlib/assert-is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNumber } from '@stdlib/assert-is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns true\n*\n* bool = isNumber( NaN );\n* // returns true\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNumber } from '@stdlib/assert-is-number';\n*\n* var bool = isNumber( 3.14 );\n* // returns false\n*\n* bool = isNumber( new Number( 3.14 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\to = x.order;\n\tif ( isString( o ) ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn ROW_MAJOR; // WARNING: default to row-major for ndarray-like objects lacking strides. This may or may not be accurate, and we're defaulting to row-major here based on the belief that row-major is more likely given that, e.g., JavaScript arrays are similar to C arrays (i.e., stored in row-major order).\n\t}\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( x.shape.length === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\treturn x.data;\n}\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport getter from '@stdlib/array-base-getter';\nimport setter from '@stdlib/array-base-setter';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **ref**: reference to the original ndarray-like object.\n* - **dtype**: underlying data type.\n* - **data**: data buffer.\n* - **length**: number of elements.\n* - **shape**: array dimensions.\n* - **strides**: array strides.\n* - **offset**: index offset.\n* - **order**: order.\n* - **accessorProtocol**: `boolean` indicating whether the data buffer supports the get/set protocol (i.e., uses accessors for getting and setting elements).\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an ndarray element and whose second element is an accessor for setting an ndarray element.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} object containing ndarray meta data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\n* // returns {...}\n*/\nfunction ndarraylike2object( x ) {\n\tvar xbuf;\n\tvar bool;\n\tvar sh;\n\tvar dt;\n\n\txbuf = getData( x );\n\tsh = getShape( x, true );\n\tdt = getDType( x );\n\n\tbool = isAccessorArray( xbuf );\n\n\treturn {\n\t\t'ref': x,\n\t\t'dtype': dt,\n\t\t'data': xbuf,\n\t\t'length': numel( sh ),\n\t\t'shape': sh,\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x ),\n\t\t'accessorProtocol': bool,\n\t\t'accessors': ( bool ) ?\n\t\t\t[ accessorGetter( dt ), accessorSetter( dt ) ] :\n\t\t\t[ getter( dt ), setter( dt ) ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2object;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 16; // 8 bytes per float64 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isComplex128Array( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isComplex128Array( [] );\n* // returns false\n*/\nfunction isComplex128Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex128Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex128array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex128Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = 8; // 4 bytes per float32 x (1 real + 1 imag component)\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var bool = isComplex64Array( new Complex64Array( 10 ) );\n* // returns true\n*\n* bool = isComplex64Array( [] );\n* // returns false\n*/\nfunction isComplex64Array( value ) {\n\t// Note: the following is not robust and that is intentional. In this case, we are seeking a lower cost way to reasonably determine whether an input value is a `Complex64Array` in order to avoid walking the prototype chain and resolving constructors, which is necessary for robust identification of cross-realm instances. For more robust validation, see `@stdlib/assert/is-complex64array`.\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplex64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasFloat64Array = ( typeof Float64Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float64Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float64Array\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var bool = isFloat64Array( new Float64Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat64Array( [] );\n* // returns false\n*/\nfunction isFloat64Array( value ) {\n\treturn (\n\t\t( hasFloat64Array && value instanceof Float64Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float64Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Float64Array === 'function' ) ? Float64Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat64Array from '@stdlib/assert-is-float64array';\nimport GlobalFloat64Array from './float64array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float64Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float64Array` support\n*\n* @example\n* var bool = hasFloat64ArraySupport();\n* // returns \n*/\nfunction hasFloat64ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat64Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat64Array( [ 1.0, 3.14, -3.14, NaN ] );\n\t\tbool = (\n\t\t\tisFloat64Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.14 &&\n\t\t\tarr[ 2 ] === -3.14 &&\n\t\t\tarr[ 3 ] !== arr[ 3 ]\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat64ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float64Array === 'function' ) ? Float64Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of double-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array-float64\n*\n* @example\n* import ctor from '@stdlib/array-float64';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat64ArraySupport from '@stdlib/assert-has-float64array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat64ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of double-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex128Array` as a `Float64Array`.\n*\n* @param {Complex128Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float64Array} `Float64Array` view\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float64Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasFloat32Array = ( typeof Float32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Float32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Float32Array\n*\n* @example\n* import Float32Array from '@stdlib/array-float32';\n*\n* var bool = isFloat32Array( new Float32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isFloat32Array( [] );\n* // returns false\n*/\nfunction isFloat32Array( value ) {\n\treturn (\n\t\t( hasFloat32Array && value instanceof Float32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Float32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isFloat32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Double-precision floating-point positive infinity.\n*\n* @module @stdlib/constants-float64-pinf\n* @type {number}\n*\n* @example\n* import FLOAT64_PINF from '@stdlib/constants-float64-pinf';\n* // returns Infinity\n*/\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point positive infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point positive infinity has the bit sequence\n*\n* ```binarystring\n* 0 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.POSITIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_PINF = Number.POSITIVE_INFINITY; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default FLOAT64_PINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Float32Array === 'function' ) ? Float32Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float32Array === 'function' ) ? Float32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array-float32\n*\n* @example\n* import ctor from '@stdlib/array-float32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasFloat32ArraySupport from '@stdlib/assert-has-float32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFloat32Array from '@stdlib/assert-is-float32array';\nimport PINF from '@stdlib/constants-float64-pinf';\nimport GlobalFloat32Array from './float32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Float32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Float32Array` support\n*\n* @example\n* var bool = hasFloat32ArraySupport();\n* // returns \n*/\nfunction hasFloat32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalFloat32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalFloat32Array( [ 1.0, 3.14, -3.14, 5.0e40 ] );\n\t\tbool = (\n\t\t\tisFloat32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1.0 &&\n\t\t\tarr[ 1 ] === 3.140000104904175 &&\n\t\t\tarr[ 2 ] === -3.140000104904175 &&\n\t\t\tarr[ 3 ] === PINF\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasFloat32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of single-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array-float32';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `Complex64Array` as a `Float32Array`.\n*\n* @param {Complex64Array} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Float32Array} `Float32Array` view\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Float32Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), 2*(x.length-offset) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Reinterprets a complex-valued floating-point array as a real-valued floating-point array having the same precision.\n*\n* @param {(Complex128Array|Complex64Array)} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @throws {TypeError} first argument must be a supported complex-valued floating-point array\n* @returns {(Float64Array|Float32Array)} real-valued floating-point array view\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var x = new Complex128Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* var x = new Complex64Array( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\tif ( isComplex128Array( x ) ) {\n\t\treturn reinterpret128( x, offset );\n\t}\n\tif ( isComplex64Array( x ) ) {\n\t\treturn reinterpret64( x, offset );\n\t}\n\t// Note: intentionally throw here to catch the scenario in which we add, e.g., a Complex32Array and need to explicitly add support here...\n\tthrow new TypeError( format( 'invalid argument. First argument must be a complex-valued floating-point array. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint8Array = ( typeof Uint8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8Array\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var bool = isUint8Array( new Uint8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8Array( [] );\n* // returns false\n*/\nfunction isUint8Array( value ) {\n\treturn (\n\t\t( hasUint8Array && value instanceof Uint8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum unsigned 8-bit integer.\n*\n* @module @stdlib/constants-uint8-max\n* @type {integer32}\n*\n* @example\n* import UINT8_MAX from '@stdlib/constants-uint8-max';\n* // returns 255\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 8-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{8} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 255\n*/\nvar UINT8_MAX = 255|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT8_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint8Array === 'function' ) ? Uint8Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8Array === 'function' ) ? Uint8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array-uint8\n*\n* @example\n* import ctor from '@stdlib/array-uint8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ArraySupport from '@stdlib/assert-has-uint8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8Array from '@stdlib/assert-is-uint8array';\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport GlobalUint8Array from './uint8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8Array` support\n*\n* @example\n* var bool = hasUint8ArraySupport();\n* // returns \n*/\nfunction hasUint8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT8_MAX+1, UINT8_MAX+2 ];\n\t\tarr = new GlobalUint8Array( arr );\n\t\tbool = (\n\t\t\tisUint8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT8_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `BooleanArray` as a `Uint8Array`.\n*\n* @param {BooleanArray} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Uint8Array} `Uint8Array` view\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var x = new BooleanArray( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Uint8Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a strided array.\n*\n* @param {NonNegativeInteger} N - number of indexed elements\n* @param {integer} stride - index increment\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var offset = stride2offset( 10, -10 );\n* // returns 90\n*/\nfunction stride2offset( N, stride ) {\n\tif ( stride > 0 ) {\n\t\treturn 0;\n\t}\n\treturn ( 1 - N ) * stride;\n}\n\n\n// EXPORTS //\n\nexport default stride2offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar f;\n\n\n// FUNCTIONS //\n\n/**\n* Tests if a value is an array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an array\n*\n* @example\n* var bool = isArray( [] );\n* // returns true\n*\n* @example\n* var bool = isArray( {} );\n* // returns false\n*/\nfunction isArray( value ) {\n\treturn ( nativeClass( value ) === '[object Array]' );\n}\n\n\n// MAIN //\n\nif ( Array.isArray ) {\n\tf = Array.isArray;\n} else {\n\tf = isArray;\n}\n\n\n// EXPORTS //\n\nexport default f;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArray from '@stdlib/assert-is-array';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array function\n*\n* @example\n* import isOdd from '@stdlib/assert-is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arrayfcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arrayfcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArray( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arrayfcn;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is object-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is object-like\n*\n* @example\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( [] );\n* // returns true\n*\n* @example\n* var bool = isObjectLike( null );\n* // returns false\n*/\nfunction isObjectLike( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObjectLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from '@stdlib/assert-is-object-like';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Buffer instance.\n*\n* @param {*} value - value to validate\n* @returns {boolean} boolean indicating if a value is a Buffer instance\n*\n* @example\n* var v = isBuffer( new Buffer( 'beep' ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( new Buffer( [1,2,3,4] ) );\n* // returns true\n*\n* @example\n* var v = isBuffer( {} );\n* // returns false\n*\n* @example\n* var v = isBuffer( [] );\n* // returns false\n*/\nfunction isBuffer( value ) {\n\treturn (\n\t\tisObjectLike( value ) &&\n\t\t(\n\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\tvalue._isBuffer || // for envs missing Object.prototype.constructor (e.g., Safari 5-7)\n\t\t\t(\n\t\t\t\tvalue.constructor &&\n\n\t\t\t\t// WARNING: `typeof` is not a foolproof check, as certain envs consider RegExp and NodeList instances to be functions\n\t\t\t\ttypeof value.constructor.isBuffer === 'function' &&\n\t\t\t\tvalue.constructor.isBuffer( value )\n\t\t\t)\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @returns {RegExp} regular expression\n*\n* @example\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\nfunction reFunctionName() {\n\treturn /^\\s*function\\s*([^(]*)/i;\n}\n\n\n// EXPORTS //\n\nexport default reFunctionName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is object-like.\n*\n* @module @stdlib/assert-is-object-like\n*\n* @example\n* import isObjectLike from '@stdlib/assert-is-object-like';\n*\n* var bool = isObjectLike( {} );\n* // returns true\n*\n* bool = isObjectLike( [] );\n* // returns true\n*\n* bool = isObjectLike( null );\n* // returns false\n*\n* @example\n* import { isObjectLikeArray as isObjectLike } from '@stdlib/assert-is-object-like';\n*\n* var bool = isObjectLike( [ {}, [] ] );\n* // returns true\n*\n* bool = isObjectLike( [ {}, '3.0' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-function';\nimport main from './main.js';\n\n\n// VARIABLES //\n\nvar isObjectLikeArray = arrayfun( main );\n\n\n// MAIN //\n\nsetReadOnly( main, 'isObjectLikeArray', isObjectLikeArray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reFunctionName from './main.js';\n\n\n// MAIN //\n\n/**\n* Captures everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* Regular expression: `/^\\s*function\\s*([^(]*)/i`\n*\n* - `/^\\s*`\n* - Match zero or more spaces at beginning\n*\n* - `function`\n* - Match the word `function`\n*\n* - `\\s*`\n* - Match zero or more spaces after the word `function`\n*\n* - `()`\n* - Capture\n*\n* - `[^(]*`\n* - Match anything except a left parenthesis `(` zero or more times\n*\n* - `/i`\n* - ignore case\n*\n* @constant\n* @type {RegExp}\n* @default /^\\s*function\\s*([^(]*)/i\n*/\nvar RE_FUNCTION_NAME = reFunctionName();\n\n\n// EXPORTS //\n\nexport default RE_FUNCTION_NAME;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\nimport { REGEXP as RE } from '@stdlib/regexp-function-name';\nimport isBuffer from '@stdlib/assert-is-buffer';\n\n\n// MAIN //\n\n/**\n* Determines the name of a value's constructor.\n*\n* @param {*} v - input value\n* @returns {string} name of a value's constructor\n*\n* @example\n* var v = constructorName( 'a' );\n* // returns 'String'\n*\n* @example\n* var v = constructorName( 5 );\n* // returns 'Number'\n*\n* @example\n* var v = constructorName( null );\n* // returns 'Null'\n*\n* @example\n* var v = constructorName( undefined );\n* // returns 'Undefined'\n*\n* @example\n* var v = constructorName( function noop() {} );\n* // returns 'Function'\n*/\nfunction constructorName( v ) {\n\tvar match;\n\tvar name;\n\tvar ctor;\n\tname = nativeClass( v ).slice( 8, -1 );\n\tif ( (name === 'Object' || name === 'Error') && v.constructor ) {\n\t\tctor = v.constructor;\n\t\tif ( typeof ctor.name === 'string' ) {\n\t\t\treturn ctor.name;\n\t\t}\n\t\tmatch = RE.exec( ctor.toString() );\n\t\tif ( match ) {\n\t\t\treturn match[ 1 ];\n\t\t}\n\t}\n\tif ( isBuffer( v ) ) {\n\t\treturn 'Buffer';\n\t}\n\treturn name;\n}\n\n\n// EXPORTS //\n\nexport default constructorName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Regular expression to capture everything that is not a space immediately after the `function` keyword and before the first left parenthesis.\n*\n* @module @stdlib/regexp-function-name\n*\n* @example\n* import reFunctionName from '@stdlib/regexp-function-name';\n* var RE_FUNCTION_NAME = reFunctionName();\n*\n* function fname( fcn ) {\n* return RE_FUNCTION_NAME.exec( fcn.toString() )[ 1 ];\n* }\n*\n* var fn = fname( Math.sqrt );\n* // returns 'sqrt'\n*\n* fn = fname( Int8Array );\n* // returns 'Int8Array'\n*\n* fn = fname( Object.prototype.toString );\n* // returns 'toString'\n*\n* fn = fname( function(){} );\n* // returns ''\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport REGEXP from './regexp.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'REGEXP', REGEXP );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from array constructors to data types...\nvar ctor2dtypes = {\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default ctor2dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint32Array = ( typeof Uint32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint32Array\n*\n* @example\n* import Uint32Array from '@stdlib/array-uint32';\n*\n* var bool = isUint32Array( new Uint32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint32Array( [] );\n* // returns false\n*/\nfunction isUint32Array( value ) {\n\treturn (\n\t\t( hasUint32Array && value instanceof Uint32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum unsigned 32-bit integer.\n*\n* @module @stdlib/constants-uint32-max\n* @type {uinteger32}\n*\n* @example\n* import UINT32_MAX from '@stdlib/constants-uint32-max';\n* // returns 4294967295\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 11111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar UINT32_MAX = 4294967295;\n\n\n// EXPORTS //\n\nexport default UINT32_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint32Array === 'function' ) ? Uint32Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint32Array === 'function' ) ? Uint32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 32-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array-uint32\n*\n* @example\n* import ctor from '@stdlib/array-uint32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint32ArraySupport from '@stdlib/assert-has-uint32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint32Array from '@stdlib/assert-is-uint32array';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\nimport GlobalUint32Array from './uint32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint32Array` support\n*\n* @example\n* var bool = hasUint32ArraySupport();\n* // returns \n*/\nfunction hasUint32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT32_MAX+1, UINT32_MAX+2 ];\n\t\tarr = new GlobalUint32Array( arr );\n\t\tbool = (\n\t\t\tisUint32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT32_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 32-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasInt32Array = ( typeof Int32Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int32Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int32Array\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var bool = isInt32Array( new Int32Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt32Array( [] );\n* // returns false\n*/\nfunction isInt32Array( value ) {\n\treturn (\n\t\t( hasInt32Array && value instanceof Int32Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int32Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt32Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum signed 32-bit integer.\n*\n* @module @stdlib/constants-int32-max\n* @type {integer32}\n*\n* @example\n* import INT32_MAX from '@stdlib/constants-int32-max';\n* // returns 2147483647\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{31} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111111111111111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 2147483647\n*/\nvar INT32_MAX = 2147483647|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum signed 32-bit integer.\n*\n* @module @stdlib/constants-int32-min\n* @type {integer32}\n*\n* @example\n* import INT32_MIN from '@stdlib/constants-int32-min';\n* // returns -2147483648\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 32-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{31})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -2147483648\n*/\nvar INT32_MIN = -2147483648|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT32_MIN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Int32Array === 'function' ) ? Int32Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int32Array === 'function' ) ? Int32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array-int32\n*\n* @example\n* import ctor from '@stdlib/array-int32';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt32ArraySupport from '@stdlib/assert-has-int32array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt32Array from '@stdlib/assert-is-int32array';\nimport INT32_MAX from '@stdlib/constants-int32-max';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport GlobalInt32Array from './int32array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int32Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int32Array` support\n*\n* @example\n* var bool = hasInt32ArraySupport();\n* // returns \n*/\nfunction hasInt32ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt32Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt32Array( [ 1, 3.14, -3.14, INT32_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt32Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT32_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt32ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint16Array = ( typeof Uint16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint16Array\n*\n* @example\n* import Uint16Array from '@stdlib/array-uint16';\n*\n* var bool = isUint16Array( new Uint16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint16Array( [] );\n* // returns false\n*/\nfunction isUint16Array( value ) {\n\treturn (\n\t\t( hasUint16Array && value instanceof Uint16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum unsigned 16-bit integer.\n*\n* @module @stdlib/constants-uint16-max\n* @type {integer32}\n*\n* @example\n* import UINT16_MAX from '@stdlib/constants-uint16-max';\n* // returns 65535\n*/\n\n\n// MAIN //\n\n/**\n* Maximum unsigned 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{16} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 1111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 65535\n*/\nvar UINT16_MAX = 65535|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default UINT16_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint16Array === 'function' ) ? Uint16Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint16Array === 'function' ) ? Uint16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 16-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array-uint16\n*\n* @example\n* import ctor from '@stdlib/array-uint16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint16ArraySupport from '@stdlib/assert-has-uint16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint16Array from '@stdlib/assert-is-uint16array';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport GlobalUint16Array from './uint16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint16Array` support\n*\n* @example\n* var bool = hasUint16ArraySupport();\n* // returns \n*/\nfunction hasUint16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = [ 1, 3.14, -3.14, UINT16_MAX+1, UINT16_MAX+2 ];\n\t\tarr = new GlobalUint16Array( arr );\n\t\tbool = (\n\t\t\tisUint16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === UINT16_MAX-2 && // truncation and wrap around\n\t\t\tarr[ 3 ] === 0 && // wrap around\n\t\t\tarr[ 4 ] === 1 // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 16-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasInt16Array = ( typeof Int16Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int16Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int16Array\n*\n* @example\n* import Int16Array from '@stdlib/array-int16';\n*\n* var bool = isInt16Array( new Int16Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt16Array( [] );\n* // returns false\n*/\nfunction isInt16Array( value ) {\n\treturn (\n\t\t( hasInt16Array && value instanceof Int16Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int16Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt16Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum signed 16-bit integer.\n*\n* @module @stdlib/constants-int16-max\n* @type {integer32}\n*\n* @example\n* import INT16_MAX from '@stdlib/constants-int16-max';\n* // returns 32767\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* 2^{15} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0111111111111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 32767\n*/\nvar INT16_MAX = 32767|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum signed 16-bit integer.\n*\n* @module @stdlib/constants-int16-min\n* @type {integer32}\n*\n* @example\n* import INT16_MIN from '@stdlib/constants-int16-min';\n* // returns -32768\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 16-bit integer.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* -(2^{15})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 1000000000000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -32768\n*/\nvar INT16_MIN = -32768|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT16_MIN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Int16Array === 'function' ) ? Int16Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int16Array === 'function' ) ? Int16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array-int16\n*\n* @example\n* import ctor from '@stdlib/array-int16';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt16ArraySupport from '@stdlib/assert-has-int16array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt16Array from '@stdlib/assert-is-int16array';\nimport INT16_MAX from '@stdlib/constants-int16-max';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport GlobalInt16Array from './int16array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int16Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int16Array` support\n*\n* @example\n* var bool = hasInt16ArraySupport();\n* // returns \n*/\nfunction hasInt16ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt16Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt16Array( [ 1, 3.14, -3.14, INT16_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt16Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT16_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt16ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasUint8ClampedArray = ( typeof Uint8ClampedArray === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Uint8ClampedArray.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a Uint8ClampedArray\n*\n* @example\n* import Uint8ClampedArray from '@stdlib/array-uint8c';\n*\n* var bool = isUint8ClampedArray( new Uint8ClampedArray( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isUint8ClampedArray( [] );\n* // returns false\n*/\nfunction isUint8ClampedArray( value ) {\n\treturn (\n\t\t( hasUint8ClampedArray && value instanceof Uint8ClampedArray ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Uint8ClampedArray]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isUint8ClampedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @module @stdlib/array-uint8c\n*\n* @example\n* import ctor from '@stdlib/array-uint8c';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasUint8ClampedArraySupport from '@stdlib/assert-has-uint8clampedarray-support'; // eslint-disable-line id-length\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ClampedArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isUint8ClampedArray from '@stdlib/assert-is-uint8clampedarray';\nimport GlobalUint8ClampedArray from './uint8clampedarray.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Uint8ClampedArray` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Uint8ClampedArray` support\n*\n* @example\n* var bool = hasUint8ClampedArraySupport();\n* // returns \n*/\nfunction hasUint8ClampedArraySupport() { // eslint-disable-line id-length\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalUint8ClampedArray !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalUint8ClampedArray( [ -1, 0, 1, 3.14, 4.99, 255, 256 ] );\n\t\tbool = (\n\t\t\tisUint8ClampedArray( arr ) &&\n\t\t\tarr[ 0 ] === 0 && // clamped\n\t\t\tarr[ 1 ] === 0 &&\n\t\t\tarr[ 2 ] === 1 &&\n\t\t\tarr[ 3 ] === 3 && // round to nearest\n\t\t\tarr[ 4 ] === 5 && // round to nearest\n\t\t\tarr[ 5 ] === 255 &&\n\t\t\tarr[ 6 ] === 255 // clamped\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasUint8ClampedArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasInt8Array = ( typeof Int8Array === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an Int8Array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an Int8Array\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var bool = isInt8Array( new Int8Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isInt8Array( [] );\n* // returns false\n*/\nfunction isInt8Array( value ) {\n\treturn (\n\t\t( hasInt8Array && value instanceof Int8Array ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object Int8Array]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInt8Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum signed 8-bit integer.\n*\n* @module @stdlib/constants-int8-max\n* @type {integer32}\n*\n* @example\n* import INT8_MAX from '@stdlib/constants-int8-max';\n* // returns 127\n*/\n\n\n// MAIN //\n\n/**\n* Maximum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* 2^{7} - 1\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 01111111\n* ```\n*\n* @constant\n* @type {integer32}\n* @default 127\n*/\nvar INT8_MAX = 127|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_MAX;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum signed 8-bit integer.\n*\n* @module @stdlib/constants-int8-min\n* @type {integer32}\n*\n* @example\n* import INT8_MIN from '@stdlib/constants-int8-min';\n* // returns -128\n*/\n\n\n// MAIN //\n\n/**\n* Minimum signed 8-bit integer.\n*\n* ## Notes\n*\n* The number is given by\n*\n* ```tex\n* -(2^{7})\n* ```\n*\n* which corresponds to the two's complement bit sequence\n*\n* ```binarystring\n* 10000000\n* ```\n*\n* @constant\n* @type {integer32}\n* @default -128\n*/\nvar INT8_MIN = -128|0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default INT8_MIN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Int8Array === 'function' ) ? Int8Array : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int8Array === 'function' ) ? Int8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array-int8\n*\n* @example\n* import ctor from '@stdlib/array-int8';\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasInt8ArraySupport from '@stdlib/assert-has-int8array-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInt8Array from '@stdlib/assert-is-int8array';\nimport INT8_MAX from '@stdlib/constants-int8-max';\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport GlobalInt8Array from './int8array.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Int8Array` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Int8Array` support\n*\n* @example\n* var bool = hasInt8ArraySupport();\n* // returns \n*/\nfunction hasInt8ArraySupport() {\n\tvar bool;\n\tvar arr;\n\n\tif ( typeof GlobalInt8Array !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tarr = new GlobalInt8Array( [ 1, 3.14, -3.14, INT8_MAX+1 ] );\n\t\tbool = (\n\t\t\tisInt8Array( arr ) &&\n\t\t\tarr[ 0 ] === 1 &&\n\t\t\tarr[ 1 ] === 3 && // truncation\n\t\t\tarr[ 2 ] === -3 && // truncation\n\t\t\tarr[ 3 ] === INT8_MIN // wrap around\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasInt8ArraySupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Double-precision floating-point negative infinity.\n*\n* @module @stdlib/constants-float64-ninf\n* @type {number}\n*\n* @example\n* import FLOAT64_NINF from '@stdlib/constants-float64-ninf';\n* // returns -Infinity\n*/\n\n// MODULES //\n\nimport Number from '@stdlib/number-ctor';\n\n\n// MAIN //\n\n/**\n* Double-precision floating-point negative infinity.\n*\n* ## Notes\n*\n* Double-precision floating-point negative infinity has the bit sequence\n*\n* ```binarystring\n* 1 11111111111 00000000000000000000 00000000000000000000000000000000\n* ```\n*\n* @constant\n* @type {number}\n* @default Number.NEGATIVE_INFINITY\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT64_NINF = Number.NEGATIVE_INFINITY;\n\n\n// EXPORTS //\n\nexport default FLOAT64_NINF;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a double-precision floating-point number toward negative infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = floor( -4.2 );\n* // returns -5.0\n*\n* @example\n* var v = floor( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = floor( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = floor( NaN );\n* // returns NaN\n*/\nvar floor = Math.floor; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default floor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// MAIN //\n\n/**\n* Tests if a finite double-precision floating-point number is an integer.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an integer\n*\n* @example\n* var bool = isInteger( 1.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( 3.14 );\n* // returns false\n*/\nfunction isInteger( x ) {\n\treturn (floor(x) === x);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport PINF from '@stdlib/constants-float64-pinf';\nimport NINF from '@stdlib/constants-float64-ninf';\nimport isInt from '@stdlib/math-base-assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a number primitive is an integer value.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a number primitive is an integer value\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tvalue < PINF &&\n\t\tvalue > NINF &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having an integer value\n*\n* @example\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from '@stdlib/assert-is-number';\nimport isInt from './integer.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having an integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having an integer value\n*\n* @example\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isInteger( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisInt( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an integer\n*\n* @example\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isInteger( -3.14 );\n* // returns false\n*\n* @example\n* var bool = isInteger( null );\n* // returns false\n*/\nfunction isInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue >= 0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a nonnegative integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a nonnegative integer value\n*\n* @example\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() >= 0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a nonnegative integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a nonnegative integer\n*\n* @example\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isNonNegativeInteger( null );\n* // returns false\n*/\nfunction isNonNegativeInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isNonNegativeInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an integer.\n*\n* @module @stdlib/assert-is-integer\n*\n* @example\n* import isInteger from '@stdlib/assert-is-integer';\n*\n* var bool = isInteger( 5.0 );\n* // returns true\n*\n* bool = isInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isInteger( -3.14 );\n* // returns false\n*\n* bool = isInteger( null );\n* // returns false\n*\n* @example\n* // Use interface to check for integer primitives...\n* import { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\n*\n* var bool = isInteger( -3.0 );\n* // returns true\n*\n* bool = isInteger( new Number( -3.0 ) );\n* // returns false\n*\n* @example\n* // Use interface to check for integer objects...\n* import { isObject as isInteger } from '@stdlib/assert-is-integer';\n*\n* var bool = isInteger( 3.0 );\n* // returns false\n*\n* bool = isInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a nonnegative integer.\n*\n* @module @stdlib/assert-is-nonnegative-integer\n*\n* @example\n* import isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 5.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isNonNegativeInteger( -5.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( 3.14 );\n* // returns false\n*\n* bool = isNonNegativeInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns true\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\n*\n* var bool = isNonNegativeInteger( 3.0 );\n* // returns false\n*\n* bool = isNonNegativeInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum length of a generic array.\n*\n* @module @stdlib/constants-array-max-array-length\n*\n* @example\n* import MAX_ARRAY_LENGTH from '@stdlib/constants-array-max-array-length';\n* // returns 4294967295\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a generic array.\n*\n* ```tex\n* 2^{32} - 1\n* ```\n*\n* @constant\n* @type {uinteger32}\n* @default 4294967295\n*/\nvar MAX_ARRAY_LENGTH = 4294967295>>>0; // asm type annotation\n\n\n// EXPORTS //\n\nexport default MAX_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-array-max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an array-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is an array-like object\n*\n* @example\n* var bool = isArrayLikeObject( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( { 'length': 10 } );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( 'beep' );\n* // returns false\n*/\nfunction isArrayLikeObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLikeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum length of a typed array.\n*\n* @module @stdlib/constants-array-max-typed-array-length\n*\n* @example\n* import MAX_TYPED_ARRAY_LENGTH from '@stdlib/constants-array-max-typed-array-length';\n* // returns 9007199254740991\n*/\n\n// MAIN //\n\n/**\n* Maximum length of a typed array.\n*\n* ```tex\n* 2^{53} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 9007199254740991\n*/\nvar MAX_TYPED_ARRAY_LENGTH = 9007199254740991;\n\n\n// EXPORTS //\n\nexport default MAX_TYPED_ARRAY_LENGTH;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-array-max-typed-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a collection.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a collection\n*\n* @example\n* var bool = isCollection( [] );\n* // returns true\n*\n* @example\n* var bool = isCollection( {} );\n* // returns false\n*/\nfunction isCollection( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isCollection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasArrayBuffer = ( typeof ArrayBuffer === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is an ArrayBuffer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an ArrayBuffer\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var bool = isArrayBuffer( new ArrayBuffer( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isArrayBuffer( [] );\n* // returns false\n*/\nfunction isArrayBuffer( value ) {\n\treturn (\n\t\t( hasArrayBuffer && value instanceof ArrayBuffer ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object ArrayBuffer]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayBuffer;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArray from '@stdlib/assert-is-array';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an object; e.g., `{}`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an object\n*\n* @example\n* var bool = isObject( {} );\n* // returns true\n*\n* @example\n* var bool = isObject( null );\n* // returns false\n*/\nfunction isObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t!isArray( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array of strings.\n*\n* @module @stdlib/assert-is-string-array\n*\n* @example\n* import isStringArray from '@stdlib/assert-is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', 123 ] );\n* // returns false\n*\n* @example\n* import { primitives as isStringArray } from '@stdlib/assert-is-string-array';\n*\n* var bool = isStringArray( [ 'abc', 'def' ] );\n* // returns true\n*\n* bool = isStringArray( [ 'abc', new String( 'def' ) ] );\n* // returns false\n*\n* @example\n* import { objects as isStringArray } from '@stdlib/assert-is-string-array';\n*\n* var bool = isStringArray( [ new String( 'abc' ), new String( 'def' ) ] );\n* // returns true\n*\n* bool = isStringArray( [ new String( 'abc' ), 'def' ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-function';\nimport isString from '@stdlib/assert-is-string';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isString.isPrimitive );\nvar isObjectArray = arrayfun( isString.isObject );\n\n\n// MAIN //\n\nvar isStringArray = arrayfun( isString );\nsetReadOnly( isStringArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isStringArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isStringArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar RE = /./;\n\n\n// EXPORTS //\n\nexport default RE;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a boolean primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean primitive\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns false\n*/\nfunction isBoolean( value ) {\n\treturn ( typeof value === 'boolean' );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a boolean.\n*\n* @name Boolean\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {(boolean|Boolean)} boolean\n*\n* @example\n* var b = Boolean( null );\n* // returns false\n*\n* b = Boolean( [] );\n* // returns true\n*\n* b = Boolean( {} );\n* // returns true\n*\n* @example\n* var b = new Boolean( false );\n* // returns \n*/\nvar Bool = Boolean; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// eslint-disable-next-line stdlib/no-redeclare\nvar toString = Boolean.prototype.toString; // non-generic\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport Boolean from '@stdlib/boolean-ctor';\nimport test from './try2serialize.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean object\n*\n* @example\n* var bool = isBoolean( true );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof Boolean ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object Boolean]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\n\n\n// MAIN //\n\n/**\n* Attempts to serialize a value to a string.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value can be serialized\n*/\nfunction test( value ) {\n\ttry {\n\t\ttoString.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a boolean.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a boolean\n*\n* @example\n* var bool = isBoolean( false );\n* // returns true\n*\n* @example\n* var bool = isBoolean( true );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n*\n* var bool = isBoolean( new Boolean( true ) );\n* // returns true\n*/\nfunction isBoolean( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a boolean.\n*\n* @module @stdlib/assert-is-boolean\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n* import isBoolean from '@stdlib/assert-is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n* import { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\n*\n* var bool = isBoolean( false );\n* // returns true\n*\n* bool = isBoolean( new Boolean( true ) );\n* // returns false\n*\n* @example\n* import Boolean from '@stdlib/boolean-ctor';\n* import { isObject as isBoolean } from '@stdlib/assert-is-boolean';\n*\n* var bool = isBoolean( true );\n* // returns false\n*\n* bool = isBoolean( new Boolean( false ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof self === 'object' ) ? self : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof window === 'object' ) ? window : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof global === 'object' ) ? global : null;\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar obj = ( typeof globalThis === 'object' ) ? globalThis : null; // eslint-disable-line no-undef\n\n\n// EXPORTS //\n\nexport default obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@stdlib/string-format';\nimport getThis from './codegen.js';\nimport Self from './self.js';\nimport Win from './window.js';\nimport Global from './global.js';\nimport GlobalThis from './global_this.js';\n\n\n// MAIN //\n\n/**\n* Returns the global object.\n*\n* ## Notes\n*\n* - Using code generation is the **most** reliable way to resolve the global object; however, doing so is likely to violate content security policies (CSPs) in, e.g., Chrome Apps and elsewhere.\n*\n* @param {boolean} [codegen=false] - boolean indicating whether to use code generation to resolve the global object\n* @throws {TypeError} must provide a boolean\n* @throws {Error} unable to resolve global object\n* @returns {Object} global object\n*\n* @example\n* var g = getGlobal();\n* // returns {...}\n*/\nfunction getGlobal( codegen ) {\n\tif ( arguments.length ) {\n\t\tif ( !isBoolean( codegen ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a boolean. Value: `%s`.', codegen ) );\n\t\t}\n\t\tif ( codegen ) {\n\t\t\treturn getThis();\n\t\t}\n\t\t// Fall through...\n\t}\n\t// Case: 2020 revision of ECMAScript standard\n\tif ( GlobalThis ) {\n\t\treturn GlobalThis;\n\t}\n\t// Case: browsers and web workers\n\tif ( Self ) {\n\t\treturn Self;\n\t}\n\t// Case: browsers\n\tif ( Win ) {\n\t\treturn Win;\n\t}\n\t// Case: Node.js\n\tif ( Global ) {\n\t\treturn Global;\n\t}\n\t// Case: unknown\n\tthrow new Error( 'unexpected error. Unable to resolve global object.' );\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the global object using code generation.\n*\n* @private\n* @returns {Object} global object\n*/\nfunction getGlobal() {\n\treturn new Function( 'return this;' )(); // eslint-disable-line no-new-func, stdlib/require-globals\n}\n\n\n// EXPORTS //\n\nexport default getGlobal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getGlobal from '@stdlib/utils-global';\n\n\n// MAIN //\n\nvar root = getGlobal();\nvar nodeList = root.document && root.document.childNodes;\n\n\n// EXPORTS //\n\nexport default nodeList;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar typedarray = Int8Array; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default typedarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Determine a value's type.\n*\n* @module @stdlib/utils-type-of\n*\n* @example\n* import typeOf from '@stdlib/utils-type-of';\n*\n* var str = typeOf( 'a' );\n* // returns 'string'\n*\n* str = typeOf( 5 );\n* // returns 'number'\n*/\n\n// MODULES //\n\nimport usePolyfill from './check.js';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main = ( usePolyfill() ) ? polyfill : builtin;\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport RE from './fixtures/re.js';\nimport nodeList from './fixtures/nodelist.js';\nimport typedarray from './fixtures/typedarray.js';\n\n\n// MAIN //\n\n/**\n* Checks whether a polyfill is needed when using the `typeof` operator.\n*\n* @private\n* @returns {boolean} boolean indicating whether a polyfill is needed\n*/\nfunction check() {\n\tif (\n\t\t// Chrome 1-12 returns 'function' for regular expression instances (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof):\n\t\ttypeof RE === 'function' ||\n\n\t\t// Safari 8 returns 'object' for typed array and weak map constructors (underscore #1929):\n\t\ttypeof typedarray === 'object' ||\n\n\t\t// PhantomJS 1.9 returns 'function' for `NodeList` instances (underscore #2236):\n\t\ttypeof nodeList === 'function'\n\t) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\treturn ctorName( v ).toLowerCase();\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\n\n\n// NOTES //\n\n/*\n* Built-in `typeof` operator behavior:\n*\n* ```text\n* typeof null => 'object'\n* typeof undefined => 'undefined'\n* typeof 'a' => 'string'\n* typeof 5 => 'number'\n* typeof NaN => 'number'\n* typeof true => 'boolean'\n* typeof false => 'boolean'\n* typeof {} => 'object'\n* typeof [] => 'object'\n* typeof function foo(){} => 'function'\n* typeof function* foo(){} => 'object'\n* typeof Symbol() => 'symbol'\n* ```\n*\n*/\n\n\n// MAIN //\n\n/**\n* Determines a value's type.\n*\n* @param {*} v - input value\n* @returns {string} string indicating the value's type\n*/\nfunction typeOf( v ) {\n\tvar type;\n\n\t// Address `typeof null` => `object` (see http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null):\n\tif ( v === null ) {\n\t\treturn 'null';\n\t}\n\ttype = typeof v;\n\n\t// If the `typeof` operator returned something other than `object`, we are done. Otherwise, we need to check for an internal class name or search for a constructor.\n\tif ( type === 'object' ) {\n\t\treturn ctorName( v ).toLowerCase();\n\t}\n\treturn type;\n}\n\n\n// EXPORTS //\n\nexport default typeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport typeOf from '@stdlib/utils-type-of';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a function.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a function\n*\n* @example\n* function beep() {\n* return 'beep';\n* }\n*\n* var bool = isFunction( beep );\n* // returns true\n*/\nfunction isFunction( value ) {\n\t// Note: cannot use `typeof` directly, as various browser engines incorrectly return `'function'` when operating on non-function objects, such as regular expressions and NodeLists.\n\treturn ( typeOf( value ) === 'function' );\n}\n\n\n// EXPORTS //\n\nexport default isFunction;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport setEnumerableReadOnly from '@stdlib/utils-define-read-only-property';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport format from '@stdlib/string-format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 128-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex128} 128-bit complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex128( real, imag ) {\n\tif ( !( this instanceof Complex128 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tsetEnumerableReadOnly( this, 're', real );\n\tsetEnumerableReadOnly( this, 'im', imag );\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128\n* @readonly\n* @type {string}\n* @default 'Complex128'\n*\n* @example\n* var name = Complex128.name;\n* // returns 'Complex128'\n*/\nsetReadOnly( Complex128, 'name', 'Complex128' );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex128.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex128.prototype, 'BYTES_PER_ELEMENT', 8 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex128.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 16\n*/\nsetReadOnly( Complex128.prototype, 'byteLength', 16 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex128.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex128` instance.\n*\n* @name toJSON\n* @memberof Complex128.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex128', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex128.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex128;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex128';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar fround = ( typeof Math.fround === 'function' ) ? Math.fround : null; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default fround;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float32Array from '@stdlib/array-float32';\n\n\n// VARIABLES //\n\nvar FLOAT32_VIEW = new Float32Array( 1 );\n\n\n// MAIN //\n\n/**\n* Converts a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @param {number} x - double-precision floating-point number\n* @returns {number} nearest single-precision floating-point number\n*\n* @example\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\nfunction float64ToFloat32( x ) {\n\tFLOAT32_VIEW[ 0 ] = x;\n\treturn FLOAT32_VIEW[ 0 ];\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a double-precision floating-point number to the nearest single-precision floating-point number.\n*\n* @module @stdlib/number-float64-base-to-float32\n*\n* @example\n* import float64ToFloat32 from '@stdlib/number-float64-base-to-float32';\n*\n* var y = float64ToFloat32( 1.337 );\n* // returns 1.3370000123977661\n*/\n\n// MODULES //\n\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar float64ToFloat32;\nif ( typeof builtin === 'function' ) {\n\tfloat64ToFloat32 = builtin;\n} else {\n\tfloat64ToFloat32 = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default float64ToFloat32;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport setEnumerableReadOnly from '@stdlib/utils-define-read-only-property';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport float64ToFloat32 from '@stdlib/number-float64-base-to-float32';\nimport format from '@stdlib/string-format';\nimport toStr from './tostring.js';\nimport toJSON from './tojson.js';\n\n\n// MAIN //\n\n/**\n* 64-bit complex number constructor.\n*\n* @constructor\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @throws {TypeError} must invoke using the `new` keyword\n* @throws {TypeError} real component must be a number\n* @throws {TypeError} imaginary component must be a number\n* @returns {Complex64} 64-bit complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n* // returns \n*/\nfunction Complex64( real, imag ) {\n\tif ( !( this instanceof Complex64 ) ) {\n\t\tthrow new TypeError( 'invalid invocation. Constructor must be called with the `new` keyword.' );\n\t}\n\tif ( !isNumber( real ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Real component must be a number. Value: `%s`.', real ) );\n\t}\n\tif ( !isNumber( imag ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Imaginary component must be a number. Value: `%s`.', imag ) );\n\t}\n\tsetEnumerableReadOnly( this, 're', float64ToFloat32( real ) );\n\tsetEnumerableReadOnly( this, 'im', float64ToFloat32( imag ) );\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64\n* @readonly\n* @type {string}\n* @default 'Complex64'\n*\n* @example\n* var name = Complex64.name;\n* // returns 'Complex64'\n*/\nsetReadOnly( Complex64, 'name', 'Complex64' );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var nbytes = Complex64.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Size (in bytes) of each component.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} size of each component\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.BYTES_PER_ELEMENT;\n* // returns 4\n*/\nsetReadOnly( Complex64.prototype, 'BYTES_PER_ELEMENT', 4 );\n\n/**\n* Length (in bytes) of a complex number.\n*\n* @name byteLength\n* @memberof Complex64.prototype\n* @type {integer}\n* @returns {integer} byte length\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var nbytes = z.byteLength;\n* // returns 8\n*/\nsetReadOnly( Complex64.prototype, 'byteLength', 8 );\n\n/**\n* Serializes a complex number as a string.\n*\n* @name toString\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {string} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var str = z.toString();\n* // returns '5 + 3i'\n*/\nsetReadOnly( Complex64.prototype, 'toString', toStr );\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Complex64` instance.\n*\n* @name toJSON\n* @memberof Complex64.prototype\n* @type {Function}\n* @returns {Object} serialized complex number\n*\n* @example\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var obj = z.toJSON();\n* // returns { 'type': 'Complex64', 're': 5.0, 'im': 3.0 }\n*/\nsetReadOnly( Complex64.prototype, 'toJSON', toJSON );\n\n\n// EXPORTS //\n\nexport default Complex64;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex-float64-ctor';\nimport Complex64 from '@stdlib/complex-float32-ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a complex number-like object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex number-like object.\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var x = new Complex128( 4.0, 2.0 );\n* var bool = isComplexLike( x );\n* // returns true\n*\n* x = new Complex64( 4.0, 2.0 );\n* bool = isComplexLike( x );\n* // returns true\n*/\nfunction isComplexLike( value ) {\n\tif ( value instanceof Complex128 || value instanceof Complex64 ) {\n\t\treturn true;\n\t}\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.re === 'number' &&\n\t\ttypeof value.im === 'number'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isComplexLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a finite numeric value is an even number.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is an even number\n*\n* @example\n* var bool = isEven( 5.0 );\n* // returns false\n*\n* @example\n* var bool = isEven( -2.0 );\n* // returns true\n*\n* @example\n* var bool = isEven( 0.0 );\n* // returns true\n*\n* @example\n* var bool = isEven( NaN );\n* // returns false\n*/\nfunction isEven( x ) {\n\treturn isInteger( x/2.0 );\n}\n\n\n// EXPORTS //\n\nexport default isEven;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport Symbol from '@stdlib/symbol-ctor';\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.iterator` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.iterator` support\n*\n* @example\n* var bool = hasIteratorSymbolSupport();\n* // returns \n*/\nfunction hasIteratorSymbolSupport() {\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol' &&\n\t\thasOwnProp( Symbol, 'iterator' ) &&\n\t\ttypeof Symbol.iterator === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasIteratorSymbolSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a string.\n*\n* @private\n* @returns {string} serialized complex number\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar str = '' + this.re;\n\tif ( this.im < 0 ) {\n\t\tstr += ' - ' + (-this.im);\n\t} else {\n\t\tstr += ' + ' + this.im;\n\t}\n\tstr += 'i';\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serializes a complex number as a JSON object.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out = {};\n\tout.type = 'Complex64';\n\tout.re = this.re;\n\tout.im = this.im;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\n\n\n// MAIN //\n\n/**\n* Iterator symbol.\n*\n* @name IteratorSymbol\n* @constant\n* @type {(symbol|null)}\n*\n* @example\n* function iterator() {\n* var it;\n* var i;\n*\n* i = -1;\n*\n* it = {};\n* it.next = next;\n* it.return = done;\n*\n* if ( IteratorSymbol ) {\n* it[ IteratorSymbol ] = iterator;\n* }\n* return it;\n*\n* function next() {\n* i += 1;\n* return {\n* 'value': i,\n* 'done': false\n* };\n* }\n*\n* function done( value ) {\n* if ( arguments.length === 0 ) {\n* return {\n* 'done': true\n* };\n* }\n* return {\n* 'value': value,\n* 'done': true\n* };\n* }\n* }\n*\n* var obj = iterator();\n*/\nvar IteratorSymbol = ( hasIteratorSymbolSupport() ) ? Symbol.iterator : null;\n\n\n// EXPORTS //\n\nexport default IteratorSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-only accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - accessor\n*\n* @example\n* function getter() {\n* return 'bar';\n* }\n*\n* var obj = {};\n*\n* setNonEnumerableReadOnlyAccessor( obj, 'foo', getter );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setNonEnumerableReadOnlyAccessor( obj, prop, getter ) { // eslint-disable-line id-length\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'get': getter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadOnlyAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the real component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the imaginary component of a single-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var z = new Complex64( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport isArray from '@stdlib/assert-is-array';\nimport { primitives as isStringArray } from '@stdlib/assert-is-string-array';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport isFunction from '@stdlib/assert-is-function';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isEven from '@stdlib/math-base-assert-is-even';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport Float32Array from '@stdlib/array-float32';\nimport Complex64 from '@stdlib/complex-float32-ctor';\nimport format from '@stdlib/string-format';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\nimport floor from '@stdlib/math-base-special-floor';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float32Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex64Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex64Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex128Array...\n\t\tvalue.name === 'Complex128Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float32Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex64} complex number\n*/\nfunction getComplex64( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex64( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 64-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `8`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `8`\n* @throws {TypeError} view length must be a positive multiple of `8`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} complex number array\n*\n* @example\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex64Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex64Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex64Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex64Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex64Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex64Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float32Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float32Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float32Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float32Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float32Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) ); // FIXME: `buf` is what is returned from above, NOT the original value\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var nbytes = Complex64Array.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64Array\n* @readonly\n* @type {string}\n* @default 'Complex64Array'\n*\n* @example\n* var str = Complex64Array.name;\n* // returns 'Complex64Array'\n*/\nsetReadOnly( Complex64Array, 'name', 'Complex64Array' );\n\n/**\n* Creates a new 64-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex64Array\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function clbk( v ) {\n* return new Complex64( realf(v)*2.0, imagf(v)*2.0 );\n* }\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex64Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of %u. Length: `%u`.', 2, len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 64-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex64Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex64Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = realf( z );\n* // returns 9.0\n*\n* im = imagf( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 80\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array.prototype, 'BYTES_PER_ELEMENT', Complex64Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} modified array\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex64( 1.0, 1.0 ), 0 );\n* arr.set( new Complex64( 2.0, 2.0 ), 1 );\n* arr.set( new Complex64( 3.0, 3.0 ), 2 );\n* arr.set( new Complex64( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = [\n* new Complex64( 1.0, 1.0 ),\n* new Complex64( 2.0, 2.0 ),\n* new Complex64( 3.0, 3.0 )\n* ];\n* arr = new Complex64Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': [ i, getComplex64( buf, i ) ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex64Array} modified array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.fill( new Complex64( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = realf( value );\n\tim = imagf( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex64Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex64|void)} array element or undefined\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex64( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex64Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex64( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex64( this._buffer, idx );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex64( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex64( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex64( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 10 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex64( 4.0, -4.0 ), -3 );\n* // returns -1\n*/\nsetReadOnly( Complex64Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex64( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex64( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex64( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex64Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = realf( searchElement );\n\tim = imagf( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( v, i ) {\n* return new Complex64( 2.0*realf( v ), 2.0*imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 2\n*\n* var im = imagf( z );\n* // returns -2\n*/\nsetReadOnly( Complex64Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex64( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = realf( v );\n\t\t\toutbuf[ (2*i)+1 ] = imagf( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import caddf from '@stdlib/complex-float32-base-add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import caddf from '@stdlib/complex-float32-base-add';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( caddf );\n* // returns \n*\n* var re = realf( z );\n* // returns 6.0\n*\n* var im = imagf( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex64( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex64( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = realf( value );\n\t\tbuf[ idx+1 ] = imagf( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float32Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float32Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = realf( v );\n\t\t\tbuf[ idx+1 ] = imagf( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} complex number array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function predicate( v ) {\n* return ( realf( v ) === imagf( v ) );\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex64( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = realf( tmp[i] );\n\t\tbuf[ j+1 ] = imagf( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 5.0\n*\n* im = imagf( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + (begin*BYTES_PER_ELEMENT);\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} reversed array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 3.0\n*\n* var im = imagf( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex64Array} sorted array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = realf( a );\n* re2 = realf( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imagf( a );\n* im2 = imagf( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 1.0\n*\n* var im = imagf( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = realf( z );\n* // returns 2.0\n*\n* im = imagf( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = realf( z );\n* // returns 3.0\n*\n* im = imagf( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex64Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex64( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex64Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex64Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex64( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* var arr = new Complex64Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = realf( v );\n* // returns 2.0\n*\n* im = imagf( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': getComplex64( buf, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex64Array} new typed array\n*\n* @example\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n*\n* var arr = new Complex64Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex64( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 4.0\n*\n* var im = imagf( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex64Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = realf( value );\n\tbuf[ (2*index)+1 ] = imagf( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex64Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float32Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float32Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = realf( v );\n\t\tbuf[ j+1 ] = imagf( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the real component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} real component\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var re = real( z );\n* // returns 5.0\n*/\nfunction real( z ) {\n\treturn z.re;\n}\n\n\n// EXPORTS //\n\nexport default real;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the imaginary component of a double-precision complex floating-point number.\n*\n* @param {Complex} z - complex number\n* @returns {number} imaginary component\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var z = new Complex128( 5.0, 3.0 );\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nfunction imag( z ) {\n\treturn z.im;\n}\n\n\n// EXPORTS //\n\nexport default imag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport format from '@stdlib/string-format';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport realf from '@stdlib/complex-float32-real';\nimport imagf from '@stdlib/complex-float32-imag';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport isArray from '@stdlib/assert-is-array';\nimport { primitives as isStringArray } from '@stdlib/assert-is-string-array';\nimport isString from '@stdlib/assert-is-string';\nimport isFunction from '@stdlib/assert-is-function';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isEven from '@stdlib/math-base-assert-is-even';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport Float64Array from '@stdlib/array-float64';\nimport Complex128 from '@stdlib/complex-float64-ctor';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\nimport floor from '@stdlib/math-base-special-floor';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport format from '@stdlib/string-format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex128Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex128Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex64Array...\n\t\tvalue.name === 'Complex64Array'\n\t);\n}\n\n/**\n* Retrieves a complex number from a complex number array buffer.\n*\n* @private\n* @param {Float64Array} buf - array buffer\n* @param {NonNegativeInteger} idx - element index\n* @returns {Complex128} complex number\n*/\nfunction getComplex128( buf, idx ) {\n\tidx *= 2;\n\treturn new Complex128( buf[ idx ], buf[ idx+1 ] );\n}\n\n\n// MAIN //\n\n/**\n* 128-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `16`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `16`\n* @throws {TypeError} view length must be a positive multiple of `16`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} complex number array\n*\n* @example\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex128Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex128Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex128Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex128Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex128Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex128Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float64Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float64Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float64Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float64Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float64Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var nbytes = Complex128Array.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128Array\n* @readonly\n* @type {string}\n* @default 'Complex128Array'\n*\n* @example\n* var name = Complex128Array.name;\n* // returns 'Complex128Array'\n*/\nsetReadOnly( Complex128Array, 'name', 'Complex128Array' );\n\n/**\n* Creates a new 128-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex128Array\n* @type {Function}\n* @param {(Collection|Object)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function clbk( v ) {\n* return new Complex128( real(v)*2.0, imag(v)*2.0 );\n* }\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex128Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 128-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex128Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex128Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide an integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.at( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 9.0, -9.0 ], 9 );\n*\n* z = arr.at( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.at( -1 );\n* // returns \n*\n* re = real( z );\n* // returns 9.0\n*\n* im = imag( z );\n* // returns -9.0\n*\n* z = arr.at( 100 );\n* // returns undefined\n*\n* z = arr.at( -100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'at', function at( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx < 0 ) {\n\t\tidx += this._length;\n\t}\n\tif ( idx < 0 || idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 160\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array.prototype, 'BYTES_PER_ELEMENT', Complex128Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} modified array\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex128( 1.0, 1.0 ), 0 );\n* arr.set( new Complex128( 2.0, 2.0 ), 1 );\n* arr.set( new Complex128( 3.0, 3.0 ), 2 );\n* arr.set( new Complex128( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = [\n* new Complex128( 1.0, 1.0 ),\n* new Complex128( 2.0, 2.0 ),\n* new Complex128( 3.0, 3.0 )\n* ];\n* arr = new Complex128Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex128( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {Complex128Array} modified array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.fill( new Complex128( 1.0, 1.0 ), 1 );\n*\n* var z = arr.get( 1 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*\n* z = arr.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tre = real( value );\n\tim = imag( value );\n\tfor ( i = start; i < end; i++ ) {\n\t\tidx = 2*i;\n\t\tbuf[ idx ] = re;\n\t\tbuf[ idx+1 ] = im;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 1\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\tout.push( z );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.find( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var idx = arr.findIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( Complex128Array.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {(Complex128|void)} array element or undefined\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.findLast( predicate );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn z;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var idx = arr.findLastIndex( predicate );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tz = getComplex128( buf, i );\n\t\tif ( predicate.call( thisArg, z, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( Complex128Array.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\tvar z;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tz = getComplex128( buf, i );\n\t\tfcn.call( thisArg, z, i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* var arr = new Complex128Array( 10 );\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'get', function get( idx ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn getComplex128( this._buffer, idx );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a provided value\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var bool = arr.includes( new Complex128( 3.0, -3.0 ) );\n* // returns true\n*\n* bool = arr.includes( new Complex128( 3.0, -3.0 ), 3 );\n* // returns false\n*\n* bool = arr.includes( new Complex128( 4.0, -4.0 ), -3 );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var idx = arr.indexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 2\n*\n* idx = arr.indexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns -1\n*\n* idx = arr.indexOf( new Complex128( 4.0, -4.0 ), -3 );\n* // returns 3\n*/\nsetReadOnly( Complex128Array.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.join();\n* // returns '1 + 1i,2 + 2i'\n*\n* str = arr.join( '/' );\n* // returns '1 + 1i/2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'join', function join( separator ) {\n\tvar out;\n\tvar buf;\n\tvar sep;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tsep = ',';\n\t} else if ( isString( separator ) ) {\n\t\tsep = separator;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( sep );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {ComplexLike} searchElement - element to find\n* @param {integer} [fromIndex] - index at which to start searching backward (inclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a complex number\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 3.0, -3.0 ], 4 );\n*\n* var idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ) );\n* // returns 4\n*\n* idx = arr.lastIndexOf( new Complex128( 3.0, -3.0 ), 3 );\n* // returns 2\n*\n* idx = arr.lastIndexOf( new Complex128( 5.0, -5.0 ), 3 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( new Complex128( 2.0, -2.0 ), -3 );\n* // returns 1\n*/\nsetReadOnly( Complex128Array.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar idx;\n\tvar re;\n\tvar im;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isComplexLike( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a complex number. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tre = real( searchElement );\n\tim = imag( searchElement );\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tidx = 2 * i;\n\t\tif ( re === buf[ idx ] && im === buf[ idx+1 ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function scale( v, i ) {\n* return new Complex128( 2.0*real( v ), 2.0*imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var out = arr.map( scale );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns -2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = fcn.call( thisArg, getComplex128( buf, i ), i, this );\n\t\tif ( isComplexLike( v ) ) {\n\t\t\toutbuf[ 2*i ] = real( v );\n\t\t\toutbuf[ (2*i)+1 ] = imag( v );\n\t\t} else if ( isArrayLikeObject( v ) && v.length === 2 ) {\n\t\t\toutbuf[ 2*i ] = v[ 0 ];\n\t\t\toutbuf[ (2*i)+1 ] = v[ 1 ];\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t}\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n* import cadd from '@stdlib/complex-float64-base-add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduce( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, 0 );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n* import cadd from '@stdlib/complex-float64-base-add';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var z = arr.reduceRight( cadd );\n* // returns \n*\n* var re = real( z );\n* // returns 6.0\n*\n* var im = imag( z );\n* // returns 6.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar acc;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len-1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = getComplex128( buf, len-1 );\n\t\ti = len-2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tv = getComplex128( buf, i );\n\t\tacc = reducer( acc, v, i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ (2*i) ];\n\t\tbuf[ (2*i) ] = buf[ (2*j) ];\n\t\tbuf[ (2*j) ] = tmp;\n\t\ttmp = buf[ (2*i)+1 ];\n\t\tbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t\tbuf[ (2*j)+1 ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n* @name set\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = real( value );\n\t\tbuf[ idx+1 ] = imag( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float64Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float64Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = real( v );\n\t\t\tbuf[ idx+1 ] = imag( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex128Array} complex number array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* z = out.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'slice', function slice( start, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar idx;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tstart = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( start < end ) {\n\t\toutlen = end - start;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\tidx = 2*(i+start);\n\t\toutbuf[ 2*i ] = buf[ idx ];\n\t\toutbuf[ (2*i)+1 ] = buf[ idx+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function predicate( v ) {\n* return ( real( v ) === imag( v ) );\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, getComplex128( buf, i ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'sort', function sort( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = 2 * i;\n\t\tbuf[ j ] = real( tmp[i] );\n\t\tbuf[ j+1 ] = imag( tmp[i] );\n\t}\n\treturn this;\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {Complex64Array} subarray\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 5 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n* arr.set( [ 3.0, -3.0 ], 2 );\n* arr.set( [ 4.0, -4.0 ], 3 );\n* arr.set( [ 5.0, -5.0 ], 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var z = subarr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 5.0\n*\n* im = imag( z );\n* // returns -5.0\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* z = subarr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = subarr.get( len-1 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toLocaleString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} reversed array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 3.0\n*\n* var im = imag( z );\n* // returns 3.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns 2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns 1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = len - i - 1;\n\t\toutbuf[ (2*i) ] = buf[ (2*j) ];\n\t\toutbuf[ (2*i)+1 ] = buf[ (2*j)+1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {Function} compareFcn - comparison function\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be a function\n* @returns {Complex128Array} sorted array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function compare( a, b ) {\n* var re1;\n* var re2;\n* var im1;\n* var im2;\n* re1 = real( a );\n* re2 = real( b );\n* if ( re1 < re2 ) {\n* return -1;\n* }\n* if ( re1 > re2 ) {\n* return 1;\n* }\n* im1 = imag( a );\n* im2 = imag( b );\n* if ( im1 < im2 ) {\n* return -1;\n* }\n* if ( im1 > im2 ) {\n* return 1;\n* }\n* return 0;\n* }\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 3.0, -3.0 ], 0 );\n* arr.set( [ 1.0, -1.0 ], 1 );\n* arr.set( [ 2.0, -2.0 ], 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 1.0\n*\n* var im = imag( z );\n* // returns -1.0\n*\n* z = out.get( 1 );\n* // returns \n*\n* re = real( z );\n* // returns 2.0\n*\n* im = imag( z );\n* // returns -2.0\n*\n* z = out.get( 2 );\n* // returns \n*\n* re = real( z );\n* // returns 3.0\n*\n* im = imag( z );\n* // returns -3.0\n*/\nsetReadOnly( Complex128Array.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar tmp;\n\tvar buf;\n\tvar len;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\ttmp = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\ttmp.push( getComplex128( buf, i ) );\n\t}\n\ttmp.sort( compareFcn );\n\treturn new Complex128Array( tmp );\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {string} string representation\n*\n* @example\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n*\n* var str = arr.toString();\n* // returns '1 + 1i,2 + 2i'\n*/\nsetReadOnly( Complex128Array.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( getComplex128( buf, i ).toString() );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* var arr = new Complex128Array( 2 );\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n* arr.set( [ 2.0, -2.0 ], 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns \n*\n* var re = real( v );\n* // returns 1.0\n*\n* var im = imag( v );\n* // returns -1.0\n*\n* v = iter.next().value;\n* // returns \n*\n* re = real( v );\n* // returns 2.0\n*\n* im = imag( v );\n* // returns -2.0\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': getComplex128( buf, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {ComplexLike} value - new value\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a complex number\n* @returns {Complex128Array} new typed array\n*\n* @example\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var arr = new Complex128Array( 3 );\n*\n* arr.set( [ 1.0, 1.0 ], 0 );\n* arr.set( [ 2.0, 2.0 ], 1 );\n* arr.set( [ 3.0, 3.0 ], 2 );\n*\n* var out = arr.with( 0, new Complex128( 4.0, 4.0 ) );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 4.0\n*\n* var im = imag( z );\n* // returns 4.0\n*/\nsetReadOnly( Complex128Array.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isComplexLike( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a complex number. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tbuf[ 2*index ] = real( value );\n\tbuf[ (2*index)+1 ] = imag( value );\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default Complex128Array;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float64Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float64Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = real( v );\n\t\tbuf[ j+1 ] = imag( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( Boolean( v.value ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport format from '@stdlib/string-format';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport { primitives as isStringArray } from '@stdlib/assert-is-string-array';\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Boolean from '@stdlib/boolean-ctor';\nimport getter from '@stdlib/array-base-getter';\nimport floor from '@stdlib/math-base-special-floor';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport format from '@stdlib/string-format';\nimport fromIterator from './from_iterator.js';\nimport fromIteratorMap from './from_iterator_map.js';\nimport fromArray from './from_array.js';\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Uint8Array.BYTES_PER_ELEMENT;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a boolean typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean typed array constructor\n*/\nfunction isBooleanArrayConstructor( value ) {\n\treturn ( value === BooleanArray );\n}\n\n\n// MAIN //\n\n/**\n* Boolean array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new BooleanArray( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new BooleanArray( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 16\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 8\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new BooleanArray( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction BooleanArray() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof BooleanArray) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new BooleanArray();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new BooleanArray( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new BooleanArray( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new BooleanArray( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Uint8Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isCollection( arg ) ) {\n\t\t\tbuf = fromArray( new Uint8Array( arg.length ), arg );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( fromIterator( buf ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tbuf = new Uint8Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( buf, byteOffset, len );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var nbytes = BooleanArray.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof BooleanArray\n* @readonly\n* @type {string}\n* @default 'BooleanArray'\n*\n* @example\n* var str = BooleanArray.name;\n* // returns 'BooleanArray'\n*/\nsetReadOnly( BooleanArray, 'name', 'BooleanArray' );\n\n/**\n* Creates a new boolean array from an array-like object or an iterable.\n*\n* @name from\n* @memberof BooleanArray\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.from( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* function clbk( v ) {\n* return !v;\n* }\n*\n* var arr = BooleanArray.from( [ true, false ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( BooleanArray, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tbuf[ i ] = Boolean( clbk.call( thisArg, get( src, i ), i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tlen = tmp.length;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new boolean array from a variable number of arguments.\n*\n* @name of\n* @memberof BooleanArray\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.of( true, true, true, true );\n* // returns \n*\n* var len = arr.length;\n* // returns 4\n*/\nsetReadOnly( BooleanArray, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element located at integer position (index) `i`, with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide an integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.at( 0 );\n* // returns true\n*\n* v = arr.at( -1 );\n* // returns true\n*\n* v = arr.at( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'at', function at( idx ) {\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tif ( idx < 0 ) {\n\t\tidx += len;\n\t}\n\tif ( idx < 0 || idx >= len ) {\n\t\treturn;\n\t}\n\treturn Boolean( buf[ idx ] );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray.prototype, 'BYTES_PER_ELEMENT', BooleanArray.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 4 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n* arr.set( true, 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* var v = arr.get( 2 );\n* // returns true\n*\n* v = arr.get( 3 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target, start );\n\t} else {\n\t\tthis._buffer.copyWithin( target, start, arguments[2] );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var it = arr.entries();\n*\n* var v = it.next().value;\n* // returns [ 0, true ]\n*\n* v = it.next().value;\n* // returns [ 1, false ]\n*\n* v = it.next().value;\n* // returns [ 2, true ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': [ i, Boolean( buf[ i ] ) ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.fill( true, 1 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar val;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tif ( value ) {\n\t\tval = 1;\n\t} else {\n\t\tval = 0;\n\t}\n\tfor ( i = start; i < end; i++ ) {\n\t\tbuf[ i ] = val;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* function predicate( v ) {\n* return ( v === true );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 2\n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\tout.push( v );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.find( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findIndex( predicate );\n* // returns 0\n*/\nsetReadOnly( BooleanArray.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLast( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLastIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( BooleanArray.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tfcn.call( thisArg, Boolean( buf[ i ] ), i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'get', function get( idx ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn Boolean( this._buffer[ idx ] );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a value\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var bool = arr.includes( true );\n* // returns true\n*\n* bool = arr.includes( false, 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.indexOf( true );\n* // returns 0\n*\n* idx = arr.indexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.indexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.join();\n* // returns 'true,false,true'\n*\n* str = arr.join( '|' );\n* // returns 'true|false|true'\n*/\nsetReadOnly( BooleanArray.prototype, 'join', function join( separator ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length > 0 ) {\n\t\tif ( !isString( separator ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t\t}\n\t} else {\n\t\tseparator = ',';\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( separator );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.lastIndexOf( true );\n* // returns 4\n*\n* idx = arr.lastIndexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} new boolean array\n*\n* @example\n* function invert( v ) {\n* return !v;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.map( invert );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns false\n*\n* z = out.get( 1 );\n* // returns true\n*\n* z = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be a function. Value: `%s`.', fcn );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\toutbuf[ i ] = Boolean( fcn.call( thisArg, Boolean( buf[ i ] ), i, this ) );\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduce( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ 0 ] );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduceRight( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len - 1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ len-1 ] );\n\t\ti = len - 2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ i ];\n\t\tbuf[ i ] = buf[ j ];\n\t\tbuf[ j ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(Collection|BooleanArray|*)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'set', function set( value ) {\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isCollection( value ) ) {\n\t\tN = value.length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tif ( isBooleanArray( value ) ) {\n\t\t\tsbuf = value._buffer; // eslint-disable-line no-underscore-dangle\n\t\t} else {\n\t\t\tsbuf = value;\n\t\t}\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Uint8Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\tbuf[ idx ] = ( sbuf[ i ] ) ? 1 : 0;\n\t\t}\n\t\treturn;\n\t}\n\tif ( idx >= this._length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t}\n\tbuf[ idx ] = ( value ) ? 1 : 0;\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be integer\n* @throws {TypeError} second argument must be integer\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var bool = out.get( 0 );\n* // returns true\n*\n* bool = out.get( len-1 );\n* // returns true\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* bool = out.get( 0 );\n* // returns false\n*\n* bool = out.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'slice', function slice( begin, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar len;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin < end ) {\n\t\toutlen = end - begin;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\toutbuf[ i ] = buf[ i+begin ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( false, 0 );\n* arr.set( true, 1 );\n* arr.set( false, 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.sort( compare );\n*\n* var v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'sort', function sort( compareFcn ) {\n\tvar buf;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length === 0 ) {\n\t\tbuf.sort();\n\t\treturn this;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf.sort( compare );\n\treturn this;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {BooleanArray} subarray\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var bool = subarr.get( 0 );\n* // returns true\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* bool = subarr.get( 0 );\n* // returns false\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toLocaleString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( Boolean( buf[ i ] ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ len - i - 1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*\n* v = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ i ];\n\t}\n\tif ( arguments.length === 0 ) {\n\t\toutbuf.sort();\n\t\treturn out;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\toutbuf.sort( compare );\n\treturn out;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns true\n*\n* v = iter.next().value;\n* // returns false\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': Boolean( buf[ i ] ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {boolean} value - new value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a boolean\n* @returns {BooleanArray} new typed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.with( 0, false );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tif ( value ) {\n\t\tbuf[ index ] = 1;\n\t} else {\n\t\tbuf[ index ] = 0;\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default BooleanArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Fills an output array with \"boolean\" values.\n*\n* @private\n* @param {Uint8Array} buf - output array\n* @param {Array} arr - input array\n* @returns {Uint8Array} output array\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar i;\n\n\tlen = arr.length;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tbuf[ i ] = Boolean( arr[ i ] );\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {Array} output array\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tout.push( Boolean( clbk.call( thisArg, v.value, i ) ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIteratorMap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int8Array from '@stdlib/array-int8';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert-is-buffer';\nimport isArray from '@stdlib/assert-is-array';\nimport constructorName from '@stdlib/utils-constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an array.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn null;\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport getter from '@stdlib/array-base-getter';\nimport setter from '@stdlib/array-base-setter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Converts an array-like to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding array meta data to ensure that internal functions operating on arrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **data**: reference to the input array.\n* - **dtype**: array data type.\n* - **accessorProtocol**: `boolean` indicating whether the input array uses accessors for getting and setting elements.\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing array meta data\n*\n* @example\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\nfunction arraylike2object( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn {\n\t\t\t'data': x,\n\t\t\t'dtype': dt,\n\t\t\t'accessorProtocol': true,\n\t\t\t'accessors': [\n\t\t\t\taccessorGetter( dt ),\n\t\t\t\taccessorSetter( dt )\n\t\t\t]\n\t\t};\n\t}\n\treturn {\n\t\t'data': x,\n\t\t'dtype': dt,\n\t\t'accessorProtocol': false,\n\t\t'accessors': [\n\t\t\tgetter( dt ),\n\t\t\tsetter( dt )\n\t\t]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default arraylike2object;\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// VARIABLES //\n\nvar M = 5;\n\n\n// MAIN //\n\n/**\n* Multiplies `x` by a scalar `alpha`.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {number} alpha - scalar\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} stride - index increment\n* @param {NonNegativeInteger} offset - starting index\n* @returns {NumericArray} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ];\n*\n* gscal( 3, 5.0, arraylike2object( toAccessorArray( x ) ), 1, x.length-3 );\n* // x => [ 1.0, -2.0, 3.0, -20.0, 25.0, -30.0 ]\n*/\nfunction gscal( N, alpha, x, stride, offset ) {\n\tvar xbuf;\n\tvar xget;\n\tvar xset;\n\tvar ix;\n\tvar m;\n\tvar i;\n\n\txbuf = x.data;\n\txget = x.accessors[ 0 ];\n\txset = x.accessors[ 1 ];\n\n\tix = offset;\n\tif ( stride === 0 ) {\n\t\txset( xbuf, ix, xget( xbuf, ix ) * N * alpha );\n\t\treturn x;\n\t}\n\n\t// Use loop unrolling if the stride is equal to `1`...\n\tif ( stride === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\txset( xbuf, ix, xget( xbuf, ix ) * alpha );\n\t\t\t\tix += stride;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn x;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\txset( xbuf, ix, xget( xbuf, ix ) * alpha );\n\t\t\txset( xbuf, ix+1, xget( xbuf, ix+1 ) * alpha );\n\t\t\txset( xbuf, ix+2, xget( xbuf, ix+2 ) * alpha );\n\t\t\txset( xbuf, ix+3, xget( xbuf, ix+3 ) * alpha );\n\t\t\txset( xbuf, ix+4, xget( xbuf, ix+4 ) * alpha );\n\t\t\tix += M;\n\t\t}\n\t\treturn x;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\txset( xbuf, ix, xget( xbuf, ix ) * alpha );\n\t\tix += stride;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gscal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 5;\n\n\n// MAIN //\n\n/**\n* Multiplies a vector by a scalar constant using alternative indexing semantics.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {number} alpha - scalar\n* @param {NumericArray} x - input array\n* @param {integer} stride - stride length\n* @param {NonNegativeInteger} offset - starting index\n* @returns {NumericArray} input array\n*\n* @example\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ];\n*\n* gscal( 3, 5.0, x, 1, x.length-3 );\n* // x => [ 1.0, -2.0, 3.0, -20.0, 25.0, -30.0 ]\n*/\nfunction gscal( N, alpha, x, stride, offset ) {\n\tvar ix;\n\tvar m;\n\tvar o;\n\tvar i;\n\n\tif ( N <= 0 || alpha === 1.0 ) {\n\t\treturn x;\n\t}\n\to = arraylike2object( x );\n\tif ( o.accessorProtocol ) {\n\t\taccessors( N, alpha, o, stride, offset );\n\t\treturn x;\n\t}\n\n\tix = offset;\n\tif ( stride === 0 ) {\n\t\tx[ ix ] *= alpha * N;\n\t\treturn x;\n\t}\n\n\t// Use loop unrolling if the stride is equal to `1`...\n\tif ( stride === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\tx[ ix ] *= alpha;\n\t\t\t\tix += stride;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn x;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\tx[ ix ] *= alpha;\n\t\t\tx[ ix+1 ] *= alpha;\n\t\t\tx[ ix+2 ] *= alpha;\n\t\t\tx[ ix+3 ] *= alpha;\n\t\t\tx[ ix+4 ] *= alpha;\n\t\t\tix += M;\n\t\t}\n\t\treturn x;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tx[ ix ] *= alpha;\n\t\tix += stride;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gscal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Multiplies a vector by a scalar constant.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {number} alpha - scalar constant\n* @param {NumericArray} x - input array\n* @param {PositiveInteger} stride - stride length\n* @returns {NumericArray} input array\n*\n* @example\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gscal( x.length, 5.0, x, 1 );\n* // x => [ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]\n*/\nfunction gscal( N, alpha, x, stride ) {\n\treturn ndarray( N, alpha, x, stride, stride2offset( N, stride ) );\n}\n\n\n// EXPORTS //\n\nexport default gscal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction zeroTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 0; i < n; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default zeroTo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\n\n\n// FUNCTIONS //\n\n/**\n* Fills an indexed array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = indexed( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction indexed( out, stride, offset ) {\n\tvar v;\n\tvar i;\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < out.length ) {\n\t\tout[ i ] = v;\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn out;\n}\n\n/**\n* Fills a complex number array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {(Complex128Array|Complex64Array)} out - output complex number array\n* @param {(Float64Array|Float32Array)} data - output array data\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {(Complex128Array|Complex64Array)} output array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n* import reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\n*\n* var out = new Complex128Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n* // returns \n*\n* var data = reinterpret128( out, 0 );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* var arr = complex( out, data, 1, 0 );\n* // returns \n*\n* var bool = ( arr === out );\n* // returns true\n*\n* data = reinterpret128( out, 0 );\n* returns [ 0.0, 0.0, 1.0, 0.0, 2.0, 0.0 ]\n*/\nfunction complex( out, data, stride, offset ) {\n\tvar v;\n\tvar s;\n\tvar i;\n\n\ts = stride * 2;\n\ti = offset * 2;\n\tv = 0.0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tdata[ i ] = v; // real component\n\t\tdata[ i+1 ] = 0.0; // imaginary component\n\t\ti += s;\n\t\tv += 1.0;\n\t}\n\treturn out;\n}\n\n/**\n* Fills an accessor array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @private\n* @param {Object} out - output array object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n\n* var out = toAccessorArray( [ 0, 0, 0, 0, 0, 0 ] );\n* var arr = accessors( arraylike2object( out ), 1, 0 );\n*\n* var bool = ( arr === out );\n* // returns true\n*\n* var v = out.get( 0 );\n* // returns 0\n*\n* v = out.get( out.length-1 );\n* // returns 5\n*/\nfunction accessors( out, stride, offset ) {\n\tvar data;\n\tvar set;\n\tvar v;\n\tvar i;\n\n\tdata = out.data;\n\tset = out.accessors[ 1 ];\n\n\ti = offset;\n\tv = 0;\n\twhile ( i >= 0 && i < data.length ) {\n\t\tset( data, i, v );\n\t\ti += stride;\n\t\tv += 1;\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Fills an array with linearly spaced numeric elements which increment by 1 starting from zero.\n*\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n*\n* var arr = assign( out, -1, out.length-1 );\n* // returns [ 5, 4, 3, 2, 1, 0 ]\n*/\nfunction assign( out, stride, offset ) {\n\tvar obj = arraylike2object( out );\n\tif ( obj.accessorProtocol ) {\n\t\t// If provided a complex number array, reinterpret as a real typed array and only set the real components...\n\t\tif ( obj.dtype === 'complex128' ) {\n\t\t\treturn complex( out, reinterpret128( out, 0 ), stride, offset );\n\t\t}\n\t\tif ( obj.dtype === 'complex64' ) {\n\t\t\treturn complex( out, reinterpret64( out, 0 ), stride, offset );\n\t\t}\n\t\treturn accessors( obj, stride, offset );\n\t}\n\treturn indexed( out, stride, offset );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Takes elements from an indexed array.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var y = take( x, indices );\n* // returns [ 4, 2, 3, 1 ]\n*/\nfunction take( x, indices ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout.push( x[ indices[ i ] ] ); // use `Array#push` to ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default take;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: ndarray strides sorted in loop order.\n* - **idx**: dimension indices sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n*\n* var o = loopOrder( sh, sx );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var idx = o.idx;\n* // returns [ 2, 1, 0 ]\n*/\nfunction loopOrder( sh, sx ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape based on the sorted array strides:\n\tsh = take( sh, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'idx': idx\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20`) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number primitive having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number primitive having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue > 0.0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isInteger } from '@stdlib/assert-is-integer';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a positive integer value.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a positive integer value\n*\n* @example\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\nfunction isPositiveInteger( value ) {\n\treturn (\n\t\tisInteger( value ) &&\n\t\tvalue.valueOf() > 0.0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a positive integer.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a positive integer\n*\n* @example\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* @example\n* var bool = isPositiveInteger( 0.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isPositiveInteger( null );\n* // returns false\n*/\nfunction isPositiveInteger( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isPositiveInteger;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.keys()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\treturn Object.keys( Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Multiply a vector by a scalar constant.\n*\n* @module @stdlib/blas-base-gscal\n*\n* @example\n* import gscal from '@stdlib/blas-base-gscal';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gscal( x.length, 5.0, x, 1 );\n* // x => [ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]\n*\n* @example\n* import gscal from '@stdlib/blas-base-gscal';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gscal.ndarray( x.length, 5.0, x, 1, 0 );\n* // x => [ -10.0, 5.0, 15.0, -25.0, 20.0, 0.0, -5.0, -15.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @module @stdlib/array-base-zero-to\n*\n* @example\n* import zeroTo from '@stdlib/array-base-zero-to';\n*\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* @example\n* import zeroTo from '@stdlib/array-base-zero-to';\n*\n* var out = [ 0, 0, 0, 0, 0, 0 ];\n* var arr = zeroTo.assign( out, 1, 0 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*\n* var bool = ( out === arr );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a positive integer.\n*\n* @module @stdlib/assert-is-positive-integer\n*\n* @example\n* import isPositiveInteger from '@stdlib/assert-is-positive-integer';\n*\n* var bool = isPositiveInteger( 5.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 5.0 ) );\n* // returns true\n*\n* bool = isPositiveInteger( -5.0 );\n* // returns false\n*\n* bool = isPositiveInteger( 3.14 );\n* // returns false\n*\n* bool = isPositiveInteger( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns true\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns false\n*\n* @example\n* import { isObject as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\n*\n* var bool = isPositiveInteger( 3.0 );\n* // returns false\n*\n* bool = isPositiveInteger( new Number( 3.0 ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar bool = ( typeof Object.keys !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from './main.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment returns the expected internal class of the `arguments` object.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment behaves as expected\n*\n* @example\n* var bool = detect();\n* // returns \n*/\nfunction detect() {\n\treturn isArguments( arguments );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn ( nativeClass( value ) === '[object Arguments]' );\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is `NaN`.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 7.0 );\n* // returns false\n*/\nfunction isnan( x ) {\n\treturn ( x !== x );\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isNan from '@stdlib/math-base-assert-is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `NaN` number primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `NaN` number primitive\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isObject as isNumber } from '@stdlib/assert-is-number';\nimport isNan from '@stdlib/math-base-assert-is-nan';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a number object having a value of `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a number object having a value of `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns false\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*/\nfunction isnan( value ) {\n\treturn (\n\t\tisNumber( value ) &&\n\t\tisNan( value.valueOf() )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is `NaN`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is `NaN`\n*\n* @example\n* var bool = isnan( NaN );\n* // returns true\n*\n* @example\n* var bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* @example\n* var bool = isnan( 3.14 );\n* // returns false\n*\n* @example\n* var bool = isnan( null );\n* // returns false\n*/\nfunction isnan( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isnan;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is `NaN`.\n*\n* @module @stdlib/assert-is-nan\n*\n* @example\n* import isnan from '@stdlib/assert-is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( null );\n* // returns false\n*\n* @example\n* import { isPrimitive as isnan } from '@stdlib/assert-is-nan';\n*\n* var bool = isnan( NaN );\n* // returns true\n*\n* bool = isnan( 3.14 );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns false\n*\n* @example\n* import { isObject as isnan } from '@stdlib/assert-is-nan';\n*\n* var bool = isnan( NaN );\n* // returns false\n*\n* bool = isnan( new Number( NaN ) );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'isPrimitive', isPrimitive );\nsetReadOnly( main, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @private\n* @name isEnumerableProperty\n* @type {Function}\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty.call( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty.call( beep, 'hasOwnProperty' );\n* // returns false\n*/\nvar isEnumerableProperty = Object.prototype.propertyIsEnumerable;\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnum from './native.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Detects whether an environment has a bug where String indices are not detected as \"enumerable\" properties. Observed in Node v0.10.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment has the bug\n*/\nfunction detect() {\n\treturn !isEnum.call( 'beep', '0' );\n}\n\n\n// MAIN //\n\nbool = detect();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isString from '@stdlib/assert-is-string';\nimport { isPrimitive as isnan } from '@stdlib/assert-is-nan';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isEnum from './native.js';\nimport hasStringEnumBug from './has_string_enumerability_bug.js';\n\n\n// MAIN //\n\n/**\n* Tests if an object's own property is enumerable.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object property is enumerable\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = isEnumerableProperty( beep, 'hasOwnProperty' );\n* // returns false\n*/\nfunction isEnumerableProperty( value, property ) {\n\tvar bool;\n\tif (\n\t\tvalue === void 0 ||\n\t\tvalue === null\n\t) {\n\t\treturn false;\n\t}\n\tbool = isEnum.call( value, property );\n\tif ( !bool && hasStringEnumBug && isString( value ) ) {\n\t\t// Note: we only check for indices, as properties attached to a `String` object are properly detected as enumerable above.\n\t\tproperty = +property;\n\t\treturn (\n\t\t\t!isnan( property ) &&\n\t\t\tisInteger( property ) &&\n\t\t\tproperty >= 0 &&\n\t\t\tproperty < value.length\n\t\t);\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default isEnumerableProperty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an `arguments` object.\n*\n* @module @stdlib/assert-is-arguments\n*\n* @example\n* import isArguments from '@stdlib/assert-is-arguments';\n*\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* bool = isArguments( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport hasArgumentsClass from './detect.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar isArguments;\nif ( hasArgumentsClass ) {\n\tisArguments = main;\n} else {\n\tisArguments = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isEnumerableProperty from '@stdlib/assert-is-enumerable-property';\nimport isArray from '@stdlib/assert-is-array';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-uint32-max';\n\n\n// MAIN //\n\n/**\n* Tests whether a value is an `arguments` object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an `arguments` object\n*\n* @example\n* function foo() {\n* return arguments;\n* }\n*\n* var bool = isArguments( foo() );\n* // returns true\n*\n* @example\n* var bool = isArguments( [] );\n* // returns false\n*/\nfunction isArguments( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object' &&\n\t\t!isArray( value ) &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH &&\n\t\thasOwnProp( value, 'callee' ) &&\n\t\t!isEnumerableProperty( value, 'callee' )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArguments;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArguments from '@stdlib/assert-is-arguments';\nimport builtin from './builtin.js';\n\n\n// VARIABLES //\n\nvar slice = Array.prototype.slice;\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tif ( isArguments( value ) ) {\n\t\treturn builtin( slice.call( value ) );\n\t}\n\treturn builtin( value );\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert-is-enumerable-property';\nimport noop from '@stdlib/utils-noop';\n\n\n// MAIN //\n\n// Note: certain environments treat an object's prototype as enumerable, which, as a matter of convention, it shouldn't be...\nvar bool = isEnumerableProperty( noop, 'prototype' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* No operation.\n*\n* @example\n* noop();\n* // ...does nothing.\n*/\nfunction noop() {\n\t// Empty function...\n}\n\n\n// EXPORTS //\n\nexport default noop;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isEnumerableProperty from '@stdlib/assert-is-enumerable-property';\n\n\n// VARIABLES //\n\nvar obj = {\n\t'toString': null\n};\n\n\n// MAIN //\n\n// Note: certain environments don't allow enumeration of overwritten properties which are considered non-enumerable...\nvar bool = !isEnumerableProperty( obj, 'toString' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isnan from '@stdlib/assert-is-nan';\nimport isCollection from '@stdlib/assert-is-collection';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @param {ArrayLike} arr - array-like object\n* @param {*} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (if negative, the start index is determined relative to last element)\n* @throws {TypeError} must provide an array-like object\n* @throws {TypeError} third argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 3 );\n* // returns 1\n*\n* @example\n* var arr = [ 4, 3, 2, 1 ];\n* var idx = indexOf( arr, 5 );\n* // returns -1\n*\n* @example\n* // Using a `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, 3 );\n* // returns 5\n*\n* @example\n* // `fromIndex` which exceeds `array` length:\n* var arr = [ 1, 2, 3, 4, 2, 5 ];\n* var idx = indexOf( arr, 2, 10 );\n* // returns -1\n*\n* @example\n* // Negative `fromIndex`:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6, 2 ];\n* var idx = indexOf( arr, 2, -4 );\n* // returns 5\n*\n* idx = indexOf( arr, 2, -1 );\n* // returns 7\n*\n* @example\n* // Negative `fromIndex` exceeding input `array` length:\n* var arr = [ 1, 2, 3, 4, 5, 2, 6 ];\n* var idx = indexOf( arr, 2, -10 );\n* // returns 1\n*\n* @example\n* // Array-like objects:\n* var str = 'bebop';\n* var idx = indexOf( str, 'o' );\n* // returns 3\n*/\nfunction indexOf( arr, searchElement, fromIndex ) {\n\tvar len;\n\tvar i;\n\tif ( !isCollection( arr ) && !isString( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', arr ) );\n\t}\n\tlen = arr.length;\n\tif ( len === 0 ) {\n\t\treturn -1;\n\t}\n\tif ( arguments.length === 3 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= 0 ) {\n\t\t\tif ( fromIndex >= len ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\ti = fromIndex;\n\t\t} else {\n\t\t\ti = len + fromIndex;\n\t\t\tif ( i < 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\ti = 0;\n\t}\n\t// Check for `NaN`...\n\tif ( isnan( searchElement ) ) {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( isnan( arr[i] ) ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( arr[ i ] === searchElement ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nexport default indexOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests whether a value equals the prototype of its constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction isConstructorPrototype( value ) {\n\treturn ( value.constructor && value.constructor.prototype === value );\n}\n\n\n// EXPORTS //\n\nexport default isConstructorPrototype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar w = ( typeof window === 'undefined' ) ? void 0 : window;\n\n\n// EXPORTS //\n\nexport default w;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport indexOf from '@stdlib/utils-index-of';\nimport typeOf from '@stdlib/utils-type-of';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport EXCLUDED_KEYS from './excluded_keys.json';\nimport win from './window.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Determines whether an environment throws when comparing to the prototype of a value's constructor (e.g., [IE9][1]).\n*\n* [1]: https://stackoverflow.com/questions/7688070/why-is-comparing-the-constructor-property-of-two-windows-unreliable\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment is buggy\n*/\nfunction check() {\n\tvar k;\n\tif ( typeOf( win ) === 'undefined' ) {\n\t\treturn false;\n\t}\n\tfor ( k in win ) { // eslint-disable-line guard-for-in\n\t\ttry {\n\t\t\tif (\n\t\t\t\tindexOf( EXCLUDED_KEYS, k ) === -1 &&\n\t\t\t\thasOwnProp( win, k ) &&\n\t\t\t\twin[ k ] !== null &&\n\t\t\t\ttypeOf( win[ k ] ) === 'object'\n\t\t\t) {\n\t\t\t\tisConstructorPrototype( win[ k ] );\n\t\t\t}\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\nbool = check();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar bool = ( typeof window !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasArgumentsBug from './has_arguments_bug.js';\nimport HAS_BUILTIN from './has_builtin.js';\nimport builtin from './builtin.js';\nimport wrapper from './builtin_wrapper.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @name keys\n* @type {Function}\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nvar keys;\nif ( HAS_BUILTIN ) {\n\tif ( hasArgumentsBug() ) {\n\t\tkeys = wrapper;\n\t} else {\n\t\tkeys = builtin;\n\t}\n} else {\n\tkeys = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport keys from './builtin.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests the built-in `Object.keys()` implementation when provided `arguments`.\n*\n* @private\n* @returns {boolean} boolean indicating whether the built-in implementation returns the expected number of keys\n*/\nfunction test() {\n\treturn ( keys( arguments ) || '' ).length !== 2;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether the built-in `Object.keys()` implementation supports providing `arguments` as an input value.\n*\n* ## Notes\n*\n* - Safari 5.0 does **not** support `arguments` as an input value.\n*\n* @private\n* @returns {boolean} boolean indicating whether a built-in implementation supports `arguments`\n*/\nfunction check() {\n\treturn test( 1, 2 );\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObjectLike from '@stdlib/assert-is-object-like';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isArguments from '@stdlib/assert-is-arguments';\nimport HAS_ENUM_PROTO_BUG from './has_enumerable_prototype_bug.js';\nimport HAS_NON_ENUM_PROPS_BUG from './has_non_enumerable_properties_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype_wrapper.js';\nimport NON_ENUMERABLE from './non_enumerable.json';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own enumerable property names\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var k = keys( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction keys( value ) {\n\tvar skipConstructor;\n\tvar skipPrototype;\n\tvar isFcn;\n\tvar out;\n\tvar k;\n\tvar p;\n\tvar i;\n\n\tout = [];\n\tif ( isArguments( value ) ) {\n\t\t// Account for environments which treat `arguments` differently...\n\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\tout.push( i.toString() );\n\t\t}\n\t\t// Note: yes, we are precluding the `arguments` array-like object from having other enumerable properties; however, this should (1) be very rare and (2) not be encouraged (e.g., doing something like `arguments.a = 'b'`; in certain engines directly manipulating the `arguments` value results in automatic de-optimization).\n\t\treturn out;\n\t}\n\tif ( typeof value === 'string' ) {\n\t\t// Account for environments which do not treat string character indices as \"own\" properties...\n\t\tif ( value.length > 0 && !hasOwnProp( value, '0' ) ) {\n\t\t\tfor ( i = 0; i < value.length; i++ ) {\n\t\t\t\tout.push( i.toString() );\n\t\t\t}\n\t\t}\n\t} else {\n\t\tisFcn = ( typeof value === 'function' );\n\t\tif ( isFcn === false && !isObjectLike( value ) ) {\n\t\t\treturn out;\n\t\t}\n\t\tskipPrototype = ( HAS_ENUM_PROTO_BUG && isFcn );\n\t}\n\tfor ( k in value ) {\n\t\tif ( !( skipPrototype && k === 'prototype' ) && hasOwnProp( value, k ) ) {\n\t\t\tout.push( String( k ) );\n\t\t}\n\t}\n\tif ( HAS_NON_ENUM_PROPS_BUG ) {\n\t\tskipConstructor = isConstructorPrototype( value );\n\t\tfor ( i = 0; i < NON_ENUMERABLE.length; i++ ) {\n\t\t\tp = NON_ENUMERABLE[ i ];\n\t\t\tif ( !( skipConstructor && p === 'constructor' ) && hasOwnProp( value, p ) ) {\n\t\t\t\tout.push( String( p ) );\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default keys;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasAutomationEqualityBug from './has_automation_equality_bug.js';\nimport isConstructorPrototype from './is_constructor_prototype.js';\nimport HAS_WINDOW from './has_window.js';\n\n\n// MAIN //\n\n/**\n* Wraps the test for constructor prototype equality to accommodate buggy environments (e.g., environments which throw when testing equality).\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value equals the prototype of its constructor\n*/\nfunction wrapper( value ) {\n\tif ( HAS_WINDOW === false && !hasAutomationEqualityBug ) {\n\t\treturn isConstructorPrototype( value );\n\t}\n\ttry {\n\t\treturn isConstructorPrototype( value );\n\t} catch ( error ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrapper;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar getProto;\nif ( isFunction( Object.getPrototypeOf ) ) {\n\tgetProto = builtin;\n} else {\n\tgetProto = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object.\n*\n* @name Object\n* @constructor\n* @type {Function}\n* @param {*} value - input value\n* @returns {Object} object\n*\n* @example\n* var o = new Object( null );\n* // returns {}\n*\n* @example\n* var o = new Object( 5.0 );\n* // returns \n*\n* @example\n* var o = new Object( 'beep' );\n* // returns \n*\n* @example\n* var o1 = {};\n*\n* var o2 = new Object( o1 );\n* // returns {}\n*\n* var bool = ( o1 === o2 );\n* // returns true\n*/\nvar Obj = Object; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default Obj;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar getProto = Object.getPrototypeOf;\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\nimport Object from '@stdlib/object-ctor';\nimport getProto from './proto.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {(Object|null)} prototype\n*/\nfunction getPrototypeOf( obj ) {\n\tvar proto = getProto( obj );\n\tif ( proto || proto === null ) {\n\t\treturn proto;\n\t}\n\tif ( nativeClass( obj.constructor ) === '[object Function]' ) {\n\t\t// May break if the constructor has been tampered with...\n\t\treturn obj.constructor.prototype;\n\t}\n\tif ( obj instanceof Object ) {\n\t\treturn Object.prototype;\n\t}\n\t// Return `null` for objects created via `Object.create( null )`. Also return `null` for cross-realm objects on browsers that lack `__proto__` support, such as IE < 11.\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Returns the value of the `__proto__` property.\n*\n* @private\n* @param {Object} obj - input object\n* @returns {*} value of `__proto__` property\n*/\nfunction getProto( obj ) {\n\t// eslint-disable-next-line no-proto\n\treturn obj.__proto__;\n}\n\n\n// EXPORTS //\n\nexport default getProto;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Object from '@stdlib/object-ctor';\nimport getProto from './detect.js';\n\n\n// MAIN //\n\n/**\n* Returns the prototype of a provided object.\n*\n* @param {*} value - input value\n* @returns {(Object|null)} prototype\n*\n* @example\n* var proto = getPrototypeOf( {} );\n* // returns {}\n*/\nfunction getPrototypeOf( value ) {\n\tif (\n\t\tvalue === null ||\n\t\tvalue === void 0\n\t) {\n\t\treturn null;\n\t}\n\t// In order to ensure consistent ES5/ES6 behavior, cast input value to an object (strings, numbers, booleans); ES5 `Object.getPrototypeOf` throws when provided primitives and ES6 `Object.getPrototypeOf` casts:\n\tvalue = Object( value );\n\n\treturn getProto( value );\n}\n\n\n// EXPORTS //\n\nexport default getPrototypeOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar objectPrototype = Object.prototype;\n\n\n// FUNCTIONS //\n\n/**\n* Tests that an object only has own properties.\n*\n* @private\n* @param {Object} obj - value to test\n* @returns {boolean} boolean indicating if an object only has own properties\n*/\nfunction ownProps( obj ) {\n\tvar key;\n\n\t// NOTE: possibility of perf boost if key enumeration order is known (see http://stackoverflow.com/questions/18531624/isplainobject-thing).\n\tfor ( key in obj ) {\n\t\tif ( !hasOwnProp( obj, key ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// MAIN //\n\n/**\n* Tests if a value is a plain object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a plain object\n*\n* @example\n* var bool = isPlainObject( {} );\n* // returns true\n*\n* @example\n* var bool = isPlainObject( null );\n* // returns false\n*/\nfunction isPlainObject( value ) {\n\tvar proto;\n\n\t// Screen for obvious non-objects...\n\tif ( !isObject( value ) ) {\n\t\treturn false;\n\t}\n\t// Objects with no prototype (e.g., `Object.create( null )`) are plain...\n\tproto = getPrototypeOf( value );\n\tif ( !proto ) {\n\t\treturn true;\n\t}\n\t// Objects having a prototype are plain if and only if they are constructed with a global `Object` function and the prototype points to the prototype of a plain object...\n\treturn (\n\t\t// Cannot have own `constructor` property:\n\t\t!hasOwnProp( value, 'constructor' ) &&\n\n\t\t// Prototype `constructor` property must be a function (see also https://bugs.jquery.com/ticket/9897 and http://stackoverflow.com/questions/18531624/isplainobject-thing):\n\t\thasOwnProp( proto, 'constructor' ) &&\n\t\tisFunction( proto.constructor ) &&\n\t\tnativeClass( proto.constructor ) === '[object Function]' &&\n\n\t\t// Test for object-specific method:\n\t\thasOwnProp( proto, 'isPrototypeOf' ) &&\n\t\tisFunction( proto.isPrototypeOf ) &&\n\n\t\t(\n\t\t\t// Test if the prototype matches the global `Object` prototype (same realm):\n\t\t\tproto === objectPrototype ||\n\n\t\t\t// Test that all properties are own properties (cross-realm; *most* likely a plain object):\n\t\t\townProps( value )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isPlainObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport isArray from '@stdlib/assert-is-array';\nimport isObject from '@stdlib/assert-is-plain-object';\nimport isObjectLike from '@stdlib/assert-is-object-like';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Inverts an object, such that keys become values and values become keys.\n*\n* @param {ObjectLike} obj - input object\n* @param {Options} [opts] - function options\n* @param {boolean} [opts.duplicates=true] - boolean indicating whether to store duplicate keys\n* @throws {TypeError} first argument must be object-like\n* @throws {TypeError} second argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Object} inverted object\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'boop'\n* });\n* // returns { 'beep': 'a', 'boop': 'b' }\n*\n* @example\n* var out = invert({\n* 'a': 'beep',\n* 'b': 'beep'\n* });\n* // returns { 'beep': [ 'a', 'b' ] }\n*\n* @example\n* var obj = {};\n* obj.a = 'beep';\n* obj.b = 'boop';\n* obj.c = 'beep'; // inserted after `a`\n*\n* var out = invert( obj, {\n* 'duplicates': false\n* });\n* // returns { 'beep': 'c', 'boop': 'b' }\n*/\nfunction invert( obj, opts ) {\n\tvar allowDupes = true;\n\tvar keys;\n\tvar len;\n\tvar key;\n\tvar val;\n\tvar out;\n\tvar v;\n\tvar i;\n\tif ( !isObjectLike( obj ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object (except null). Value: `%s`.', obj ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isObject( opts ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t}\n\t\tif ( hasOwnProp( opts, 'duplicates' ) ) {\n\t\t\tallowDupes = opts.duplicates;\n\t\t\tif ( !isBoolean( allowDupes ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'duplicates', allowDupes ) );\n\t\t\t}\n\t\t}\n\t}\n\tkeys = objectKeys( obj );\n\tlen = keys.length;\n\tout = {};\n\tif ( allowDupes ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tval = obj[ key ];\n\t\t\tif ( !hasOwnProp( out, val ) ) {\n\t\t\t\tout[ val ] = key;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tv = out[ val ];\n\t\t\tif ( isArray( v ) ) {\n\t\t\t\tout[ val ].push( key );\n\t\t\t} else {\n\t\t\t\tout[ val ] = [ v, key ];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tkey = keys[ i ];\n\t\t\tout[ obj[ key ] ] = key;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default invert;\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 stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported data type strings to enumeration constants\n*\n* @example\n* var table = dtypeEnums();\n* // returns {...}\n*/\nfunction dtypeEnums() {\n\t// NOTE: the following should match the C enumeration in `@stdlib/ndarray/dtypes`!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t'float16': 10,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 11,\n\t\t'float64': 12,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex32': 13,\n\t\t'complex64': 14,\n\t\t'complex128': 15,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 16,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 17,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 18,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default dtypeEnums;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport objectInverse from '@stdlib/object-inverse';\nimport dtypeEnums from '@stdlib/ndarray-base-dtype-enums';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( dtypeEnums(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with an ndarray data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( isString( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport enum2str from '@stdlib/ndarray-base-dtype-enum2str';\nimport BYTES_PER_ELEMENT from './bytes_per_element.json';\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes per element for a provided underlying ndarray data type.\n*\n* @param {*} dtype - data type\n* @returns {(PositiveInteger|null)} number of bytes per element\n*\n* @example\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\n* // returns null\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'value',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n* // returns \n*\n* var nbytes = bytesPerElement( Struct );\n* // returns 8\n*/\nfunction bytesPerElement( dtype ) {\n\tvar v;\n\tif ( isString( dtype ) ) {\n\t\treturn BYTES_PER_ELEMENT[ dtype ] || null;\n\t}\n\tif ( isNumber( dtype ) ) {\n\t\treturn BYTES_PER_ELEMENT[ enum2str( dtype ) ] || null;\n\t}\n\tif ( dtype ) {\n\t\tv = dtype.byteLength;\n\t\tif ( isPositiveInteger( v ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default bytesPerElement;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nexport default defaults;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport defaults from './defaults.js';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {ArrayLikeObject} dtypes - list of input and output ndarray data types\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = blockSize( [ 'float64', 'float64', 'float64', 'float64' ] );\n* // returns \n*/\nfunction blockSize( dtypes ) {\n\tvar max;\n\tvar len;\n\tvar nb;\n\tvar i;\n\n\tlen = dtypes.length;\n\tif ( len <= 0 ) {\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tmax = bytesPerElement( dtypes[ 0 ] );\n\tif ( max === null ) {\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS; // e.g., \"generic\" arrays\n\t}\n\t// Find the largest element size among all arrays...\n\tfor ( i = 1; i < len; i++ ) {\n\t\tnb = bytesPerElement( dtypes[ i ] );\n\t\tif ( nb === null ) {\n\t\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS; // e.g., \"generic\" arrays\n\t\t}\n\t\tif ( nb > max ) {\n\t\t\tmax = nb;\n\t\t}\n\t}\n\tnb = ( defaults.BLOCK_SIZE_IN_BYTES/max )|0; // asm type annotation\n\treturn ( nb > 0 ) ? nb : 1|0;\n}\n\n\n// EXPORTS //\n\nexport default blockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = nullaryBlockSize( 'float64' );\n* // returns \n*/\nfunction nullaryBlockSize( dtypeX ) {\n\treturn blockSize( [ dtypeX ] );\n}\n\n\n// EXPORTS //\n\nexport default nullaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an array view\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an underlying data buffer\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\nfunction vind2bind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tind = offset;\n\tif ( isColumnMajor( order ) ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nexport default vind2bind;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = anynd( x );\n* // returns true\n*/\nfunction anynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anynd( x );\n* // returns true\n*/\nfunction anynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anynd( x );\n* // returns true\n*/\nfunction anynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorany2d from './2d_blocked_accessors.js';\nimport blockedaccessorany3d from './3d_blocked_accessors.js';\nimport blockedaccessorany4d from './4d_blocked_accessors.js';\nimport blockedaccessorany5d from './5d_blocked_accessors.js';\nimport blockedaccessorany6d from './6d_blocked_accessors.js';\nimport blockedaccessorany7d from './7d_blocked_accessors.js';\nimport blockedaccessorany8d from './8d_blocked_accessors.js';\nimport blockedaccessorany9d from './9d_blocked_accessors.js';\nimport blockedaccessorany10d from './10d_blocked_accessors.js';\nimport blockedcomplexany2d from './2d_blocked_complex.js';\nimport blockedcomplexany3d from './3d_blocked_complex.js';\nimport blockedcomplexany4d from './4d_blocked_complex.js';\nimport blockedcomplexany5d from './5d_blocked_complex.js';\nimport blockedcomplexany6d from './6d_blocked_complex.js';\nimport blockedcomplexany7d from './7d_blocked_complex.js';\nimport blockedcomplexany8d from './8d_blocked_complex.js';\nimport blockedcomplexany9d from './9d_blocked_complex.js';\nimport blockedcomplexany10d from './10d_blocked_complex.js';\nimport blockedany2d from './2d_blocked.js';\nimport blockedany3d from './3d_blocked.js';\nimport blockedany4d from './4d_blocked.js';\nimport blockedany5d from './5d_blocked.js';\nimport blockedany6d from './6d_blocked.js';\nimport blockedany7d from './7d_blocked.js';\nimport blockedany8d from './8d_blocked.js';\nimport blockedany9d from './9d_blocked.js';\nimport blockedany10d from './10d_blocked.js';\nimport accessorany0d from './0d_accessors.js';\nimport accessorany1d from './1d_accessors.js';\nimport accessorany2d from './2d_accessors.js';\nimport accessorany3d from './3d_accessors.js';\nimport accessorany4d from './4d_accessors.js';\nimport accessorany5d from './5d_accessors.js';\nimport accessorany6d from './6d_accessors.js';\nimport accessorany7d from './7d_accessors.js';\nimport accessorany8d from './8d_accessors.js';\nimport accessorany9d from './9d_accessors.js';\nimport accessorany10d from './10d_accessors.js';\nimport accessoranynd from './nd_accessors.js';\nimport complexany0d from './0d_complex.js';\nimport complexany1d from './1d_complex.js';\nimport complexany2d from './2d_complex.js';\nimport complexany3d from './3d_complex.js';\nimport complexany4d from './4d_complex.js';\nimport complexany5d from './5d_complex.js';\nimport complexany6d from './6d_complex.js';\nimport complexany7d from './7d_complex.js';\nimport complexany8d from './8d_complex.js';\nimport complexany9d from './9d_complex.js';\nimport complexany10d from './10d_complex.js';\nimport complexanynd from './nd_complex.js';\nimport any0d from './0d.js';\nimport any1d from './1d.js';\nimport any2d from './2d.js';\nimport any3d from './3d.js';\nimport any4d from './4d.js';\nimport any5d from './5d.js';\nimport any6d from './6d.js';\nimport any7d from './7d.js';\nimport any8d from './8d.js';\nimport any9d from './9d.js';\nimport any10d from './10d.js';\nimport anynd from './nd.js';\n\n\n// VARIABLES //\n\nvar ANY = [\n\tany0d,\n\tany1d,\n\tany2d,\n\tany3d,\n\tany4d,\n\tany5d,\n\tany6d,\n\tany7d,\n\tany8d,\n\tany9d,\n\tany10d\n];\nvar ACCESSOR_ANY = [\n\taccessorany0d,\n\taccessorany1d,\n\taccessorany2d,\n\taccessorany3d,\n\taccessorany4d,\n\taccessorany5d,\n\taccessorany6d,\n\taccessorany7d,\n\taccessorany8d,\n\taccessorany9d,\n\taccessorany10d\n];\nvar COMPLEX_ANY = [\n\tcomplexany0d,\n\tcomplexany1d,\n\tcomplexany2d,\n\tcomplexany3d,\n\tcomplexany4d,\n\tcomplexany5d,\n\tcomplexany6d,\n\tcomplexany7d,\n\tcomplexany8d,\n\tcomplexany9d,\n\tcomplexany10d\n];\nvar BLOCKED_ANY = [\n\tblockedany2d, // 0\n\tblockedany3d,\n\tblockedany4d,\n\tblockedany5d,\n\tblockedany6d,\n\tblockedany7d,\n\tblockedany8d,\n\tblockedany9d,\n\tblockedany10d // 8\n];\nvar BLOCKED_ACCESSOR_ANY = [\n\tblockedaccessorany2d, // 0\n\tblockedaccessorany3d,\n\tblockedaccessorany4d,\n\tblockedaccessorany5d,\n\tblockedaccessorany6d,\n\tblockedaccessorany7d,\n\tblockedaccessorany8d,\n\tblockedaccessorany9d,\n\tblockedaccessorany10d // 8\n];\nvar BLOCKED_COMPLEX_ANY = [\n\tblockedcomplexany2d, // 0\n\tblockedcomplexany3d,\n\tblockedcomplexany4d,\n\tblockedcomplexany5d,\n\tblockedcomplexany6d,\n\tblockedcomplexany7d,\n\tblockedcomplexany8d,\n\tblockedcomplexany9d,\n\tblockedcomplexany10d // 8\n];\nvar MAX_DIMS = ANY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any( [ x ] );\n* // returns true\n*/\nfunction any( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ANY[ ndims ]( x );\n\t\t}\n\t\treturn ANY[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ANY[ ndims ]( x );\n\t\t}\n\t\treturn ANY[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ANY[ 1 ]( x );\n\t\t}\n\t\treturn ANY[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+1 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ANY[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ANY[ 1 ]( x );\n\t\t\t}\n\t\t\treturn ANY[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ANY[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ANY[ ndims ]( x );\n\t\t\t}\n\t\t\treturn ANY[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ANY[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_ANY[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_ANY[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoranynd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexanynd( x );\n\t}\n\treturn anynd( x );\n}\n\n\n// EXPORTS //\n\nexport default any;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any0d( x );\n* // returns true\n*/\nfunction any0d( x ) {\n\tif ( x.data[ x.offset ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any1d( x );\n* // returns true\n*/\nfunction any1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any2d( x );\n* // returns true\n*/\nfunction any2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any3d( x );\n* // returns true\n*/\nfunction any3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any4d( x );\n* // returns true\n*/\nfunction any4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any5d( x );\n* // returns true\n*/\nfunction any5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any6d( x );\n* // returns true\n*/\nfunction any6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any7d( x );\n* // returns true\n*/\nfunction any7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any8d( x );\n* // returns true\n*/\nfunction any8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any9d( x );\n* // returns true\n*/\nfunction any9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any10d( x );\n* // returns true\n*/\nfunction any10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any0d( x );\n* // returns true\n*/\nfunction any0d( x ) {\n\tif ( x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any1d( x );\n* // returns true\n*/\nfunction any1d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any2d( x );\n* // returns true\n*/\nfunction any2d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any3d( x );\n* // returns true\n*/\nfunction any3d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any4d( x );\n* // returns true\n*/\nfunction any4d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any5d( x );\n* // returns true\n*/\nfunction any5d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any6d( x );\n* // returns true\n*/\nfunction any6d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any7d( x );\n* // returns true\n*/\nfunction any7d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any8d( x );\n* // returns true\n*/\nfunction any8d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any9d( x );\n* // returns true\n*/\nfunction any9d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any10d( x );\n* // returns true\n*/\nfunction any10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any0d( x );\n* // returns true\n*/\nfunction any0d( x ) {\n\tif ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any1d( x );\n* // returns true\n*/\nfunction any1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any2d( x );\n* // returns true\n*/\nfunction any2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any3d( x );\n* // returns true\n*/\nfunction any3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any4d( x );\n* // returns true\n*/\nfunction any4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any5d( x );\n* // returns true\n*/\nfunction any5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any6d( x );\n* // returns true\n*/\nfunction any6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any7d( x );\n* // returns true\n*/\nfunction any7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any8d( x );\n* // returns true\n*/\nfunction any8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any9d( x );\n* // returns true\n*/\nfunction any9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any10d( x );\n* // returns true\n*/\nfunction any10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x );\n* // returns true\n*/\nfunction blockedany2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x );\n* // returns true\n*/\nfunction blockedany3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x );\n* // returns true\n*/\nfunction blockedany4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x );\n* // returns true\n*/\nfunction blockedany5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x );\n* // returns true\n*/\nfunction blockedany6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x );\n* // returns true\n*/\nfunction blockedany7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x );\n* // returns true\n*/\nfunction blockedany8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x );\n* // returns true\n*/\nfunction blockedany9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x );\n* // returns true\n*/\nfunction blockedany10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x );\n* // returns true\n*/\nfunction blockedany2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x );\n* // returns true\n*/\nfunction blockedany3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x );\n* // returns true\n*/\nfunction blockedany4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x );\n* // returns true\n*/\nfunction blockedany5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x );\n* // returns true\n*/\nfunction blockedany6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x );\n* // returns true\n*/\nfunction blockedany7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x );\n* // returns true\n*/\nfunction blockedany8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x );\n* // returns true\n*/\nfunction blockedany9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x );\n* // returns true\n*/\nfunction blockedany10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x );\n* // returns true\n*/\nfunction blockedany2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x );\n* // returns true\n*/\nfunction blockedany3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x );\n* // returns true\n*/\nfunction blockedany4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x );\n* // returns true\n*/\nfunction blockedany5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x );\n* // returns true\n*/\nfunction blockedany6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x );\n* // returns true\n*/\nfunction blockedany7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x );\n* // returns true\n*/\nfunction blockedany8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x );\n* // returns true\n*/\nfunction blockedany9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x );\n* // returns true\n*/\nfunction blockedany10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'reverse' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Reverses an array in-place.\n*\n* @private\n* @param {Collection} x - input array\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = internal( x );\n* // returns [ 4, 3, 2, 1 ]\n*/\nfunction internal( x ) {\n\tvar tmp;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tN = floor( x.length/2 );\n\tM = x.length - 1;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = M - i;\n\t\ttmp = x[ i ];\n\t\tx[ i ] = x[ j ];\n\t\tx[ j ] = tmp;\n\t}\n\treturn x;\n}\n\n/**\n* Reverses an array in-place.\n*\n* @private\n* @param {Object} x - input array object\n* @returns {Collection} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* var out = accessors( arraylike2object( x ) );\n*\n* v = x.get( 0 );\n* // returns 4\n*/\nfunction accessors( x ) {\n\tvar data;\n\tvar get;\n\tvar set;\n\tvar tmp;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tdata = x.data;\n\tget = x.accessors[ 0 ];\n\tset = x.accessors[ 1 ];\n\n\tN = floor( data.length/2 );\n\tM = data.length - 1;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = M - i;\n\t\ttmp = get( data, i );\n\t\tset( data, i, get( data, j ) );\n\t\tset( data, j, tmp );\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Reverses an array in-place.\n*\n* @param {Collection} x - input array\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = reverse( x );\n* // returns [ 4, 3, 2, 1 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var out = reverse( x );\n* // returns [ 4, 3, 2, 1 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction reverse( x ) {\n\tvar obj;\n\tif ( hasMethod( x, 'reverse' ) ) {\n\t\treturn x.reverse();\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj );\n\t}\n\treturn internal( x );\n}\n\n\n// EXPORTS //\n\nexport default reverse;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled \"generic\" array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} filled array\n*\n* @example\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filled( value, len ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nexport default filled;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport filled from '@stdlib/array-base-filled';\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled \"generic\" array.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction zeros( len ) {\n\treturn filled( 0.0, len );\n}\n\n\n// EXPORTS //\n\nexport default zeros;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: implementation (?)\n\n/**\n* Rounds a double-precision floating-point number toward positive infinity.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = ceil( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = ceil( 9.99999 );\n* // returns 10.0\n*\n* @example\n* var v = ceil( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = ceil( NaN );\n* // returns NaN\n*/\nvar ceil = Math.ceil; // eslint-disable-line stdlib/no-builtin-math\n\n\n// EXPORTS //\n\nexport default ceil;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport floor from '@stdlib/math-base-special-floor';\nimport ceil from '@stdlib/math-base-special-ceil';\n\n\n// MAIN //\n\n/**\n* Rounds a double-precision floating-point number toward zero.\n*\n* @param {number} x - input value\n* @returns {number} rounded value\n*\n* @example\n* var v = trunc( -4.2 );\n* // returns -4.0\n*\n* @example\n* var v = trunc( 9.99999 );\n* // returns 9.0\n*\n* @example\n* var v = trunc( 0.0 );\n* // returns 0.0\n*\n* @example\n* var v = trunc( -0.0 );\n* // returns -0.0\n*\n* @example\n* var v = trunc( NaN );\n* // returns NaN\n*\n* @example\n* var v = trunc( Infinity );\n* // returns Infinity\n*\n* @example\n* var v = trunc( -Infinity );\n* // returns -Infinity\n*/\nfunction trunc( x ) {\n\tif ( x < 0.0 ) {\n\t\treturn ceil( x );\n\t}\n\treturn floor( x );\n}\n\n\n// EXPORTS //\n\nexport default trunc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport trunc from '@stdlib/math-base-special-trunc';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @param {(Array|TypedArray|Object)} out - destination object\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {(Array|TypedArray|Object)} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub( shape, strides, offset, order, 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\n* // returns true\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode, out ) {\n\tvar ndims;\n\tvar len;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\tif ( offset === 0 ) {\n\t\tif ( isColumnMajor( order ) ) {\n\t\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\t\ts = idx % shape[ i ];\n\t\t\t\tidx -= s;\n\t\t\t\tidx /= shape[ i ];\n\t\t\t\tout[ i ] = s;\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\t// Case: row-major\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tout[ i ] = s;\n\t\t}\n\t\treturn out;\n\t}\n\tif ( isColumnMajor( order ) ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = k;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = k;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default ind2sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-base-zeros';\nimport getSubscripts from './assign.js';\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function interprets the linear index as an index into the underlying data buffer for the array, thus returning subscripts from the perspective of that buffer. If an `offset` is equal to `0`, the function treats the linear index as an index into an array view, thus returning subscripts from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = 'throw';\n*\n* // From the perspective of a view...\n* var s = ind2sub( shape, strides, 0, order, 0, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 1, mode );\n* // returns [ 0, 1 ]\n*\n* s = ind2sub( shape, strides, 0, order, 2, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 3, mode );\n* // returns [ 1, 1 ]\n*\n* // From the perspective of an underlying buffer...\n* s = ind2sub( shape, strides, offset, order, 0, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 1, mode );\n* // returns [ 1, 1 ]\n*\n* s = ind2sub( shape, strides, offset, order, 2, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 3, mode );\n* // returns [ 0, 1 ]\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {Array} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = ind2sub( shape, strides, offset, order, 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode ) {\n\treturn getSubscripts( shape, strides, offset, order, idx, mode, zeros( shape.length ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ind2sub;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a linear index to an array of subscripts.\n*\n* @module @stdlib/ndarray-base-ind2sub\n*\n* @example\n* import ind2sub from '@stdlib/ndarray-base-ind2sub';\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = ind2sub( shape, strides, offset, 'row-major', 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*\n* @example\n* import ind2sub from '@stdlib/ndarray-base-ind2sub';\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub.assign( shape, strides, offset, 'row-major', 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = anynd( x, predicate, {} );\n* // returns true\n*/\nfunction anynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anynd( x, predicate, {} );\n* // returns true\n*/\nfunction anynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default anynd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorany2d from './2d_blocked_accessors.js';\nimport blockedaccessorany3d from './3d_blocked_accessors.js';\nimport blockedaccessorany4d from './4d_blocked_accessors.js';\nimport blockedaccessorany5d from './5d_blocked_accessors.js';\nimport blockedaccessorany6d from './6d_blocked_accessors.js';\nimport blockedaccessorany7d from './7d_blocked_accessors.js';\nimport blockedaccessorany8d from './8d_blocked_accessors.js';\nimport blockedaccessorany9d from './9d_blocked_accessors.js';\nimport blockedaccessorany10d from './10d_blocked_accessors.js';\nimport blockedany2d from './2d_blocked.js';\nimport blockedany3d from './3d_blocked.js';\nimport blockedany4d from './4d_blocked.js';\nimport blockedany5d from './5d_blocked.js';\nimport blockedany6d from './6d_blocked.js';\nimport blockedany7d from './7d_blocked.js';\nimport blockedany8d from './8d_blocked.js';\nimport blockedany9d from './9d_blocked.js';\nimport blockedany10d from './10d_blocked.js';\nimport accessorany0d from './0d_accessors.js';\nimport accessorany1d from './1d_accessors.js';\nimport accessorany2d from './2d_accessors.js';\nimport accessorany3d from './3d_accessors.js';\nimport accessorany4d from './4d_accessors.js';\nimport accessorany5d from './5d_accessors.js';\nimport accessorany6d from './6d_accessors.js';\nimport accessorany7d from './7d_accessors.js';\nimport accessorany8d from './8d_accessors.js';\nimport accessorany9d from './9d_accessors.js';\nimport accessorany10d from './10d_accessors.js';\nimport accessoranynd from './nd_accessors.js';\nimport any0d from './0d.js';\nimport any1d from './1d.js';\nimport any2d from './2d.js';\nimport any3d from './3d.js';\nimport any4d from './4d.js';\nimport any5d from './5d.js';\nimport any6d from './6d.js';\nimport any7d from './7d.js';\nimport any8d from './8d.js';\nimport any9d from './9d.js';\nimport any10d from './10d.js';\nimport anynd from './nd.js';\n\n\n// VARIABLES //\n\nvar ANY = [\n\tany0d,\n\tany1d,\n\tany2d,\n\tany3d,\n\tany4d,\n\tany5d,\n\tany6d,\n\tany7d,\n\tany8d,\n\tany9d,\n\tany10d\n];\nvar ACCESSOR_ANY = [\n\taccessorany0d,\n\taccessorany1d,\n\taccessorany2d,\n\taccessorany3d,\n\taccessorany4d,\n\taccessorany5d,\n\taccessorany6d,\n\taccessorany7d,\n\taccessorany8d,\n\taccessorany9d,\n\taccessorany10d\n];\nvar BLOCKED_ANY = [\n\tblockedany2d, // 0\n\tblockedany3d,\n\tblockedany4d,\n\tblockedany5d,\n\tblockedany6d,\n\tblockedany7d,\n\tblockedany8d,\n\tblockedany9d,\n\tblockedany10d // 8\n];\nvar BLOCKED_ACCESSOR_ANY = [\n\tblockedaccessorany2d, // 0\n\tblockedaccessorany3d,\n\tblockedaccessorany4d,\n\tblockedaccessorany5d,\n\tblockedaccessorany6d,\n\tblockedaccessorany7d,\n\tblockedaccessorany8d,\n\tblockedaccessorany9d,\n\tblockedaccessorany10d // 8\n];\nvar MAX_DIMS = ANY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = anyBy( [ x ], predicate );\n* // returns true\n*/\nfunction anyBy( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn ANY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ANY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn ANY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ANY[ ndims-2 ]( x, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_ANY[ ndims-2 ]( x, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoranynd( x, predicate, thisArg );\n\t}\n\treturn anynd( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default anyBy;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any0d( x, predicate, {} );\n* // returns true\n*/\nfunction any0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any1d( x, predicate, {} );\n* // returns true\n*/\nfunction any1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any2d( x, predicate, {} );\n* // returns true\n*/\nfunction any2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any3d( x, predicate, {} );\n* // returns true\n*/\nfunction any3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any4d( x, predicate, {} );\n* // returns true\n*/\nfunction any4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any5d( x, predicate, {} );\n* // returns true\n*/\nfunction any5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any6d( x, predicate, {} );\n* // returns true\n*/\nfunction any6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any7d( x, predicate, {} );\n* // returns true\n*/\nfunction any7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any8d( x, predicate, {} );\n* // returns true\n*/\nfunction any8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any9d( x, predicate, {} );\n* // returns true\n*/\nfunction any9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = any10d( x, predicate, {} );\n* // returns true\n*/\nfunction any10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any0d( x, predicate, {} );\n* // returns true\n*/\nfunction any0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any0d;\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* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any1d( x, predicate, {} );\n* // returns true\n*/\nfunction any1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref ) ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any2d( x, predicate, {} );\n* // returns true\n*/\nfunction any2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any3d( x, predicate, {} );\n* // returns true\n*/\nfunction any3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any4d( x, predicate, {} );\n* // returns true\n*/\nfunction any4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any5d( x, predicate, {} );\n* // returns true\n*/\nfunction any5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any6d( x, predicate, {} );\n* // returns true\n*/\nfunction any6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any7d( x, predicate, {} );\n* // returns true\n*/\nfunction any7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any8d( x, predicate, {} );\n* // returns true\n*/\nfunction any8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any9d( x, predicate, {} );\n* // returns true\n*/\nfunction any9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = any10d( x, predicate, {} );\n* // returns true\n*/\nfunction any10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default any10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany2d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany3d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany4d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany5d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany6d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany7d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany8d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany9d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in an ndarray passes a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedany10d( x, predicate, {} );\n* // returns true\n*/\nfunction blockedany10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedany10d;\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\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport isFunction from '@stdlib/assert-is-function';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\n\n\n// MAIN //\n\n/**\n* Tests if a value is struct constructor-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is struct constructor-like\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'foo',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var bool = isStructConstructorLike( Struct );\n* // returns true\n*\n* bool = isStructConstructorLike( [] );\n* // returns false\n*/\nfunction isStructConstructorLike( value ) {\n\treturn (\n\t\tisFunction( value ) &&\n\t\tisPositiveInteger( value.alignment ) &&\n\t\tisPositiveInteger( value.byteLength ) &&\n\t\tisFunction( value.byteLengthOf ) &&\n\t\tisFunction( value.byteOffsetOf ) &&\n\t\tisFunction( value.bufferOf ) &&\n\t\tisFunction( value.isStruct ) &&\n\t\tisFunction( value.viewOf ) &&\n\t\thasOwnProp( value, 'fields' ) &&\n\t\thasOwnProp( value, 'layout' )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isStructConstructorLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport dtypeEnums from '@stdlib/ndarray-base-dtype-enums';\n\n\n// VARIABLES //\n\nvar ENUM = dtypeEnums();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an ndarray data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( isNumber( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport enum2str from '@stdlib/ndarray-base-dtype-enum2str';\nimport str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported ndarray data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\tif ( t === 'object' && dtype ) {\n\t\treturn String( dtype );\n\t}\n\tif ( isStructConstructorLike( dtype ) ) {\n\t\treturn dtype.layout;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport SAFE_CASTS from './safe_casts.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of safe casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\nfunction safeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default safeCasts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport safeCasts from '@stdlib/ndarray-safe-casts';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// VARIABLES //\n\nvar TABLE = safeCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to another ndarray data type.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be safely cast to another data type\n*\n* @example\n* var bool = isSafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isSafeCast( from, to ) {\n\tvar t;\n\tfrom = resolveStr( from );\n\tto = resolveStr( to );\n\tif ( from === to ) { // note: for \"struct\" data types, require strict equality to be considered a safe cast\n\t\treturn true;\n\t}\n\tt = TABLE[ from ];\n\tif ( t ) {\n\t\treturn t[ to ] > 0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isSafeCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport CASTS from './data.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast and, for floating-point data types, can be downcast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = mostlySafeCasts( 'float32' );\n* // returns [...]\n*/\nfunction mostlySafeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default mostlySafeCasts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport casts from '@stdlib/ndarray-mostly-safe-casts';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// VARIABLES //\n\nvar TABLE = casts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast or, for floating-point data types, downcast to another ndarray data type.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isMostlySafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isMostlySafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isMostlySafeCast( from, to ) {\n\tvar t;\n\tfrom = resolveStr( from );\n\tto = resolveStr( to );\n\tif ( from === to ) { // note: for \"struct\" data types, require strict equality to be considered a \"mostly\" safe cast\n\t\treturn true;\n\t}\n\tt = TABLE[ from ];\n\tif ( t ) {\n\t\treturn t[ to ] > 0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isMostlySafeCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport SAME_KIND_CASTS from './same_kind_casts.json';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of same \"kind\" casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of same \"kind\" casts for each ndarray data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types to which a provided ndarray data type can be safely cast or cast within the same \"kind\".\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = sameKindCasts( 'float32' );\n* // returns [...]\n*/\nfunction sameKindCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default sameKindCasts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sameKindCasts from '@stdlib/ndarray-same-kind-casts';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// VARIABLES //\n\nvar TABLE = sameKindCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to, or is of the same \"kind\" as, another ndarray data type.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isSameKindCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSameKindCast( 'uint16', 'int16' );\n* // returns false\n*/\nfunction isSameKindCast( from, to ) {\n\tvar t;\n\tfrom = resolveStr( from );\n\tto = resolveStr( to );\n\tif ( from === to ) { // note: for \"struct\" data types, require strict equality to be considered a safe cast\n\t\treturn true;\n\t}\n\tt = TABLE[ from ];\n\tif ( t ) {\n\t\treturn t[ to ] > 0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isSameKindCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSafeCast from '@stdlib/ndarray-base-assert-is-safe-data-type-cast';\nimport isMostlySafeCast from '@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast';\nimport isSameKindCast from '@stdlib/ndarray-base-assert-is-same-kind-data-type-cast';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be cast to another ndarray data type according to a specified casting mode.\n*\n* @param {*} from - ndarray data type\n* @param {*} to - ndarray data type\n* @param {string} casting - ndarray casting mode\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isAllowedCast( 'float32', 'float64', 'safe' );\n* // returns true\n*\n* bool = isAllowedCast( 'float64', 'int32', 'safe' );\n* // returns false\n*/\nfunction isAllowedCast( from, to, casting ) {\n\tvar dt1;\n\tvar dt2;\n\n\t// Anything goes for \"unsafe\" casting...\n\tif ( casting === 'unsafe' ) {\n\t\treturn true;\n\t}\n\tdt1 = resolveStr( from );\n\tdt2 = resolveStr( to );\n\n\t// \"Casting\" to the same data type is always allowed, regardless of the casting mode...\n\tif ( dt1 === dt2 ) {\n\t\treturn true;\n\t}\n\t// No casts between different data types are allowed in \"none\" or \"equiv\" casting modes...\n\tif ( casting === 'none' || casting === 'equiv' ) {\n\t\treturn false;\n\t}\n\t// In \"safe\" casting mode, only casts which preserve values are allowed...\n\tif ( casting === 'safe' ) {\n\t\treturn isSafeCast( from, to );\n\t}\n\t// In \"mostly-safe\" casting mode, in addition to \"safe\" casts, for floating-point data types, downcasts are allowed...\n\tif ( casting === 'mostly-safe' ) {\n\t\treturn isMostlySafeCast( from, to );\n\t}\n\t// In \"same-kind\" casting mode, in addition to \"safe\" casts, casts within a \"kind\" (e.g., between signed integers or between floating-point numbers) are allowed...\n\treturn isSameKindCast( from, to );\n}\n\n\n// EXPORTS //\n\nexport default isAllowedCast;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport getter from '@stdlib/array-base-getter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating if an array contains a search value\n*\n* @example\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\nfunction contains( x, value ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( get( x, i ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default contains;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport dtype from '@stdlib/array-dtype';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function to tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {Function} function to test if an array contains a search value\n*\n* @example\n* var contains = factory( [ 1, 2, 3 ] );\n* // returns \n*\n* var bool = contains( 2 );\n* // returns true\n*/\nfunction factory( x ) {\n\tvar get;\n\tvar len;\n\tvar dt;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', x ) );\n\t}\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\treturn ( get === void 0 ) ? contains : accessors;\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*\n\t* @example\n\t* var out = contains( [ 1, 2, 3 ], 2 );\n\t* // returns true\n\t*/\n\tfunction contains( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( x[ i ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*/\n\tfunction accessors( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( get( x, i ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {RegExp} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string-base-capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\treturn str.replace( search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if an array contains a provided search value.\n*\n* @module @stdlib/array-base-assert-contains\n*\n* @example\n* import contains from '@stdlib/array-base-assert-contains';\n*\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data type strings.\n*\n* @param {string} [kind] - data type kind\n* @returns {Array} list of ndarray data type strings\n*\n* @example\n* var list = dtypeStrings();\n* // returns [...]\n*\n* @example\n* var list = dtypeStrings( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypeStrings() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' && kind !== 'index' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypeStrings;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'boolean' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray boolean data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'binary' );\n* // returns false\n*\n* bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nfunction isBooleanDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'boolean_index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray boolean index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray boolean index data type\n*\n* @example\n* var bool = isBooleanIndexDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isBooleanIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isBooleanIndexDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmax from '@stdlib/ndarray-base-minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if a buffer length is compatible\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\nfunction isBufferLengthCompatible( len, shape, strides, offset ) {\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tvar buf = minmax( shape, strides, offset );\n\n\t// If the indices are \"inbounds\", then the buffer length is compatible:\n\treturn ( buf[ 0 ] >= 0 && buf[ 1 ] < len );\n}\n\n\n// EXPORTS //\n\nexport default isBufferLengthCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MODES from './modes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray casting modes.\n*\n* @returns {StringArray} list of ndarray casting modes\n*\n* @example\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray casting modes.\n*\n* @module @stdlib/ndarray-casting-modes\n*\n* @example\n* import modes from '@stdlib/ndarray-casting-modes';\n*\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport modes from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported casting modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `NO_CASTING == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported casting modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `casting_modes.h` enumeration!!!!\n\treturn {\n\t\t'none': 0,\n\t\t'equiv': 1,\n\t\t'safe': 2,\n\t\t'mostly-safe': 3,\n\t\t'same-kind': 4,\n\t\t'unsafe': 5\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport modes from '@stdlib/ndarray-casting-modes';\n\n\n// VARIABLES //\n\nvar MODES = modes();\nvar len = MODES.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray casting mode.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray casting mode\n*\n* @example\n* var bool = isCastingMode( 'none' );\n* // returns true\n*\n* bool = isCastingMode( 'equiv' );\n* // returns true\n*\n* bool = isCastingMode( 'safe' );\n* // returns true\n*\n* bool = isCastingMode( 'mostly-safe' );\n* // returns true\n*\n* bool = isCastingMode( 'same-kind' );\n* // returns true\n*\n* bool = isCastingMode( 'unsafe' );\n* // returns true\n*\n* bool = isCastingMode( 'foo' );\n* // returns false\n*/\nfunction isCastingMode( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === MODES[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isCastingMode;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from '@stdlib/math-base-special-abs';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is column-major\n*\n* @example\n* var bool = isColumnMajor( [ 1, 2 ] );\n* // returns true\n*\n* bool = isColumnMajor( [ 2, 1 ] );\n* // returns false\n*/\nfunction isColumnMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 < s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport minmax from '@stdlib/ndarray-base-minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is compatible with a single memory segment.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is compatible with a single memory segment\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 10 ];\n* var strides = [ 3 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns false\n*/\nfunction isSingleSegmentCompatible( shape, strides, offset ) {\n\tvar len;\n\tvar buf;\n\n\t// Compute the total number of elements:\n\tlen = numel( shape );\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tbuf = minmax( shape, strides, offset );\n\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nexport default isSingleSegmentCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'complex_floating_point' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nfunction isComplexFloatingPointDataType( v ) { // eslint-disable-line id-length\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\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\nimport replace from '@stdlib/string-base-replace';\nimport DATA from './data.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data type single letter character abbreviations.\n*\n* @param {string} [kind] - data type kind\n* @returns {Array} list of ndarray data type single letter character abbreviations\n*\n* @example\n* var list = dtypeChars();\n* // returns [...]\n*\n* @example\n* var list = dtypeChars( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypeChars() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DATA.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' && kind !== 'index' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DATA[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'o' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypeChars;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypeChars from '@stdlib/ndarray-base-dtype-chars';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type single letter character abbreviation.\n*\n* @name isComplexFloatingPointDataTypeChar\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type single letter character abbreviation\n*\n* @example\n* var bool = isComplexFloatingPointDataTypeChar( 'r' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'c' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataTypeChar( 'z' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataTypeChar( 'f' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'd' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'o' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'k' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'i' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 's' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 't' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'u' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'b' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'a' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataTypeChar( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataTypeChar = contains( dtypeChars( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataTypeChar;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported built-in ndarray data type string.\n*\n* @name isDataTypeString\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported built-in ndarray data type string\n*\n* @example\n* var bool = isDataTypeString( 'binary' );\n* // returns true\n*\n* bool = isDataTypeString( 'float32' );\n* // returns true\n*\n* bool = isDataTypeString( 'float64' );\n* // returns true\n*\n* bool = isDataTypeString( 'generic' );\n* // returns true\n*\n* bool = isDataTypeString( 'int16' );\n* // returns true\n*\n* bool = isDataTypeString( 'int32' );\n* // returns true\n*\n* bool = isDataTypeString( 'int8' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint16' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint32' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint8' );\n* // returns true\n*\n* bool = isDataTypeString( 'uint8c' );\n* // returns true\n*\n* bool = isDataTypeString( 'foo' );\n* // returns false\n*/\nvar isDataTypeString = contains( dtypes() );\n\n\n// EXPORTS //\n\nexport default isDataTypeString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport table from './table.js';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the description for a provided data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} description(s)\n*\n* @example\n* var obj = dtypeDesc();\n* // returns {...}\n*\n* @example\n* var desc = dtypeDesc( 'float64' );\n* // returns '...'\n*\n* desc = dtypeDesc( 'generic' );\n* // returns '...'\n*/\nfunction dtypeDesc( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeDesc;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport table from './table.js';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the single letter character abbreviation for an underlying array data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} single letter character abbreviation(s)\n*\n* @example\n* var obj = dtypeChar();\n* // returns {...}\n*\n* @example\n* var ch = dtypeChar( 'float64' );\n* // returns 'd'\n*\n* ch = dtypeChar( 'generic' );\n* // returns 'o'\n*/\nfunction dtypeChar( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeChar;\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\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport table from './table.js';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the alignment (in bytes) for an underlying array data type.\n*\n* ## Notes\n*\n* - If provided an unrecognized/unsupported data type, the function returns `null`.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|number|null)} alignment (in bytes)\n*\n* @example\n* var obj = dtypeAlignment();\n* // returns {...}\n*\n* @example\n* var out = dtypeAlignment( 'float64' );\n* // returns 8\n*\n* out = dtypeAlignment( 'generic' );\n* // returns null\n*/\nfunction dtypeAlignment( dtype ) {\n\tvar v;\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\tif ( dtype ) {\n\t\tv = dtype.alignment;\n\t\tif ( isPositiveInteger( v ) ) {\n\t\t\treturn v;\n\t\t}\n\t\treturn TABLE[ resolve( dtype ) ] || null;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeAlignment;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if an object has a specified property, either own or inherited.\n*\n* @param {*} value - value to test\n* @param {*} property - property to test\n* @returns {boolean} boolean indicating if an object has a specified property\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasProp( beep, 'boop' );\n* // returns true\n*\n* @example\n* var beep = {\n* 'boop': true\n* };\n*\n* var bool = hasProp( beep, 'bap' );\n* // returns false\n*/\nfunction hasProp( value, property ) {\n\tif ( value === void 0 || value === null ) {\n\t\treturn false;\n\t}\n\tif ( typeof property === 'symbol' ) {\n\t\treturn property in Object( value );\n\t}\n\treturn ( String( property ) in Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default hasProp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport enum2str from '@stdlib/ndarray-base-dtype-enum2str';\nimport str2enum from '@stdlib/ndarray-base-dtype-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\tif ( t === 'object' && dtype && isInteger( dtype.enum ) ) {\n\t\treturn dtype.enum;\n\t}\n\tif ( isStructConstructorLike( dtype ) ) {\n\t\treturn str2enum( 'userdefined_type' );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping data type strings to descriptions.\n*\n* @private\n* @returns {Object} object mapping data type strings to descriptions\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'byte',\n\n\t\t'bool': 'boolean',\n\n\t\t'complex32': 'half-precision floating-point complex number',\n\t\t'complex64': 'single-precision floating-point complex number',\n\t\t'complex128': 'double-precision floating-point complex number',\n\n\t\t'float16': 'half-precision floating-point number',\n\t\t'bfloat16': 'brain floating-point number',\n\t\t'float32': 'single-precision floating-point number',\n\t\t'float64': 'double-precision floating-point number',\n\t\t'float128': 'quadruple-precision floating-point number',\n\n\t\t'generic': 'generic array value',\n\n\t\t'int8': 'signed 8-bit integer',\n\t\t'int16': 'signed 16-bit integer',\n\t\t'int32': 'signed 32-bit integer',\n\t\t'int64': 'signed 64-bit integer',\n\t\t'int128': 'signed 128-bit integer',\n\t\t'int256': 'signed 256-bit integer',\n\n\t\t'uint8': 'unsigned 8-bit integer',\n\t\t'uint8c': 'unsigned 8-bit integer (clamped)',\n\t\t'uint16': 'unsigned 16-bit integer',\n\t\t'uint32': 'unsigned 32-bit integer',\n\t\t'uint64': 'unsigned 64-bit integer',\n\t\t'uint128': 'unsigned 128-bit integer',\n\t\t'uint256': 'unsigned 256-bit integer'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default table;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping data type strings to single letter abbreviations.\n*\n* @private\n* @returns {Object} object mapping data type string to single letter abbreviations\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'r',\n\n\t\t'bool': 'x',\n\n\t\t'complex32': 'j',\n\t\t'complex64': 'c',\n\t\t'complex128': 'z',\n\n\t\t'float16': 'h',\n\t\t'bfloat16': 'e',\n\t\t'float32': 'f',\n\t\t'float64': 'd',\n\t\t'float128': 'g',\n\n\t\t'generic': 'o',\n\n\t\t'int8': 's',\n\t\t'int16': 'k',\n\t\t'int32': 'i',\n\t\t'int64': 'l',\n\t\t'int128': 'm',\n\t\t'int256': 'n',\n\n\t\t'uint8': 'b',\n\t\t'uint8c': 'a',\n\t\t'uint16': 't',\n\t\t'uint32': 'u',\n\t\t'uint64': 'v',\n\t\t'uint128': 'w',\n\t\t'uint256': 'y'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default table;\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 an object mapping data type strings to alignments (in bytes).\n*\n* @private\n* @returns {Object} object mapping data type string to alignments (in bytes)\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 1,\n\n\t\t'bool': 1,\n\n\t\t'complex32': 2, // same as float16\n\t\t'complex64': 4, // same as float32\n\t\t'complex128': 8, // same as float64\n\n\t\t'float16': 2,\n\t\t'bfloat16': 2,\n\t\t'float32': 4,\n\t\t'float64': 8,\n\t\t'float128': 16,\n\n\t\t'generic': null,\n\n\t\t'int8': 1,\n\t\t'int16': 2,\n\t\t'int32': 4,\n\t\t'int64': 8,\n\t\t'int128': 16,\n\t\t'int256': 32,\n\n\t\t'uint8': 1,\n\t\t'uint8c': 1,\n\t\t'uint16': 2,\n\t\t'uint32': 4,\n\t\t'uint64': 8,\n\t\t'uint128': 16,\n\t\t'uint256': 32\n\t};\n}\n\n\n// EXPORTS //\n\nexport default table;\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 no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport isPlainObject from '@stdlib/assert-is-plain-object';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtype2desc from '@stdlib/ndarray-base-dtype-desc';\nimport dtype2char from '@stdlib/ndarray-base-dtype-char';\nimport dtype2alignment from '@stdlib/ndarray-base-dtype-alignment';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `DataType`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `DataType`\n*/\nfunction isDataType( value ) { // NOTE: we do not use `ndarray/base/assert/is-data-type-object` in order to avoid circular dependencies\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tvalue.constructor.name === 'DataType' &&\n\t\t\tisString( value.char ) &&\n\t\t\tisString( value.description ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// MAIN //\n\n/**\n* Data type constructor.\n*\n* @constructor\n* @param {*} value - data type value\n* @param {Options} [options] - constructor options\n* @param {string} [options.description] - data type description\n* @throws {TypeError} first argument must be a supported data type value\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {DataType} data type instance\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var str = dt.toString();\n* // returns 'float64'\n*/\nfunction DataType( value, options ) {\n\tvar nargs;\n\tvar type;\n\tvar opts;\n\n\tnargs = arguments.length;\n\tif ( !( this instanceof DataType ) ) {\n\t\tif ( nargs < 2 ) {\n\t\t\treturn new DataType( value );\n\t\t}\n\t\treturn new DataType( value, options );\n\t}\n\tif ( isDataTypeString( value ) ) {\n\t\ttype = 'builtin';\n\t} else if ( isDataType( value ) ) {\n\t\t// Clone the input data type:\n\t\treturn new DataType( value.value, {\n\t\t\t'description': value.description\n\t\t});\n\t} else if ( isStructConstructorLike( value ) ) {\n\t\ttype = 'struct';\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a supported data type string, a struct constructor, or another data type instance. Value: `%s`.', value ) );\n\t}\n\tif ( nargs > 1 ) {\n\t\topts = options;\n\t\tif ( !isPlainObject( opts ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t}\n\t\tif ( hasOwnProp( opts, 'description' ) && !isString( opts.description ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a string. Option: `%s`.', 'description', opts.description ) );\n\t\t}\n\t} else {\n\t\topts = {};\n\t}\n\tsetReadOnly( this, '_value', value );\n\tsetReadOnly( this, '_description', opts.description || ( dtype2desc( value ) || '' ) );\n\tsetReadOnly( this, '_char', dtype2char( value ) || '' );\n\tsetReadOnly( this, '_enum', resolveEnum( value ) || -1 );\n\tsetReadOnly( this, '_alignment', dtype2alignment( value ) || -1 );\n\tsetReadOnly( this, '_byteLength', bytesPerElement( value ) || -1 );\n\tsetReadOnly( this, '_byteOrder', 'host' ); // TODO: consider supporting little-endian and big-endian byte orders\n\tsetReadOnly( this, '_type', type );\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof DataType\n* @type {string}\n* @default 'DataType'\n*\n* @example\n* var v = DataType.name;\n* // returns 'DataType'\n*/\nsetReadOnly( DataType, 'name', 'DataType' );\n\n/**\n* Alignment (in bytes) for the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a known alignment, the returned value is `-1`.\n*\n* @name alignment\n* @memberof DataType.prototype\n* @readonly\n* @type {integer}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.alignment;\n* // returns 8\n*/\nsetReadOnlyAccessor( DataType.prototype, 'alignment', function get() {\n\treturn this._alignment;\n});\n\n/**\n* Size (in bytes) of the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a known size, the returned value is `-1`.\n*\n* @name byteLength\n* @memberof DataType.prototype\n* @readonly\n* @type {integer}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.byteLength;\n* // returns 8\n*/\nsetReadOnlyAccessor( DataType.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Data type byte order.\n*\n* ## Notes\n*\n* - Potential values:\n*\n* - **host**: host platform byte order.\n* - **little-endian**: little-endian byte order.\n* - **big-endian**: big-endian byte order.\n*\n* @name byteOrder\n* @memberof DataType.prototype\n* @readonly\n* @type {string}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.byteOrder;\n* // returns 'host'\n*/\nsetReadOnlyAccessor( DataType.prototype, 'byteOrder', function get() {\n\treturn this._byteOrder;\n});\n\n/**\n* Single letter character abbreviation for the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a corresponding single letter character abbreviation, the returned value is an empty string.\n*\n* @name char\n* @memberof DataType.prototype\n* @readonly\n* @type {string}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.char;\n* // returns 'd'\n*/\nsetReadOnlyAccessor( DataType.prototype, 'char', function get() {\n\treturn this._char;\n});\n\n/**\n* Data type description.\n*\n* ## Notes\n*\n* - If a data type does not have an associated description, the returned value is an empty string.\n*\n* @name description\n* @memberof DataType.prototype\n* @readonly\n* @type {string}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.description;\n* // returns \n*/\nsetReadOnlyAccessor( DataType.prototype, 'description', function get() {\n\treturn this._description;\n});\n\n/**\n* Enumeration constant for the data type.\n*\n* ## Notes\n*\n* - If a data type does not have a corresponding known enumeration constant, the returned value is `-1`.\n*\n* @name enum\n* @memberof DataType.prototype\n* @readonly\n* @type {integer}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.enum;\n* // returns \n*/\nsetReadOnlyAccessor( DataType.prototype, 'enum', function get() {\n\treturn this._enum;\n});\n\n/**\n* Raw (original) data type value.\n*\n* @name value\n* @memberof DataType.prototype\n* @readonly\n* @type {*}\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.value;\n* // returns 'float64'\n*/\nsetReadOnlyAccessor( DataType.prototype, 'value', function get() {\n\treturn this._value;\n});\n\n/**\n* Serializes a data type instance as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `DataType` instance.\n*\n* @name toJSON\n* @memberof DataType.prototype\n* @type {Function}\n* @returns {Object} serialized instance\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var o = dt.toJSON();\n* // returns {...}\n*/\nsetReadOnly( DataType.prototype, 'toJSON', function toJSON() {\n\treturn {\n\t\t'type': 'DataType',\n\t\t'value': this.toString(),\n\t\t'byteOrder': this._byteOrder,\n\t\t'description': this._description\n\t};\n});\n\n/**\n* Serializes a data type instance to a string.\n*\n* @name toString\n* @memberof DataType.prototype\n* @type {Function}\n* @returns {string} serialized string\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.toString();\n* // returns 'float64'\n*/\nsetReadOnly( DataType.prototype, 'toString', function toString() {\n\treturn ( this._type === 'struct' ) ? this._value.layout : String( this._value );\n});\n\n/**\n* Converts a data type instance to a primitive value.\n*\n* @name valueOf\n* @memberof DataType.prototype\n* @type {Function}\n* @returns {string} primitive value\n*\n* @example\n* var dt = new DataType( 'float64' );\n* // returns \n*\n* var v = dt.valueOf();\n* // returns 'float64'\n*/\nsetReadOnly( DataType.prototype, 'valueOf', function valueOf() {\n\treturn this.toString();\n});\n\n\n// EXPORTS //\n\nexport default DataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray struct data type.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray struct data type\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var Struct = structFactory([\n* {\n* 'name': 'foo',\n* 'type': 'float64'\n* }\n* ]);\n*\n* var bool = isStructDataType( Struct );\n* // returns true\n*\n* bool = isStructDataType( 'binary' );\n* // returns false\n*\n* bool = isStructDataType( 'float32' );\n* // returns false\n*\n* bool = isStructDataType( 'float64' );\n* // returns false\n*\n* bool = isStructDataType( 'generic' );\n* // returns false\n*\n* bool = isStructDataType( 'int16' );\n* // returns false\n*\n* bool = isStructDataType( 'int32' );\n* // returns false\n*\n* bool = isStructDataType( 'int8' );\n* // returns false\n*\n* bool = isStructDataType( 'uint16' );\n* // returns false\n*\n* bool = isStructDataType( 'uint32' );\n* // returns false\n*\n* bool = isStructDataType( 'uint8' );\n* // returns false\n*\n* bool = isStructDataType( 'uint8c' );\n* // returns false\n*\n* bool = isStructDataType( 'foo' );\n* // returns false\n*/\nfunction isStructDataType( value ) {\n\treturn (\n\t\tisFunction( value ) &&\n\t\tisPositiveInteger( value.alignment ) &&\n\t\tisPositiveInteger( value.byteLength ) &&\n\t\tisFunction( value.byteLengthOf ) &&\n\t\tisFunction( value.byteOffsetOf ) &&\n\t\tisFunction( value.bufferOf ) &&\n\t\tisFunction( value.viewOf )\n\t) || (\n\t\tisDataTypeObject( value ) &&\n\t\tisStructDataType( value.value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isStructDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether two values are equal ndarray data types.\n*\n* @param {*} v1 - first input value\n* @param {*} v2 - second input value\n* @returns {boolean} boolean indicating whether two input values are equal ndarray data types\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isEqualDataType( 'binary', 'binary' );\n* // returns true\n*\n* bool = isEqualDataType( 'float32', 'float32' );\n* // returns true\n*\n* bool = isEqualDataType( 'float64', new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isEqualDataType( 'generic', new DataType( 'generic' ) );\n* // returns true\n*\n* bool = isEqualDataType( 'int16', 'int32' );\n* // returns false\n*\n* bool = isEqualDataType( 'int32', new DataType( 'int16' ) );\n* // returns false\n*/\nfunction isEqualDataType( v1, v2 ) {\n\tif ( isDataTypeString( v1 ) ) {\n\t\t// Nothing to do here. Branch is kept to avoid additional assertion logic for what is expected to be a common use case; namely, comparing data type strings...\n\t} else if ( isDataTypeObject( v1 ) ) {\n\t\tv1 = String( v1 );\n\t} else if ( isStructDataType( v1 ) ) {\n\t\tv1 = v1.layout;\n\t} else {\n\t\treturn false;\n\t}\n\tif ( isDataTypeString( v2 ) ) {\n\t\t// Nothing to do here. Branch is kept to avoid additional assertion logic for what is expected to be a common use case; namely, comparing data type strings...\n\t} else if ( isDataTypeObject( v2 ) ) {\n\t\tv2 = String( v2 );\n\t} else if ( isStructDataType( v2 ) ) {\n\t\tv2 = v2.layout;\n\t} else {\n\t\treturn false;\n\t}\n\treturn ( v1 === v2 );\n}\n\n\n// EXPORTS //\n\nexport default isEqualDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'floating_point' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray floating-point data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray floating-point data type\n*\n* @example\n* var bool = isFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'foo' );\n* // returns false\n*/\nfunction isFloatingPointDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isFloatingPointDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index data type\n*\n* @example\n* var bool = isIndexDataType( 'binary' );\n* // returns false\n*\n* bool = isIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isIndexDataType( 'generic' );\n* // returns true\n*\n* bool = isIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isIndexDataType( 'int32' );\n* // returns true\n*\n* bool = isIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isIndexDataType( 'uint8' );\n* // returns true\n*\n* bool = isIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isIndexDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MODES from './modes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray index modes.\n*\n* @returns {StringArray} list of ndarray index modes\n*\n* @example\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported index modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `throw == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported index modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `index_modes.h` enumeration!!!!\n\treturn {\n\t\t'throw': 1,\n\t\t'clamp': 2,\n\t\t'wrap': 3,\n\t\t'normalize': 4\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray index modes.\n*\n* @module @stdlib/ndarray-index-modes\n*\n* @example\n* import modes from '@stdlib/ndarray-index-modes';\n*\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport modes from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default modes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport modes from '@stdlib/ndarray-index-modes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index mode.\n*\n* @name isIndexMode\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index mode\n*\n* @example\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\n* // returns false\n*/\nvar isIndexMode = contains( modes() );\n\n\n// EXPORTS //\n\nexport default isIndexMode;\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\nimport POLICIES from './policies.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of input ndarray casting policies.\n*\n* @returns {StringArray} list of policies\n*\n* @example\n* var list = policies();\n* // returns [...]\n*/\nfunction policies() {\n\treturn POLICIES.slice();\n}\n\n\n// EXPORTS //\n\nexport default policies;\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 an object mapping supported policy strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `NONE == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @private\n* @returns {Object} object mapping supported policies to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `input_casting_policies.h` enumeration!!!!\n\treturn {\n\t\t'none': 0,\n\t\t'promoted': 1,\n\t\t'accumulation': 2,\n\t\t'output': 3\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\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* Return a list of input ndarray casting policies.\n*\n* @module @stdlib/ndarray-input-casting-policies\n*\n* @example\n* import policies from '@stdlib/ndarray-input-casting-policies';\n*\n* var list = policies();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport policies from '@stdlib/ndarray-input-casting-policies';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported input ndarray casting policy.\n*\n* @name isInputCastingPolicy\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported input ndarray casting policy\n*\n* @example\n* var bool = isInputCastingPolicy( 'none' );\n* // returns true\n*\n* bool = isInputCastingPolicy( 'promoted' );\n* // returns true\n*\n* bool = isInputCastingPolicy( 'output' );\n* // returns true\n*\n* bool = isInputCastingPolicy( 'foo' );\n* // returns false\n*/\nvar isInputCastingPolicy = contains( policies() );\n\n\n// EXPORTS //\n\nexport default isInputCastingPolicy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'integer' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray integer data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray integer data type\n*\n* @example\n* var bool = isIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isIntegerDataType( 'foo' );\n* // returns false\n*/\nfunction isIntegerDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isIntegerDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'integer_index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray integer index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray integer index data type\n*\n* @example\n* var bool = isIntegerIndexDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint8' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isIntegerIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isIntegerIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isIntegerIndexDataType;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'mask_index' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray mask index data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray mask index data type\n*\n* @example\n* var bool = isMaskIndexDataType( 'binary' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'float32' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'float64' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'generic' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'int16' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'int32' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'int8' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'uint16' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'uint32' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'uint8' );\n* // returns true\n*\n* bool = isMaskIndexDataType( 'uint8c' );\n* // returns false\n*\n* bool = isMaskIndexDataType( 'foo' );\n* // returns false\n*/\nfunction isMaskIndexDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isMaskIndexDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'numeric' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray numeric data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray numeric data type\n*\n* @example\n* var bool = isNumericDataType( 'binary' );\n* // returns false\n*\n* bool = isNumericDataType( 'float32' );\n* // returns true\n*\n* bool = isNumericDataType( 'float64' );\n* // returns true\n*\n* bool = isNumericDataType( 'generic' );\n* // returns false\n*\n* bool = isNumericDataType( 'int16' );\n* // returns true\n*\n* bool = isNumericDataType( 'int32' );\n* // returns true\n*\n* bool = isNumericDataType( 'int8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint16' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint32' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8c' );\n* // returns true\n*\n* bool = isNumericDataType( 'foo' );\n* // returns false\n*/\nfunction isNumericDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isNumericDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ORDERS from './orders.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray orders.\n*\n* @returns {StringArray} list of ndarray orders\n*\n* @example\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction orders() {\n\treturn ORDERS.slice();\n}\n\n\n// EXPORTS //\n\nexport default orders;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported layouts to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 101`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of array objects.\n*\n* @returns {Object} object mapping supported layouts to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `layouts.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 101,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 102\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of BLAS memory layouts.\n*\n* @module @stdlib/blas-base-layouts\n*\n* @example\n* import layouts from '@stdlib/blas-base-layouts';\n*\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DATA from './data.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of BLAS memory layouts.\n*\n* @returns {StringArray} list of memory layouts\n*\n* @example\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction layouts() {\n\treturn DATA.slice();\n}\n\n\n// EXPORTS //\n\nexport default layouts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { enum as layouts } from '@stdlib/blas-base-layouts';\n\n\n// VARIABLES //\n\nvar LAYOUTS = layouts();\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported orders to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported orders to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `orders.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': LAYOUTS[ 'row-major' ],\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': LAYOUTS[ 'column-major' ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray orders.\n*\n* @module @stdlib/ndarray-orders\n*\n* @example\n* import orders from '@stdlib/ndarray-orders';\n*\n* var list = orders();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport orders from '@stdlib/ndarray-orders';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray order.\n*\n* @name isOrder\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray order\n*\n* @example\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\nvar isOrder = contains( orders() );\n\n\n// EXPORTS //\n\nexport default isOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport POLICIES from './policies.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of output ndarray data type policies.\n*\n* @returns {StringArray} list of ndarray data type policies\n*\n* @example\n* var list = policies();\n* // returns [...]\n*/\nfunction policies() {\n\treturn POLICIES.slice();\n}\n\n\n// EXPORTS //\n\nexport default policies;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type policy strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @private\n* @returns {Object} object mapping supported dtype policies to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `output_dtype_policies.h` enumeration!!!!\n\treturn {\n\t\t'same': 0,\n\t\t'promoted': 1,\n\t\t'accumulation': 2,\n\t\t'boolean': 3,\n\t\t'boolean_and_generic': 4,\n\t\t'signed_integer': 5,\n\t\t'signed_integer_and_generic': 6,\n\t\t'unsigned_integer': 7,\n\t\t'unsigned_integer_and_generic': 8,\n\t\t'integer': 9,\n\t\t'integer_and_generic': 10,\n\t\t'floating_point': 11,\n\t\t'floating_point_and_generic': 12,\n\t\t'real_floating_point': 13,\n\t\t'real_floating_point_and_generic': 14,\n\t\t'complex_floating_point': 15,\n\t\t'complex_floating_point_and_generic': 16,\n\t\t'real': 17,\n\t\t'real_and_generic': 18,\n\t\t'numeric': 19,\n\t\t'numeric_and_generic': 20,\n\t\t'integer_index': 21,\n\t\t'integer_index_and_generic': 22,\n\t\t'boolean_index': 23,\n\t\t'boolean_index_and_generic': 24,\n\t\t'mask_index': 25,\n\t\t'mask_index_and_generic': 26,\n\t\t'default': 27,\n\t\t'default_index': 28\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of output ndarray data type policies.\n*\n* @module @stdlib/ndarray-output-dtype-policies\n*\n* @example\n* import policies from '@stdlib/ndarray-output-dtype-policies';\n*\n* var list = policies();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\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\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport policies from '@stdlib/ndarray-output-dtype-policies';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray output data type policy.\n*\n* @name isOutputDataTypePolicy\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray output data type policy\n*\n* @example\n* var bool = isOutputDataTypePolicy( 'boolean' );\n* // returns true\n*\n* bool = isOutputDataTypePolicy( 'real' );\n* // returns true\n*\n* bool = isOutputDataTypePolicy( 'numeric' );\n* // returns true\n*\n* bool = isOutputDataTypePolicy( 'foo' );\n* // returns false\n*/\nvar isOutputDataTypePolicy = contains( policies() );\n\n\n// EXPORTS //\n\nexport default isOutputDataTypePolicy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\nvar bool = isFunction( Object.assign ); // eslint-disable-line node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies own enumerable properties from source objects to a target object.\n*\n* ## Notes\n*\n* - If a property key is present in multiple sources, the property from the last source that defines the key prevails.\n* - The target object is mutated.\n* - Both string and symbol properties are copied.\n*\n* @name assign\n* @type {Function}\n* @param {Object} target - target object\n* @param {...Object} source - source object(s)\n* @throws {TypeError} first argument must not be null or undefined\n* @returns {Object} target object\n*\n* @example\n* var obj1 = {\n* 'a': 'beep'\n* };\n* var obj2 = {\n* 'b': 'boop'\n* };\n*\n* var out = assign( obj1, obj2 );\n* // returns { 'a': 'beep', 'b': 'boop' }\n*/\nvar assign = Object.assign; // eslint-disable-line node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar bool = ( typeof Object.getOwnPropertySymbols !== 'undefined' );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Object from '@stdlib/object-ctor';\n\n\n// VARIABLES //\n\nvar propertySymbols = Object.getOwnPropertySymbols;\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own symbol properties.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.getOwnPropertySymbols()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {Array} a list of own symbol properties\n*\n* @example\n* var symbols = getOwnPropertySymbols( {} );\n*/\nfunction getOwnPropertySymbols( value ) {\n\treturn propertySymbols( Object( value ) );\n}\n\n\n// EXPORTS //\n\nexport default getOwnPropertySymbols;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an array of an object's own symbol properties.\n*\n* @module @stdlib/utils-property-symbols\n*\n* @example\n* import getOwnPropertySymbols from '@stdlib/utils-property-symbols';\n*\n* var symbols = getOwnPropertySymbols( {} );\n*/\n\n// MODULES //\n\nimport HAS_BUILTIN from './has_builtin.js';\nimport builtin from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( HAS_BUILTIN ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Copy enumerable own properties from one or more source objects to a target object.\n*\n* @module @stdlib/object-assign\n*\n* @example\n* import assign from '@stdlib/object-assign';\n*\n* var out = assign( {}, { 'foo': 'bar' }, { 'baz': 'beep' } );\n* // returns { 'foo': 'bar', 'baz': 'beep' }\n*/\n\n// MODULES //\n\nimport hasObjectAssign from './has_object_assign.js';\nimport main from './builtin.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar assign;\nif ( hasObjectAssign ) {\n\tassign = main;\n} else {\n\tassign = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an array of an object's own symbol properties.\n*\n* ## Notes\n*\n* - In contrast to the built-in `Object.getOwnPropertySymbols()`, this function returns an empty array if provided `undefined` or `null`, rather than throwing an error.\n*\n* @private\n* @param {*} value - input object\n* @returns {EmptyArray} a list of own symbol properties\n*\n* @example\n* var symbols = getOwnPropertySymbols( {} );\n* // returns []\n*/\nfunction getOwnPropertySymbols() {\n\treturn [];\n}\n\n\n// EXPORTS //\n\nexport default getOwnPropertySymbols;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport keys from '@stdlib/utils-keys';\nimport propertySymbols from '@stdlib/utils-property-symbols';\nimport isEnumerable from '@stdlib/assert-is-enumerable-property';\n\n\n// MAIN //\n\n/**\n* Returns an array of an object's own enumerable property names and symbols.\n*\n* @param {*} value - input object\n* @returns {Array} a list of own property enumerable names and symbols\n*\n* @example\n* var obj = {\n* 'beep': 'boop',\n* 'foo': 3.14\n* };\n*\n* var props = enumerableProperties( obj );\n* // e.g., returns [ 'beep', 'foo' ]\n*/\nfunction enumerableProperties( value ) {\n\tvar out;\n\tvar tmp;\n\tvar i;\n\n\tout = keys( value );\n\ttmp = propertySymbols( value );\n\tfor ( i = 0; i < tmp.length; i++ ) {\n\t\tif ( isEnumerable( value, tmp[ i ] ) ) {\n\t\t\tout.push( tmp[ i ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default enumerableProperties;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport enumerableProperties from '@stdlib/utils-enumerable-properties';\nimport Object from '@stdlib/object-ctor';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Copies own enumerable properties from source objects to a target object.\n*\n* ## Notes\n*\n* - If a property key is present in multiple sources, the property from the last source that defines the key prevails.\n* - The target object is mutated.\n* - Both string and symbol properties are copied.\n*\n* @param {Object} target - target object\n* @param {...Object} source - source object(s)\n* @throws {TypeError} first argument must not be null or undefined\n* @returns {Object} target object\n*\n* @example\n* var obj1 = {\n* 'a': 'beep'\n* };\n* var obj2 = {\n* 'b': 'boop'\n* };\n*\n* var out = assign( obj1, obj2 );\n* // returns { 'a': 'beep', 'b': 'boop' }\n*/\nfunction assign( target ) {\n\tvar source;\n\tvar keys;\n\tvar key;\n\tvar len;\n\tvar to;\n\tvar i;\n\tvar j;\n\tif ( target === void 0 || target === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a non-null object. Value: `%s`.', target ) );\n\t}\n\tto = Object( target );\n\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\tsource = arguments[ i ];\n\t\tif ( source === void 0 || source === null ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tkeys = enumerableProperties( Object( source ) );\n\t\tlen = keys.length;\n\t\tfor ( j = 0; j < len; j++ ) {\n\t\t\tkey = keys[ j ];\n\t\t\tto[ key ] = source[ key ];\n\t\t}\n\t}\n\treturn to;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport assign from '@stdlib/object-assign';\n\n\n// MAIN //\n\n/**\n* Returns the flags of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `flags` property\n* @returns {Object} flags\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = flags( zeros( [ 3, 3, 3 ] ), false );\n* // returns {...}\n*/\nfunction flags( x, copy ) {\n\tvar f = x.flags;\n\tif ( typeof f !== 'object' || f === null ) {\n\t\treturn {};\n\t}\n\tif ( copy ) {\n\t\treturn assign( {}, f );\n\t}\n\treturn f;\n}\n\n\n// EXPORTS //\n\nexport default flags;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport flags from '@stdlib/ndarray-base-flags';\n\n\n// MAIN //\n\n/**\n* Returns a specified flag for a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {(string|symbol)} name - flag name\n* @returns {*} flag value\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = flag( zeros( [ 3, 3, 3 ] ), 'READONLY' );\n* // returns \n*/\nfunction flag( x, name ) {\n\treturn flags( x, false )[ name ];\n}\n\n\n// EXPORTS //\n\nexport default flag;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport flag from '@stdlib/ndarray-base-flag';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray is read-only.\n*\n* @param {ndarray} arr - input ndarray\n* @returns {boolean} boolean indicating whether an ndarray is read-only\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1, 2, 3, 4 ], {\n* 'readonly': true\n* });\n* var bool = isReadOnly( x );\n* // returns true\n*\n* x = array( [ 1, 2, 3, 4 ] );\n* bool = isReadOnly( x );\n* // returns false\n*/\nfunction isReadOnly( arr ) {\n\treturn ( flag( arr, 'READONLY' ) === true );\n}\n\n\n// EXPORTS //\n\nexport default isReadOnly;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'real' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nfunction isRealDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'real_floating_point' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued floating-point data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued floating-point data type\n*\n* @example\n* var bool = isRealFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\n* // returns false\n*/\nfunction isRealFloatingPointDataType( v ) { // eslint-disable-line id-length\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isRealFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport abs from '@stdlib/math-base-special-abs';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is row-major\n*\n* @example\n* var bool = isRowMajor( [ 2, 1 ] );\n* // returns true\n*\n* bool = isRowMajor( [ 1, 2 ] );\n* // returns false\n*/\nfunction isRowMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 > s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isRowMajor;\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* Tests whether an input value is the string representing row-major order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean result\n*\n* @example\n* var bool = isRowMajorString( 'row-major' );\n* // returns true\n*\n* bool = isRowMajorString( 'column-major' );\n* // returns false\n*\n* bool = isRowMajorString( 'foo' );\n* // returns false\n*/\nfunction isRowMajorString( v ) {\n\treturn ( v === 'row-major' );\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var v = min( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = min( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = min( NaN, 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = min( -0.0, +0.0 );\n* // returns +0.0\n*\n* @example\n* var v = min( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction min( x, y ) {\n\tif ( x < y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @module @stdlib/array-buffer\n*\n* @example\n* import ctor from '@stdlib/array-buffer';\n*\n* var buf = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasArrayBufferSupport from '@stdlib/assert-has-arraybuffer-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport Float64Array from '@stdlib/array-float64';\nimport GlobalArrayBuffer from './arraybuffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `ArrayBuffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `ArrayBuffer` support\n*\n* @example\n* var bool = hasArrayBufferSupport();\n* // returns \n*/\nfunction hasArrayBufferSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalArrayBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new GlobalArrayBuffer( 16 );\n\t\tbool = ( isArrayBuffer( buf ) && typeof GlobalArrayBuffer.isView === 'function' );\n\t\tif ( bool ) {\n\t\t\tview = new Float64Array( buf );\n\t\t\tview[ 0 ] = -3.14;\n\t\t\tview[ 1 ] = NaN;\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tGlobalArrayBuffer.isView( view ) &&\n\t\t\t\tbuf.byteLength === 16 &&\n\t\t\t\tview[ 0 ] === -3.14 &&\n\t\t\t\tview[ 1 ] !== view[ 1 ]\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasArrayBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\n\n\n// VARIABLES //\n\nvar hasDataView = ( typeof DataView === 'function' ); // eslint-disable-line stdlib/require-globals\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `DataView`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a DataView\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n* import DataView from '@stdlib/array-dataview';\n*\n* var bool = isDataView( new DataView( new ArrayBuffer( 10 ) ) );\n* // returns true\n*\n* @example\n* var bool = isDataView( [] );\n* // returns false\n*/\nfunction isDataView( value ) {\n\treturn (\n\t\t( hasDataView && value instanceof DataView ) || // eslint-disable-line stdlib/require-globals\n\t\tnativeClass( value ) === '[object DataView]'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataView;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof DataView === 'function' ) ? DataView : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof DataView === 'function' ) ? DataView : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @module @stdlib/array-dataview\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n* import DataView from '@stdlib/array-dataview';\n*\n* var buf = new ArrayBuffer( 10 );\n* // returns \n*\n* var dv = new DataView( buf );\n* // returns \n*/\n\n// MODULES //\n\nimport hasDataViewSupport from '@stdlib/assert-has-dataview-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasDataViewSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataView from '@stdlib/assert-is-dataview';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport GlobalDataView from './dataview.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `DataView` support.\n*\n* @returns {boolean} boolean indicating if an environment has `DataView` support\n*\n* @example\n* var bool = hasDataViewSupport();\n* // returns \n*/\nfunction hasDataViewSupport() {\n\tvar bool;\n\tvar view;\n\tvar buf;\n\n\tif ( typeof GlobalDataView !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tbuf = new ArrayBuffer( 24 );\n\t\tview = new GlobalDataView( buf, 8 );\n\t\tbool = ( isDataView( view ) && typeof view.getFloat64 === 'function' && typeof view.setFloat64 === 'function' );\n\t\tif ( bool ) {\n\t\t\tview.setFloat64( 0, -3.14 );\n\t\t\tview.setFloat64( 8, NaN );\n\t\t\tbool = (\n\t\t\t\tbool &&\n\t\t\t\tview.buffer === buf &&\n\t\t\t\tview.byteLength === 16 &&\n\t\t\t\tview.byteOffset === 8 &&\n\t\t\t\tview.getFloat64( 0 ) === -3.14 &&\n\t\t\t\tview.getFloat64( 8 ) !== view.getFloat64( 8 )\n\t\t\t);\n\t\t}\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasDataViewSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\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// Define a property name which is unlikely to be used in end user code:\nvar PRIVATE_BUFFER = '__@@##$$@@__struct_buffer__@@$$##@@__';\n\n\n// EXPORTS //\n\nexport default PRIVATE_BUFFER;\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\nvar CTOR_NAME = 'Struct';\n\n\n// EXPORTS //\n\nexport default CTOR_NAME;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a non-enumerable read-write accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - get accessor\n* @param {Function} setter - set accessor\n*\n* @example\n* function getter() {\n* return name + ' foo';\n* }\n*\n* function setter( v ) {\n* name = v;\n* }\n*\n* var name = 'bar';\n* var obj = {};\n*\n* setNonEnumerableReadWriteAccessor( obj, 'foo', getter, setter );\n*\n* var v = obj.foo;\n* // returns 'bar foo'\n*\n* obj.foo = 'beep';\n*\n* v = obj.foo;\n* // returns 'beep foo'\n*/\nfunction setNonEnumerableReadWriteAccessor( obj, prop, getter, setter ) { // eslint-disable-line id-length\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': false,\n\t\t'get': getter,\n\t\t'set': setter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setNonEnumerableReadWriteAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-only accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - accessor\n*\n* @example\n* function getter() {\n* return 'bar';\n* }\n*\n* var obj = {};\n*\n* setReadOnlyAccessor( obj, 'foo', getter );\n*\n* try {\n* obj.foo = 'boop';\n* } catch ( err ) {\n* console.error( err.message );\n* }\n*/\nfunction setReadOnlyAccessor( obj, prop, getter ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'get': getter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadOnlyAccessor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\n\n\n// MAIN //\n\n/**\n* Defines a read-write accessor.\n*\n* @param {Object} obj - object on which to define the property\n* @param {(string|symbol)} prop - property name\n* @param {Function} getter - get accessor\n* @param {Function} setter - set accessor\n*\n* @example\n* function getter() {\n* return name + ' foo';\n* }\n*\n* function setter( v ) {\n* name = v;\n* }\n*\n* var name = 'bar';\n* var obj = {};\n*\n* setReadWriteAccessor( obj, 'foo', getter, setter );\n*\n* var v = obj.foo;\n* // returns 'bar foo'\n*\n* obj.foo = 'beep';\n*\n* v = obj.foo;\n* // returns 'beep foo'\n*/\nfunction setReadWriteAccessor( obj, prop, getter, setter ) {\n\tdefineProperty( obj, prop, {\n\t\t'configurable': false,\n\t\t'enumerable': true,\n\t\t'get': getter,\n\t\t'set': setter\n\t});\n}\n\n\n// EXPORTS //\n\nexport default setReadWriteAccessor;\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\nvar DATA_VIEW_METHODS = {\n\t'int8': {\n\t\t'get': 'getInt8',\n\t\t'set': 'setInt8'\n\t},\n\t'int16': {\n\t\t'get': 'getInt16',\n\t\t'set': 'setInt16'\n\t},\n\t'int32': {\n\t\t'get': 'getInt32',\n\t\t'set': 'setInt32'\n\t},\n\t'int64': {\n\t\t'get': 'getBigInt64',\n\t\t'set': 'setBigInt64'\n\t},\n\t'uint8': {\n\t\t'get': 'getUint8',\n\t\t'set': 'setUint8'\n\t},\n\t'uint16': {\n\t\t'get': 'getUint16',\n\t\t'set': 'setUint16'\n\t},\n\t'uint32': {\n\t\t'get': 'getUint32',\n\t\t'set': 'setUint32'\n\t},\n\t'uint64': {\n\t\t'get': 'getBigUint64',\n\t\t'set': 'setBigUint64'\n\t},\n\t'float16': {\n\t\t'get': 'getFloat16',\n\t\t'set': 'setFloat16'\n\t},\n\t'float32': {\n\t\t'get': 'getFloat32',\n\t\t'set': 'setFloat32'\n\t},\n\t'float64': {\n\t\t'get': 'getFloat64',\n\t\t'set': 'setFloat64'\n\t},\n\t'complex32': {\n\t\t'get': 'getFloat16',\n\t\t'set': 'setFloat16'\n\t},\n\t'complex64': {\n\t\t'get': 'getFloat32',\n\t\t'set': 'setFloat32'\n\t},\n\t'complex128': {\n\t\t'get': 'getFloat64',\n\t\t'set': 'setFloat64'\n\t},\n\t'bool': {\n\t\t'get': 'getUint8',\n\t\t'set': 'setUint8'\n\t}\n};\n\n\n// EXPORTS //\n\nexport default DATA_VIEW_METHODS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from './ctors.js';\n\n\n// VARIABLES //\n\nvar bool;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if an environment is little endian.\n*\n* @private\n* @returns {boolean} boolean indicating if an environment is little endian\n*\n* @example\n* var bool = isLittleEndian();\n* // returns \n*/\nfunction isLittleEndian() {\n\tvar uint16view;\n\tvar uint8view;\n\n\tuint16view = new ctors[ 'uint16' ]( 1 );\n\n\t/*\n\t* Set the uint16 view to a value having distinguishable lower and higher order words.\n\t*\n\t* 4660 => 0x1234 => 0x12 0x34 => '00010010 00110100' => (0x12,0x34) == (18,52)\n\t*/\n\tuint16view[ 0 ] = 0x1234;\n\n\t// Create a uint8 view on top of the uint16 buffer:\n\tuint8view = new ctors[ 'uint8' ]( uint16view.buffer );\n\n\t// If little endian, the least significant byte will be first...\n\treturn ( uint8view[ 0 ] === 0x34 );\n}\n\n\n// MAIN //\n\nbool = isLittleEndian();\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint16Array from '@stdlib/array-uint16';\n\n\n// MAIN //\n\nvar ctors = {\n\t'uint16': Uint16Array,\n\t'uint8': Uint8Array\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex64 from '@stdlib/complex-float32-ctor';\nimport Complex128 from '@stdlib/complex-float64-ctor';\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'complex64': Complex64,\n\t'complex128': Complex128\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns a complex number constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'complex128' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'complex' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from '@stdlib/complex-ctors';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'float64': 'complex128',\n\t'float32': 'complex64'\n};\nvar DEFAULT_CTOR = ctors( TABLE[ 'float64' ] );\n\n\n// MAIN //\n\n/**\n* Creates a complex number.\n*\n* @param {number} real - real component\n* @param {number} imag - imaginary component\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {Complex} complex number\n*\n* @example\n* var z = complex( 5.0, 3.0, 'float64' );\n* // returns \n*/\nfunction complex( real, imag, dtype ) {\n\tvar ctor;\n\tif ( arguments.length > 2 ) {\n\t\tctor = ctors( TABLE[ dtype ] );\n\t\tif ( ctor ) {\n\t\t\treturn new ctor( real, imag );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new DEFAULT_CTOR( real, imag );\n}\n\n\n// EXPORTS //\n\nexport default complex;\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 no-invalid-this, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport complex from '@stdlib/complex-cmplx';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// VARIABLES //\n\nvar CMPLX_TO_REAL = {\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for resolving field data\n*/\nfunction getComplex( obj, method ) {\n\treturn getter;\n\n\t/**\n\t* Reads a complex number from an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {Complex} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\tvar re = view[ method ]( obj.byteOffset, IS_LITTLE_ENDIAN );\n\t\tvar im = view[ method ]( obj.byteOffset+(obj.byteLength/2), IS_LITTLE_ENDIAN );\n\t\treturn complex( re, im, CMPLX_TO_REAL[ obj.type ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getComplex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Int16Array from '@stdlib/array-int16';\nimport Int32Array from '@stdlib/array-int32';\nimport Int8Array from '@stdlib/array-int8';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns a typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 array settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32',\n\t\t\t'boolean': 'bool',\n\t\t\t'index': 'int32',\n\t\t\t'integer_index': 'int32',\n\t\t\t'boolean_index': 'bool',\n\t\t\t'mask_index': 'uint8'\n\t\t}\n\t};\n}\n\n\n// EXPORTS //\n\nexport default defaults;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defaults from './main.js';\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'dtypes.boolean': DEFAULTS.dtypes.boolean,\n\t'dtypes.index': DEFAULTS.dtypes.index,\n\t'dtypes.integer_index': DEFAULTS.dtypes.integer_index,\n\t'dtypes.boolean_index': DEFAULTS.dtypes.boolean_index,\n\t'dtypes.mask_index': DEFAULTS.dtypes.mask_index\n};\n\n\n// MAIN //\n\n/**\n* Returns a default array setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return default array settings.\n*\n* @module @stdlib/array-defaults\n*\n* @example\n* import defaults from '@stdlib/array-defaults';\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport get from './get.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport ctors from '@stdlib/array-typed-ctors';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport defaults from '@stdlib/array-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\nvar Complex64Array = ctors( 'complex64' );\nvar Complex128Array = ctors( 'complex128' );\nvar BooleanArray = ctors( 'bool' );\n\n\n// MAIN //\n\n/**\n* Creates a typed array.\n*\n* @param {(NonNegativeInteger|ComplexArray|TypedArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {(ComplexArray|TypedArray)} typed array\n*\n* @example\n* var arr = typedarray();\n* // returns \n*\n* @example\n* var arr = typedarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var arr = typedarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* import ArrayBuffer from '@stdlib/array-buffer';\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\nfunction typedarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\n\t\t// Note: the following checks are not particularly robust, as `instanceof` will fail for cross-realm instances...\n\t\tif ( arg instanceof Complex64Array ) {\n\t\t\targ = reinterpret64( arg, 0 );\n\t\t} else if ( arg instanceof Complex128Array ) {\n\t\t\targ = reinterpret128( arg, 0 );\n\t\t} else if ( arg instanceof BooleanArray ) {\n\t\t\targ = reinterpretBoolean( arg, 0 );\n\t\t}\n\t\treturn new ctor( arg );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nexport default typedarray;\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\nimport format from '@stdlib/string-format';\nimport DATA_VIEW_METHODS from './data_view_methods.js';\nimport getNumber from './get_number.js';\nimport getBoolean from './get_boolean.js';\nimport getComplex from './get_complex.js';\nimport getBigInt from './get_bigint.js';\nimport getStruct from './get_struct.js';\nimport getTypedArray from './get_typedarray.js';\nimport getStructArray from './get_struct_array.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @throws {Error} unexpected error\n* @returns {Function} function for resolving field data\n*/\nfunction getter( obj ) {\n\tif ( obj.length ) {\n\t\tif ( obj.isStructType ) {\n\t\t\treturn getStructArray( obj );\n\t\t}\n\t\treturn getTypedArray( obj );\n\t}\n\tswitch ( obj.type ) {\n\tcase 'float64':\n\tcase 'float32':\n\tcase 'float16':\n\tcase 'int8':\n\tcase 'int16':\n\tcase 'int32':\n\tcase 'uint8':\n\tcase 'uint16':\n\tcase 'uint32':\n\t\treturn getNumber( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tcase 'int64':\n\tcase 'uint64':\n\t\treturn getBigInt( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tcase 'bool':\n\t\treturn getBoolean( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tcase 'complex128':\n\tcase 'complex64':\n\tcase 'complex32':\n\t\treturn getComplex( obj, DATA_VIEW_METHODS[ obj.type ].get );\n\n\tdefault:\n\t\tif ( obj.isStructType ) {\n\t\t\treturn getStruct( obj );\n\t\t}\n\t\t// Ensure that we fail loudly if we have failed to add support for newly added data types:\n\t\tthrow new Error( format( 'unexpected error. Unrecognized data type. Value: `%s`.', obj.type ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getter;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for resolving field data\n*/\nfunction getStructArray( obj ) {\n\treturn getter;\n\n\t/**\n\t* Returns a list of `struct` views of an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {Array} result\n\t*/\n\tfunction getter() {\n\t\tvar offset;\n\t\tvar view;\n\t\tvar out;\n\t\tvar i;\n\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\toffset = view.byteOffset + obj.byteOffset;\n\t\tout = [];\n\t\tfor ( i = 0; i < obj.length; i++ ) {\n\t\t\tout.push( new obj.type( view.buffer, offset, obj.byteLength ) );\n\t\t\toffset += obj.byteOffset;\n\t\t}\n\t\treturn out;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getStructArray;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport typedarray from '@stdlib/array-typed';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for resolving field data\n*/\nfunction getTypedArray( obj ) {\n\treturn getter;\n\n\t/**\n\t* Returns a typed array view of an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {TypedArray} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn typedarray( view.buffer, view.byteOffset+obj.byteOffset, obj.length, obj.type ); // eslint-disable-line max-len\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getTypedArray;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for resolving field data\n*/\nfunction getBigInt( obj, method ) {\n\treturn getter;\n\n\t/**\n\t* Reads a BigInt value from an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {BigInt} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn view[ method ]( obj.byteOffset, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getBigInt;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport Boolean from '@stdlib/boolean-ctor';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for resolving field data\n*/\nfunction getBoolean( obj, method ) {\n\treturn getter;\n\n\t/**\n\t* Reads a boolean value from an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {boolean} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn Boolean( view[ method ]( obj.byteOffset, IS_LITTLE_ENDIAN ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getBoolean;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for resolving field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for resolving field data\n*/\nfunction getStruct( obj ) {\n\treturn getter;\n\n\t/**\n\t* Returns a `struct` view of an underlying byte buffer.\n\t*\n\t* @private\n\t* @returns {Object} result\n\t*/\n\tfunction getter() {\n\t\tvar view = this[ PRIVATE_BUFFER ];\n\t\treturn new obj.type( view.buffer, view.byteOffset+obj.byteOffset, obj.byteLength ); // eslint-disable-line max-len\n\t}\n}\n\n\n// EXPORTS //\n\nexport default getStruct;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', ... ]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' && kind !== 'index' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array real-valued floating-point data type.\n*\n* @name isRealFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array real-valued floating-point data type\n*\n* @example\n* var bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isRealFloatingPointDataType = contains( dtypes( 'real_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isRealFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array signed integer data type.\n*\n* @name isSignedIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array signed integer data type\n*\n* @example\n* var bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isSignedIntegerDataType = contains( dtypes( 'signed_integer' ) );\n\n\n// EXPORTS //\n\nexport default isSignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getGlobal from '@stdlib/utils-global';\n\n\n// VARIABLES //\n\nvar Global = getGlobal();\n\n\n// MAIN //\n\n/**\n* Tests for native `BigInt` support.\n*\n* @returns {boolean} boolean indicating if an environment has `BigInt` support\n*\n* @example\n* var bool = hasBigIntSupport();\n* // returns \n*/\nfunction hasBigIntSupport() {\n\treturn (\n\t\ttypeof Global.BigInt === 'function' &&\n\t\ttypeof BigInt === 'function' && // eslint-disable-line stdlib/require-globals\n\t\ttypeof Global.BigInt( '1' ) === 'bigint' &&\n\t\ttypeof BigInt( '1' ) === 'bigint' // eslint-disable-line stdlib/require-globals, no-undef, stdlib/no-builtin-big-int\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasBigIntSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is a BigInt primitive.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a BigInt primitive\n*/\nfunction isBigInt( value ) {\n\treturn ( typeof value === 'bigint' );\n}\n\n\n// EXPORTS //\n\nexport default isBigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport nativeClass from '@stdlib/utils-native-class';\nimport test from './try2valueof.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a BigInt object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a BigInt object\n*/\nfunction BigInt( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tnativeClass( value ) === '[object BigInt]' &&\n\t\ttest( value )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default BigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Attempts to call a `BigInt` method.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if able to call a `BigInt` method\n*/\nfunction test( value ) {\n\ttry {\n\t\treturn (\n\t\t\t// Objects created via `Object.create( null )` have no `valueOf()` method:\n\t\t\ttypeof value.valueOf() === 'bigint'\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a BigInt.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a BigInt\n*/\nfunction isBigInt( value ) {\n\treturn ( isPrimitive( value ) || isObject( value ) );\n}\n\n\n// EXPORTS //\n\nexport default isBigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Creates a function which always returns the same value.\n*\n* @param {*} [value] - value to always return\n* @returns {Function} constant function\n*\n* @example\n* var fcn = wrap( 3.14 );\n*\n* var v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*\n* v = fcn();\n* // returns 3.14\n*/\nfunction wrap( value ) {\n\treturn constantFunction;\n\n\t/**\n\t* Constant function.\n\t*\n\t* @private\n\t* @returns {*} constant value\n\t*/\n\tfunction constantFunction() {\n\t\treturn value;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport isSymbol from './generic.js';\nimport isPrimitive from './primitive.js';\nimport isObject from './object.js';\n\n\n// MAIN //\n\nsetReadOnly( isSymbol, 'isPrimitive', isPrimitive );\nsetReadOnly( isSymbol, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default isSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport constantFunction from '@stdlib/utils-constant-function';\n\n\n// MAIN //\n\nvar isBigInt = constantFunction( false );\nvar isPrimitive = constantFunction( false );\nvar isObject = constantFunction( false );\n\nsetReadOnly( isBigInt, 'isPrimitive', isPrimitive );\nsetReadOnly( isBigInt, 'isObject', isObject );\n\n\n// EXPORTS //\n\nexport default isBigInt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is a BigInt.\n*\n* @module @stdlib/assert-is-bigint\n*\n* @example\n* import BigInt from '@stdlib/bigint-ctor';\n* import isBigInt from '@stdlib/assert-is-bigint';\n*\n* var bool = isBigInt( BigInt( '1' ) );\n* // returns true\n*\n* bool = isBigInt( Object( BigInt( '1' ) ) );\n* // returns true\n*\n* bool = isBigInt( {} );\n* // returns false\n*\n* @example\n* import { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\n*\n* var bool = isBigInt( BigInt( '1' ) );\n* // returns true\n*\n* bool = isBigInt( Object( BigInt( '1' ) ) );\n* // returns false\n*\n* bool = isBigInt( {} );\n* // returns false\n*\n* @example\n* import { isObject as isBigIntObject } from '@stdlib/assert-is-bigint';\n*\n* var bool = isBigIntObject( BigInt( '1' ) );\n* // returns false\n*\n* bool = isBigIntObject( Object( BigInt( '1' ) ) );\n* // returns true\n*\n* bool = isBigIntObject( {} );\n* // returns false\n*/\n\n// MODULES //\n\nimport hasBigInts from '@stdlib/assert-has-bigint-support';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar isBigInt;\nif ( hasBigInts() ) {\n\tisBigInt = main;\n} else {\n\tisBigInt = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default isBigInt;\n\n// exports: { \"isPrimitive\": \"isBigInt.isPrimitive\", \"isObject\": \"isBigInt.isObject\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport NINF from '@stdlib/constants-float64-ninf';\n\n\n// MAIN //\n\n/**\n* Tests if a double-precision floating-point numeric value is negative zero.\n*\n* @param {number} x - value to test\n* @returns {boolean} boolean indicating whether the value is negative zero\n*\n* @example\n* var bool = isNegativeZero( -0.0 );\n* // returns true\n*\n* @example\n* var bool = isNegativeZero( 0.0 );\n* // returns false\n*/\nfunction isNegativeZero( x ) {\n\treturn (x === 0.0 && 1.0/x === NINF);\n}\n\n\n// EXPORTS //\n\nexport default isNegativeZero;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Smallest positive single-precision floating-point subnormal number.\n*\n* @module @stdlib/constants-float32-smallest-subnormal\n* @type {number}\n*\n* @example\n* import FLOAT32_SMALLEST_SUBNORMAL from '@stdlib/constants-float32-smallest-subnormal';\n* // returns 1.401298464324817e-45\n*/\n\n\n// MAIN //\n\n/**\n* Smallest positive single-precision floating-point subnormal number.\n*\n* ## Notes\n*\n* The number has the value\n*\n* ```tex\n* \\frac{1}{2^{127-1} 2^{23}}\n* ```\n*\n* which corresponds to the bit sequence\n*\n* ```binarystring\n* 0 00000000 00000000000000000000001\n* ```\n*\n* @constant\n* @type {number}\n* @default 1.401298464324817e-45\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_SMALLEST_SUBNORMAL = 1.401298464324817e-45;\n\n\n// EXPORTS //\n\nexport default FLOAT32_SMALLEST_SUBNORMAL;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Maximum safe single-precision floating-point integer.\n*\n* @module @stdlib/constants-float32-max-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT32_MAX_SAFE_INTEGER from '@stdlib/constants-float32-max-safe-integer';\n* // returns 16777215\n*/\n\n\n// MAIN //\n\n/**\n* Maximum safe single-precision floating-point integer.\n*\n* ## Notes\n*\n* The maximum safe integer is given by\n*\n* ```tex\n* 2^{24} - 1\n* ```\n*\n* @constant\n* @type {number}\n* @default 16777215\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_MAX_SAFE_INTEGER = 16777215;\n\n\n// EXPORTS //\n\nexport default FLOAT32_MAX_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Minimum safe single-precision floating-point integer.\n*\n* @module @stdlib/constants-float32-min-safe-integer\n* @type {number}\n*\n* @example\n* import FLOAT32_MIN_SAFE_INTEGER from '@stdlib/constants-float32-min-safe-integer';\n* // returns -16777215\n*/\n\n\n// MAIN //\n\n/**\n* Minimum safe single-precision floating-point integer.\n*\n* ## Notes\n*\n* The minimum safe integer is given by\n*\n* ```tex\n* -(2^{24} - 1)\n* ```\n*\n* @constant\n* @type {number}\n* @default -16777215\n* @see [Safe Integers]{@link http://www.2ality.com/2013/10/safe-integers.html}\n* @see [IEEE 754]{@link https://en.wikipedia.org/wiki/IEEE_754-1985}\n*/\nvar FLOAT32_MIN_SAFE_INTEGER = -16777215;\n\n\n// EXPORTS //\n\nexport default FLOAT32_MIN_SAFE_INTEGER;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isNegativeZero from '@stdlib/math-base-assert-is-negative-zero';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport PINF from '@stdlib/constants-float64-pinf';\nimport NINF from '@stdlib/constants-float64-ninf';\nimport FLOAT32_SMALLEST_SUBNORMAL from '@stdlib/constants-float32-smallest-subnormal'; // eslint-disable-line id-length\nimport FLOAT32_MAX_SAFE_INTEGER from '@stdlib/constants-float32-max-safe-integer';\nimport FLOAT32_MIN_SAFE_INTEGER from '@stdlib/constants-float32-min-safe-integer';\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the minimum floating-point array data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} array data type\n*/\nfunction minFloatDataType( value ) {\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value >= FLOAT32_MIN_SAFE_INTEGER && value <= FLOAT32_MAX_SAFE_INTEGER ) { // eslint-disable-line max-len\n\t\t\treturn 'float32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// MAIN //\n\n/**\n* Returns the minimum array data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} array data type\n*\n* @example\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* @example\n* var dt = minDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minDataType( value ) {\n\tif ( !isNumber( value ) ) {\n\t\tif ( isBoolean( value ) ) {\n\t\t\treturn 'bool';\n\t\t}\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tif ( minFloatDataType( value.re ) === 'float64' || minFloatDataType( value.im ) === 'float64' ) {\n\t\t\t\treturn 'complex128';\n\t\t\t}\n\t\t\treturn 'complex64';\n\t\t}\n\t\treturn 'generic';\n\t}\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value === 0 && isNegativeZero( value ) ) {\n\t\t\treturn 'float32';\n\t\t}\n\t\tif ( value < 0 ) {\n\t\t\tif ( value >= INT8_MIN ) {\n\t\t\t\treturn 'int8';\n\t\t\t}\n\t\t\tif ( value >= INT16_MIN ) {\n\t\t\t\treturn 'int16';\n\t\t\t}\n\t\t\tif ( value >= INT32_MIN ) {\n\t\t\t\treturn 'int32';\n\t\t\t}\n\t\t\treturn 'float64';\n\t\t}\n\t\tif ( value <= UINT8_MAX ) {\n\t\t\treturn 'uint8';\n\t\t}\n\t\tif ( value <= UINT16_MAX ) {\n\t\t\treturn 'uint16';\n\t\t}\n\t\tif ( value <= UINT32_MAX ) {\n\t\t\treturn 'uint32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// EXPORTS //\n\nexport default minDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from complex number constructors to data types...\nvar ctor2dtypes = {\n\t'Complex64': 'complex64',\n\t'Complex128': 'complex128'\n};\n\n\n// EXPORTS //\n\nexport default ctor2dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dtypes from '@stdlib/complex-dtypes';\n\n\n// MAIN //\n\nvar DTYPES = dtypes();\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctors from '@stdlib/complex-ctors';\nimport DTYPES from './dtypes.js';\n\n\n// MAIN //\n\nvar CTORS = [];\nvar i;\nfor ( i = 0; i < DTYPES.length; i++ ) {\n\tCTORS.push( ctors( DTYPES[ i ] ) );\n}\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DTYPES from './dtypes.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of complex number data types.\n*\n* @returns {StringArray} list of complex number data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport constructorName from '@stdlib/utils-constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of a complex number.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var dt = dtype( new Complex128( 1.0, 2.0 ) );\n* // returns 'complex128'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\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* Converts a boolean to a number.\n*\n* @private\n* @param {boolean} value - input value\n* @returns {number} result\n*/\nfunction boolean2number( value ) {\n\treturn ( value ) ? 1 : 0;\n}\n\n\n// EXPORTS //\n\nexport default boolean2number;\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\nimport Number from '@stdlib/number-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a BigInt to a number.\n*\n* @private\n* @param {BigInt} value - input value\n* @returns {number} result\n*/\nfunction bigint2number( value ) {\n\treturn Number( value );\n}\n\n\n// EXPORTS //\n\nexport default bigint2number;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport isRealFloatingPointDataType from '@stdlib/array-base-assert-is-real-floating-point-data-type'; // eslint-disable-line id-length\nimport isSignedIntegerDataType from '@stdlib/array-base-assert-is-signed-integer-data-type';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport minDataType from '@stdlib/array-min-dtype';\nimport minSignedIntegerDataType from '@stdlib/array-base-min-signed-integer-dtype';\nimport complexDType from '@stdlib/complex-dtype';\nimport format from '@stdlib/string-format';\nimport boolean2number from './boolean2number.js';\nimport bigint2number from './bigint2number.js';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport defaults from './defaults.json';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setNumber( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a number value to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar v;\n\t\tif ( isNumber( value ) ) {\n\t\t\tif ( isRealFloatingPointDataType( obj.type ) ) {\n\t\t\t\tdt = obj.type;\n\t\t\t} else if ( !isInteger( value ) ) {\n\t\t\t\tdt = defaults.dtypes.real;\n\t\t\t} else if ( isSignedIntegerDataType( obj.type ) ) {\n\t\t\t\tdt = minSignedIntegerDataType( value );\n\t\t\t} else {\n\t\t\t\tdt = minDataType( value );\n\t\t\t}\n\t\t\tv = value;\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || ( ( obj.type === 'float32' ) ? 'complex64' : 'complex128' );\n\t\t\tv = value.re; // discard imaginary component\n\t\t} else if ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tv = boolean2number( value );\n\t\t} else if ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // note: the specific integer data type (int64 vs uint64) should not matter here\n\t\t\tv = bigint2number( value );\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tv = value;\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, v, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setNumber;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport INT8_MAX from '@stdlib/constants-int8-max';\nimport INT16_MAX from '@stdlib/constants-int16-max';\nimport INT32_MAX from '@stdlib/constants-int32-max';\n\n\n// MAIN //\n\n/**\n* Returns the minimum array data type for storing a provided signed integer value.\n*\n* @param {integer} value - scalar value\n* @returns {string} array data type\n*\n* @example\n* var dt = minSignedIntegerDataType( 9999 );\n* // returns 'int16'\n*\n* @example\n* var dt = minSignedIntegerDataType( 3 );\n* // returns 'int8'\n*/\nfunction minSignedIntegerDataType( value ) {\n\tif ( value < 0 ) {\n\t\tif ( value >= INT8_MIN ) {\n\t\t\treturn 'int8';\n\t\t}\n\t\tif ( value >= INT16_MIN ) {\n\t\t\treturn 'int16';\n\t\t}\n\t\tif ( value >= INT32_MIN ) {\n\t\t\treturn 'int32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\tif ( value <= INT8_MAX ) {\n\t\treturn 'int8';\n\t}\n\tif ( value <= INT16_MAX ) {\n\t\treturn 'int16';\n\t}\n\tif ( value <= INT32_MAX ) {\n\t\treturn 'int32';\n\t}\n\treturn 'float64';\n}\n\n\n// EXPORTS //\n\nexport default minSignedIntegerDataType;\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\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a number to a boolean.\n*\n* @private\n* @param {number} value - input value\n* @returns {boolean} result\n*/\nfunction number2boolean( value ) {\n\treturn Boolean( value );\n}\n\n\n// EXPORTS //\n\nexport default number2boolean;\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\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a complex number to a boolean.\n*\n* @private\n* @param {ComplexLike} value - input value\n* @returns {boolean} result\n*/\nfunction complex2boolean( value ) {\n\treturn Boolean( value.re || value.im );\n}\n\n\n// EXPORTS //\n\nexport default complex2boolean;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport complexDType from '@stdlib/complex-dtype';\nimport Boolean from '@stdlib/boolean-ctor';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport boolean2number from './boolean2number.js';\nimport number2boolean from './number2boolean.js';\nimport complex2boolean from './complex2boolean.js';\nimport bigint2boolean from './bigint2boolean.js';\nimport defaults from './defaults.json';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setBoolean( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a boolean value to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar v;\n\t\tif ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tv = boolean2number( value );\n\t\t} else if ( isNumber( value ) ) {\n\t\t\tdt = defaults.dtypes.real;\n\t\t\tv = boolean2number( number2boolean( value ) );\n\t\t} else if ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // note: the specific integer data type (int64 vs uint64) should not matter here\n\t\t\tv = boolean2number( bigint2boolean( value ) );\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || defaults.dtypes.complex;\n\t\t\tv = boolean2number( complex2boolean( value ) );\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tv = Boolean( value );\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, v, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setBoolean;\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\nimport Boolean from '@stdlib/boolean-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a BigInt to a boolean.\n*\n* @private\n* @param {BigInt} value - input value\n* @returns {boolean} result\n*/\nfunction bigint2boolean( value ) {\n\treturn Boolean( value );\n}\n\n\n// EXPORTS //\n\nexport default bigint2boolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* global BigInt */\n\n'use strict';\n\n// MAIN //\n\nvar BigInteger = ( typeof BigInt === 'function' ) ? BigInt : void 0; // eslint-disable-line stdlib/require-globals, node/no-unsupported-features/es-builtins\n\n\n// EXPORTS //\n\nexport default BigInteger;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport minDataType from '@stdlib/array-min-dtype';\nimport complexDType from '@stdlib/complex-dtype';\nimport BigInt from '@stdlib/bigint-ctor';\nimport Number from '@stdlib/number-ctor';\nimport floor from '@stdlib/math-base-special-floor';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport boolean2bigint from './boolean2bigint.js';\nimport defaults from './defaults.json';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setBigInt( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a number value to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar v;\n\t\tif ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // FIXME: support both int64 and uint64\n\t\t\tv = value;\n\t\t} else if ( isNumber( value ) ) {\n\t\t\tif ( isInteger( value ) ) {\n\t\t\t\tdt = minDataType( value );\n\t\t\t\tv = BigInt( value );\n\t\t\t} else {\n\t\t\t\tdt = defaults.dtypes.real;\n\t\t\t\tv = BigInt( floor( value ) );\n\t\t\t}\n\t\t} else if ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tv = boolean2bigint( value );\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || defaults.dtypes.complex;\n\t\t\tv = BigInt( floor( value.re ) ); // discard imaginary component\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tv = BigInt( floor( Number( v ) ) );\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, v, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setBigInt;\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\nimport BigInt from '@stdlib/bigint-ctor';\n\n\n// MAIN //\n\n/**\n* Converts a boolean to a BigInt.\n*\n* @private\n* @param {boolean} value - input value\n* @returns {number} result\n*/\nfunction boolean2bigint( value ) {\n\treturn BigInt( ( value ) ? 1 : 0 );\n}\n\n\n// EXPORTS //\n\nexport default boolean2bigint;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies values from `x` into `y`.\n*\n* @private\n* @param {PositiveInteger} N - number of indexed elements\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Object} y - output array object\n* @param {Collection} y.data - output array data\n* @param {Array} y.accessors - array element accessors\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Object} output array object\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\n*\n* function setter( data, idx, value ) {\n* data.set( value, idx );\n* }\n*\n* function getter( data, idx ) {\n* return data.get( idx );\n* }\n*\n* var x = {\n* 'data': new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ),\n* 'accessors': [ getter, setter ]\n* };\n*\n* var y = {\n* 'data': new Complex64Array( [ 5.0, 6.0, 7.0, 8.0 ] ),\n* 'accessors': [ getter, setter ]\n* };\n*\n* gcopy( x.data.length, x, 1, 0, y, 1, 0 );\n*\n* var view = reinterpret64( y.data, 0 );\n* // view => [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction gcopy( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar set;\n\tvar get;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\t// Cache references to array data:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache a reference to the element accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\tix = offsetX;\n\tiy = offsetY;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default gcopy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 8;\n\n\n// MAIN //\n\n/**\n* Copies values from `x` into `y`.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {Collection} y - output array\n* @param {integer} strideY - `y` stride length\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction gcopy( N, x, strideX, y, strideY ) {\n\tvar ix;\n\tvar iy;\n\tvar ox;\n\tvar oy;\n\tvar m;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tox = arraylike2object( x );\n\toy = arraylike2object( y );\n\tif ( ox.accessorProtocol || oy.accessorProtocol ) {\n\t\tif ( strideX < 0 ) {\n\t\t\tix = (1-N) * strideX;\n\t\t} else {\n\t\t\tix = 0;\n\t\t}\n\t\tif ( strideY < 0 ) {\n\t\t\tiy = (1-N) * strideY;\n\t\t} else {\n\t\t\tiy = 0;\n\t\t}\n\t\taccessors( N, ox, strideX, ix, oy, strideY, iy );\n\t\treturn oy.data;\n\t}\n\t// Use unrolled loops if both strides are equal to `1`...\n\tif ( strideX === 1 && strideY === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\ty[ i ] = x[ i ];\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn y;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\ty[ i ] = x[ i ];\n\t\t\ty[ i+1 ] = x[ i+1 ];\n\t\t\ty[ i+2 ] = x[ i+2 ];\n\t\t\ty[ i+3 ] = x[ i+3 ];\n\t\t\ty[ i+4 ] = x[ i+4 ];\n\t\t\ty[ i+5 ] = x[ i+5 ];\n\t\t\ty[ i+6 ] = x[ i+6 ];\n\t\t\ty[ i+7 ] = x[ i+7 ];\n\t\t}\n\t\treturn y;\n\t}\n\tif ( strideX < 0 ) {\n\t\tix = (1-N) * strideX;\n\t} else {\n\t\tix = 0;\n\t}\n\tif ( strideY < 0 ) {\n\t\tiy = (1-N) * strideY;\n\t} else {\n\t\tiy = 0;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = x[ ix ];\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default gcopy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 8;\n\n\n// MAIN //\n\n/**\n* Copies values from `x` into `y`.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {Collection} x - input array\n* @param {integer} strideX - `x` stride length\n* @param {NonNegativeInteger} offsetX - starting `x` index\n* @param {Collection} y - output array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - starting `y` index\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction gcopy( N, x, strideX, offsetX, y, strideY, offsetY ) {\n\tvar ix;\n\tvar iy;\n\tvar ox;\n\tvar oy;\n\tvar m;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn y;\n\t}\n\tox = arraylike2object( x );\n\toy = arraylike2object( y );\n\tif ( ox.accessorProtocol || oy.accessorProtocol ) {\n\t\taccessors( N, ox, strideX, offsetX, oy, strideY, offsetY );\n\t\treturn oy.data;\n\t}\n\tix = offsetX;\n\tiy = offsetY;\n\n\t// Use unrolled loops if both strides are equal to `1`...\n\tif ( strideX === 1 && strideY === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\ty[ iy ] = x[ ix ];\n\t\t\t\tix += strideX;\n\t\t\t\tiy += strideY;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn y;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\ty[ iy ] = x[ ix ];\n\t\t\ty[ iy+1 ] = x[ ix+1 ];\n\t\t\ty[ iy+2 ] = x[ ix+2 ];\n\t\t\ty[ iy+3 ] = x[ ix+3 ];\n\t\t\ty[ iy+4 ] = x[ ix+4 ];\n\t\t\ty[ iy+5 ] = x[ ix+5 ];\n\t\t\ty[ iy+6 ] = x[ ix+6 ];\n\t\t\ty[ iy+7 ] = x[ ix+7 ];\n\t\t\tix += M;\n\t\t\tiy += M;\n\t\t}\n\t\treturn y;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\ty[ iy ] = x[ ix ];\n\t\tix += strideX;\n\t\tiy += strideY;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default gcopy;\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\nimport isDataView from '@stdlib/assert-is-dataview';\nimport isObject from '@stdlib/assert-is-object';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a value is a `struct` instance.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `struct` instance\n*/\nfunction isStructInstance( value ) {\n\t// NOTE: the following is a relatively weak test, but we cannot use `instanceof` checks, etc, due to the factory nature of the implementation. Regardless, here, we are just trying to sniff out a `struct` type. If calling as a constructor later fails, we punt the responsibility off to the user to handle what should be an edge case. If, in the future, this check proves insufficient, we can add further \"brand\" checks...\n\treturn (\n\t\tisObject( value ) &&\n\t\tisDataView( value[ PRIVATE_BUFFER ] )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isStructInstance;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* BLAS level 1 routine to copy values from `x` into `y`.\n*\n* @module @stdlib/blas-base-gcopy\n*\n* @example\n* import gcopy from '@stdlib/blas-base-gcopy';\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy( x.length, x, 1, y, 1 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*\n* @example\n* import gcopy from '@stdlib/blas-base-gcopy';\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];\n* var y = [ 6.0, 7.0, 8.0, 9.0, 10.0 ];\n*\n* gcopy.ndarray( x.length, x, 1, 0, y, 1, 0 );\n* // y => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array boolean data type.\n*\n* @name isBooleanDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'complex64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'complex128' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nvar isBooleanDataType = contains( dtypes( 'boolean' ) );\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// VARIABLES //\n\nvar M = 8;\n\n\n// MAIN //\n\n/**\n* Fills a strided array with a specified scalar constant.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {*} alpha - scalar constant\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ];\n*\n* gfill( 3, 5.0, x, 1, x.length-3 );\n* // x => [ 1.0, -2.0, 3.0, 5.0, 5.0, 5.0 ]\n*/\nfunction gfill( N, alpha, x, strideX, offsetX ) {\n\tvar ix;\n\tvar m;\n\tvar o;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn x;\n\t}\n\to = arraylike2object( x );\n\tif ( o.accessorProtocol ) {\n\t\taccessors( N, alpha, o, strideX, offsetX );\n\t\treturn o.data;\n\t}\n\tix = offsetX;\n\n\t// Use loop unrolling if the stride is equal to `1`...\n\tif ( strideX === 1 ) {\n\t\tm = N % M;\n\n\t\t// If we have a remainder, run a clean-up loop...\n\t\tif ( m > 0 ) {\n\t\t\tfor ( i = 0; i < m; i++ ) {\n\t\t\t\tx[ ix ] = alpha;\n\t\t\t\tix += strideX;\n\t\t\t}\n\t\t}\n\t\tif ( N < M ) {\n\t\t\treturn x;\n\t\t}\n\t\tfor ( i = m; i < N; i += M ) {\n\t\t\tx[ ix ] = alpha;\n\t\t\tx[ ix+1 ] = alpha;\n\t\t\tx[ ix+2 ] = alpha;\n\t\t\tx[ ix+3 ] = alpha;\n\t\t\tx[ ix+4 ] = alpha;\n\t\t\tx[ ix+5 ] = alpha;\n\t\t\tx[ ix+6 ] = alpha;\n\t\t\tx[ ix+7 ] = alpha;\n\t\t\tix += M;\n\t\t}\n\t\treturn x;\n\t}\n\tfor ( i = 0; i < N; i++ ) {\n\t\tx[ ix ] = alpha;\n\t\tix += strideX;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Fills a strided array with a specified scalar constant.\n*\n* @private\n* @param {PositiveInteger} N - number of indexed elements\n* @param {*} alpha - scalar constant\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {Object} input array object\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\n*\n* function setter( data, idx, value ) {\n* data.set( value, idx );\n* }\n*\n* var data = new Complex64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );\n*\n* var x = {\n* 'data': data,\n* 'accessors': [ null, setter ]\n* };\n*\n* var alpha = new Complex64( 5.0, 5.0 );\n*\n* gfill( data.length, alpha, x, 1, 0 );\n*\n* var view = reinterpret64( x.data, 0 );\n* // returns [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*/\nfunction gfill( N, alpha, x, strideX, offsetX ) {\n\tvar xbuf;\n\tvar set;\n\tvar ix;\n\tvar i;\n\n\t// Cache reference to array data:\n\txbuf = x.data;\n\n\t// Cache a reference to the element accessor:\n\tset = x.accessors[ 1 ];\n\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tset( xbuf, ix, alpha );\n\t\tix += strideX;\n\t}\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default gfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Fills a strided array with a specified scalar constant.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {*} alpha - scalar constant\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @returns {Collection} input array\n*\n* @example\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gfill( x.length, 5.0, x, 1 );\n* // x => [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*/\nfunction gfill( N, alpha, x, strideX ) {\n\treturn ndarray( N, alpha, x, strideX, stride2offset( N, strideX ) );\n}\n\n\n// EXPORTS //\n\nexport default gfill;\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\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// FUNCTIONS //\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in an output array.\n*\n* @private\n* @param {Collection} x - input array\n* @param {Collection} y - output array\n* @param {integer} stride - stride length for output array\n* @param {NonNegativeInteger} offset - starting index for output array\n* @param {Function} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n* var out = internal( x, y, 1, 0, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction internal( x, y, stride, offset, fcn, thisArg ) {\n\tvar io;\n\tvar i;\n\n\tio = offset;\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\ty[ io ] = fcn.call( thisArg, x[ i ], i, x );\n\t\tio += stride;\n\t}\n\treturn y;\n}\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in an output array.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Object} y - output array object\n* @param {integer} stride - stride length for output array\n* @param {NonNegativeInteger} offset - starting index for output array\n* @param {Function} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {Object} output array object\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n*\n* var out = accessors( arraylike2object( toAccessorArray( x ) ), arraylike2object( toAccessorArray( y ) ), 1, 0, scale );\n* // y => [ 10.0, 10.0, 10.0, 10.0 ]\n*/\nfunction accessors( x, y, stride, offset, fcn, thisArg ) {\n\tvar xdata;\n\tvar ydata;\n\tvar xget;\n\tvar yset;\n\tvar io;\n\tvar i;\n\n\txdata = x.data;\n\tydata = y.data;\n\txget = x.accessors[ 0 ];\n\tyset = y.accessors[ 1 ];\n\n\tio = offset;\n\tfor ( i = 0; i < xdata.length; i++ ) {\n\t\tyset( ydata, io, fcn.call( thisArg, xget( xdata, i ), i, xdata ) );\n\t\tio += stride;\n\t}\n\treturn y;\n}\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in an output array.\n*\n* @param {Collection} x - input array\n* @param {Collection} y - output array\n* @param {integer} stride - stride length for output array\n* @param {NonNegativeInteger} offset - starting index for output array\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n*\n* var out = assign( x, y, 1, 0, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction assign( x, y, stride, offset, fcn, thisArg ) {\n\tvar xobj;\n\tvar yobj;\n\n\txobj = arraylike2object( x );\n\tyobj = arraylike2object( y );\n\tif ( xobj.accessorProtocol || yobj.accessorProtocol ) {\n\t\taccessors( xobj, yobj, stride, offset, fcn, thisArg );\n\t\treturn y;\n\t}\n\treturn internal( x, y, stride, offset, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default assign;\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\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'map' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an input array and assigns results to elements in a new output array.\n*\n* @param {Collection} x - input array\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = map( x, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*/\nfunction map( x, fcn, thisArg ) {\n\tif ( hasMethod( x, 'map' ) ) {\n\t\treturn x.map( fcn, thisArg );\n\t}\n\treturn assign( x, zeros( x.length ), 1, 0, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default map;\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* Converts a complex number to a number.\n*\n* @private\n* @param {ComplexLike} value - input value\n* @returns {number} result\n*/\nfunction complex2number( value ) {\n\treturn value.re;\n}\n\n\n// EXPORTS //\n\nexport default complex2number;\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\nimport format from '@stdlib/string-format';\nimport DATA_VIEW_METHODS from './data_view_methods.js';\nimport setNumber from './set_number.js';\nimport setComplex from './set_complex.js';\nimport setBoolean from './set_boolean.js';\nimport setBigInt from './set_bigint.js';\nimport setStruct from './set_struct.js';\nimport setTypedArray from './set_typedarray.js';\nimport setStructArray from './set_struct_array.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for setting field data.\n*\n* @private\n* @param {Object} obj - field object\n* @throws {Error} unexpected error\n* @returns {Function} function for setting field data\n*/\nfunction setter( obj ) {\n\tif ( obj.length ) {\n\t\tif ( obj.isStructType ) {\n\t\t\treturn setStructArray( obj );\n\t\t}\n\t\treturn setTypedArray( obj );\n\t}\n\tswitch ( obj.type ) {\n\tcase 'float64':\n\tcase 'float32':\n\tcase 'float16':\n\tcase 'int8':\n\tcase 'int16':\n\tcase 'int32':\n\tcase 'uint8':\n\tcase 'uint16':\n\tcase 'uint32':\n\t\treturn setNumber( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tcase 'int64':\n\tcase 'uint64':\n\t\treturn setBigInt( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tcase 'bool':\n\t\treturn setBoolean( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tcase 'complex128':\n\tcase 'complex64':\n\tcase 'complex32':\n\t\treturn setComplex( obj, DATA_VIEW_METHODS[ obj.type ].set );\n\n\tdefault:\n\t\tif ( obj.isStructType ) {\n\t\t\treturn setStruct( obj );\n\t\t}\n\t\t// Ensure that we fail loudly if we have failed to add support for newly added data types:\n\t\tthrow new Error( format( 'unexpected error. Unrecognized data type. Value: `%s`.', obj.type ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setter;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport Uint8Array from '@stdlib/array-uint8';\nimport gcopy from '@stdlib/blas-base-gcopy';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for writing field data\n*/\nfunction setStructArray( obj ) {\n\treturn setter;\n\n\t/**\n\t* Writes a list of `struct` instances to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {Collection} values - list of `struct` instances\n\t* @throws {TypeError} must provide an array-like object\n\t* @throws {RangeError} must provide an array-like object having an expected length\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( values ) {\n\t\tvar offset;\n\t\tvar views;\n\t\tvar view;\n\t\tvar dest;\n\t\tvar src;\n\t\tvar buf;\n\t\tvar nb;\n\t\tvar i;\n\n\t\tif ( !isCollection( values ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. `%s` must be an array-like object. Value: `%s`.', obj.name, values ) );\n\t\t}\n\t\tif ( values.length !== obj.length ) {\n\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be an array-like object having length %u.', obj.name, obj.length ) );\n\t\t}\n\t\tif ( obj.casting === 'none' ) {\n\t\t\tfor ( i = 0; i < values.length; i++ ) {\n\t\t\t\tif ( !( values[ i ] instanceof obj.type ) ) { // note: this check will fail for cross-realm `struct` instances\n\t\t\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Value: `%s`.', obj.name, values[ i ] ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Compute the expected number of bytes per struct view:\n\t\tnb = obj.byteLength / obj.length; // note: as a field is expected to have a homogeneous data type, the byte length should be evenly divisible by the number of elements\n\n\t\t// Check that all struct instances have the same byte length...\n\t\tviews = [];\n\t\tfor ( i = 0; i < values.length; i++ ) {\n\t\t\tbuf = this.constructor.viewOf( values[ i ] );\n\t\t\tif ( buf.byteLength !== nb ) {\n\t\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be an array-like object containing `struct` instances having the same byte length.', obj.name ) );\n\t\t\t}\n\t\t\tsrc = new Uint8Array( buf.buffer, buf.byteOffset, nb );\n\t\t\tviews.push( src );\n\t\t}\n\t\t// Write the data for each `struct` to the underlying byte buffer...\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\toffset = view.byteOffset + obj.byteOffset;\n\t\tfor ( i = 0; i < values.length; i++ ) {\n\t\t\tdest = new Uint8Array( view.buffer, offset, nb );\n\t\t\tgcopy( obj.length, views[ i ], 1, dest, 1 );\n\t\t\toffset += nb;\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setStructArray;\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 no-invalid-this, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport isRealDataType from '@stdlib/array-base-assert-is-real-data-type';\nimport typedarray from '@stdlib/array-typed';\nimport dtype from '@stdlib/array-dtype';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gcopy from '@stdlib/blas-base-gcopy';\nimport gfill from '@stdlib/blas-ext-base-gfill';\nimport map from '@stdlib/array-base-map';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport isStructInstance from './is_struct_instance.js';\nimport number2boolean from './number2boolean.js';\nimport complex2boolean from './complex2boolean.js';\nimport complex2number from './complex2number.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for writing field data\n*/\nfunction setTypedArray( obj ) {\n\treturn setter;\n\n\t/**\n\t* Writes a list of values to a typed array view of an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {Collection} value - value to set\n\t* @throws {TypeError} must provide an array-like object\n\t* @throws {RangeError} must provide an array-like object having an expected length\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar buf;\n\t\tvar dt;\n\t\tif ( !isCollection( value ) || isStructInstance( value ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. `%s` must be an array-like object. Value: `%s`.', obj.name, value ) );\n\t\t}\n\t\tif ( value.length !== obj.length ) {\n\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be an array-like object having length %u.', obj.name, obj.length ) );\n\t\t}\n\t\tdt = dtype( value );\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tbuf = this[ PRIVATE_BUFFER ];\n\t\tview = typedarray( buf.buffer, buf.byteOffset+obj.byteOffset, obj.length, obj.type );\n\t\tif ( dt === obj.type ) {\n\t\t\t// Case: complex => complex\n\t\t\tif ( isComplexDataType( dt ) ) {\n\t\t\t\tgcopy( obj.length*2, reinterpretComplex( value, 0 ), 1, reinterpretComplex( view, 0 ), 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: boolean => boolean\n\t\t\tif ( isBooleanDataType( dt ) ) {\n\t\t\t\tgcopy( obj.length, reinterpretBoolean( value, 0 ), 1, reinterpretBoolean( view, 0 ), 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: real => real\n\t\t\tgcopy( obj.length, value, 1, view, 1 );\n\t\t\treturn;\n\t\t}\n\t\t// Case: real => ???\n\t\tif ( isRealDataType( dt ) ) {\n\t\t\t// Case: real => real\n\t\t\tif ( isRealDataType( obj.type ) ) {\n\t\t\t\tgcopy( obj.length, value, 1, view, 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: real => complex\n\t\t\tif ( isComplexDataType( obj.type ) ) {\n\t\t\t\tview = reinterpretComplex( view, 0 );\n\n\t\t\t\t// TODO: consider refactoring to avoid two-passes; may require creating a separate strided utility explicitly aimed at casting real-valued arrays to complex arrays\n\t\t\t\tgcopy( obj.length, view, 2, value, 1 ); // assign to only real-components\n\t\t\t\tgfill.ndarray( obj.length, 0.0, view, 2, 1 ); // fill imaginary components with zeros\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: real => boolean\n\t\t\tmap.assign( value, view, 1, 0, number2boolean );\n\t\t\treturn;\n\t\t}\n\t\t// Case: complex => ???\n\t\tif ( isComplexDataType( dt ) ) {\n\t\t\t// Case: complex => real\n\t\t\tif ( isRealDataType( obj.type ) ) {\n\t\t\t\tmap.assign( value, view, 1, 0, complex2number ); // discard imaginary components\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: complex => complex\n\t\t\tif ( isComplexDataType( obj.type ) ) {\n\t\t\t\tgcopy( obj.length*2, reinterpretComplex( value, 0 ), 1, reinterpretComplex( view, 0 ), 1 );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Case: complex => boolean\n\t\t\tmap.assign( value, view, 1, 0, complex2boolean );\n\t\t\treturn;\n\t\t}\n\t\t// Case: boolean => ???\n\n\t\t// Case: boolean => real\n\t\tif ( isRealDataType( obj.type ) ) {\n\t\t\tgcopy( obj.length, reinterpretBoolean( value, 0 ), 1, view, 1 );\n\t\t\treturn;\n\t\t}\n\t\t// Case: boolean => complex\n\t\tview = reinterpretComplex( view, 0 );\n\n\t\t// TODO: consider refactoring to avoid two-passes; may require creating a separate strided utility explicitly aimed at casting real-valued arrays to complex arrays\n\t\tgcopy( obj.length, view, 2, reinterpretBoolean( value, 0 ), 1 ); // assign to only real-components\n\t\tgfill.ndarray( obj.length, 0.0, view, 2, 1 ); // fill imaginary components with zeros\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setTypedArray;\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 no-invalid-this, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { isPrimitive as isBigInt } from '@stdlib/assert-is-bigint';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isAllowedCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nimport complexDType from '@stdlib/complex-dtype';\nimport format from '@stdlib/string-format';\nimport boolean2number from './boolean2number.js';\nimport bigint2number from './bigint2number.js';\nimport PRIVATE_BUFFER from './private_buffer.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @param {string} method - data view method name\n* @returns {Function} function for writing field data\n*/\nfunction setComplex( obj, method ) {\n\treturn setter;\n\n\t/**\n\t* Writes a complex number to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dt;\n\t\tvar re;\n\t\tvar im;\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tdt = complexDType( value ) || obj.type;\n\t\t\tre = value.re;\n\t\t\tim = value.im;\n\t\t} else if ( isNumber( value ) ) {\n\t\t\tdt = ( obj.type === 'complex64' ) ? 'float32' : 'float64';\n\t\t\tre = value;\n\t\t\tim = 0.0;\n\t\t} else if ( isBigInt( value ) ) {\n\t\t\tdt = 'int64'; // note: the specific integer data type (int64 vs uint64) should not matter here\n\t\t\tre = bigint2number( value );\n\t\t\tim = 0.0;\n\t\t} else if ( isBoolean( value ) ) {\n\t\t\tdt = 'bool';\n\t\t\tre = boolean2number( value );\n\t\t\tim = 0.0;\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t\tre = value;\n\t\t\tim = 0.0;\n\t\t}\n\t\tif ( !isAllowedCast( dt, obj.type, obj.castingMode ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Data types: [%s, %s].', obj.name, obj.type, dt ) );\n\t\t}\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tview[ method ]( obj.byteOffset, re, IS_LITTLE_ENDIAN );\n\t\tview[ method ]( obj.byteOffset+(obj.byteLength/2), im, IS_LITTLE_ENDIAN );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setComplex;\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 no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\nimport gcopy from '@stdlib/blas-base-gcopy';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport isStructInstance from './is_struct_instance.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for writing field data.\n*\n* @private\n* @param {Object} obj - field object\n* @returns {Function} function for writing field data\n*/\nfunction setStruct( obj ) {\n\treturn setter;\n\n\t/**\n\t* Writes `struct` data to an underlying byte buffer.\n\t*\n\t* @private\n\t* @param {Object} value - value to set\n\t* @throws {TypeError} must be a `struct` instance\n\t* @throws {RangeError} must be a `struct` instance having the same byte length\n\t* @throws {TypeError} cannot cast provided values to field data type\n\t*/\n\tfunction setter( value ) {\n\t\tvar view;\n\t\tvar dest;\n\t\tvar src;\n\t\tvar buf;\n\t\tvar nb;\n\t\tif ( !isStructInstance( value ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. `%s` must be a `struct` instance. Value: `%s`.', obj.name, value ) );\n\t\t}\n\t\tif ( obj.casting === 'none' && !( value instanceof obj.type ) ) {\n\t\t\tthrow new TypeError( format( 'invalid assignment. Assigned value cannot be cast to the data type of `%s`. Value: `%s`.', obj.name, value ) );\n\t\t}\n\t\tnb = obj.byteLength;\n\n\t\tbuf = this.constructor.viewOf( value );\n\t\tif ( buf.byteLength !== nb ) {\n\t\t\tthrow new RangeError( format( 'invalid assignment. `%s` must be a `struct` instance having the same byte length.', obj.name ) );\n\t\t}\n\t\tsrc = new Uint8Array( buf.buffer, buf.byteOffset, nb );\n\n\t\tview = this[ PRIVATE_BUFFER ];\n\t\tdest = new Uint8Array( view.buffer, view.byteOffset+obj.byteOffset, nb ); // eslint-disable-line max-len\n\n\t\tgcopy( obj.length, src, 1, dest, 1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setStruct;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Fill a strided array with a specified scalar constant.\n*\n* @module @stdlib/blas-ext-base-gfill\n*\n* @example\n* import gfill from '@stdlib/blas-ext-base-gfill';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gfill( x.length, 5.0, x, 1 );\n* // x => [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*\n* @example\n* import gfill from '@stdlib/blas-ext-base-gfill';\n*\n* var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];\n*\n* gfill.ndarray( x.length, 5.0, x, 1, 0 );\n* // x => [ 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\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 callback function to elements in an input array and assign results to elements in a new output array.\n*\n* @module @stdlib/array-base-map\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import map from '@stdlib/array-base-map';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = map( x, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* @example\n* import ones from '@stdlib/array-base-ones';\n* import zeros from '@stdlib/array-base-zeros';\n* import map from '@stdlib/array-base-map';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var x = ones( 4 );\n* var y = zeros( x.length );\n*\n* var out = map.assign( x, y, 1, 0, scale );\n* // returns [ 10.0, 10.0, 10.0, 10.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\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\nvar FIELD_PROPERTIES = [\n\t'name',\n\t'type',\n\t'description',\n\t'length',\n\t'enumerable',\n\t'writable',\n\t'default',\n\t'castingMode'\n];\n\n\n// EXPORTS //\n\nexport default FIELD_PROPERTIES;\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\nimport isCollection from '@stdlib/assert-is-collection';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a field object represents a union type.\n*\n* @private\n* @param {Object} obj - input field object\n* @returns {boolean} result\n*/\nfunction isUnionType( obj ) {\n\treturn obj.type === 'union' && isCollection( obj.fields );\n}\n\n\n// EXPORTS //\n\nexport default isUnionType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is `undefined` or `null`.\n*\n* ## Notes\n*\n* - In older browsers, `undefined` is a global which can be overridden. `void`, however, is an operator which **cannot** be overridden. Consequently, better to use `void` to check for `undefined`. See [Stack Overflow][1].\n*\n* [1]: http://stackoverflow.com/a/19369078/2225624\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is undefined\n*\n* @example\n* var bool = isUndefinedOrNull( undefined );\n* // returns true\n*\n* bool = isUndefinedOrNull( null );\n* // returns true\n*\n* bool = isUndefinedOrNull( false );\n* // returns false\n*/\nfunction isUndefinedOrNull( value ) {\n\treturn ( value === void 0 || value === null );\n}\n\n\n// EXPORTS //\n\nexport default isUndefinedOrNull;\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\nimport isUndefinedOrNull from '@stdlib/assert-is-undefined-or-null';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport accessors from './accessors.js';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'join' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining strided array elements using a specified separator and alternative indexing semantics.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {string} separator - separator\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {string} joined string\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = gjoin( x.length, ',', x, 1, 0 );\n* // returns '1,2,3,4'\n*/\nfunction gjoin( N, separator, x, strideX, offsetX ) {\n\tvar out;\n\tvar ix;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\tif ( N <= 0 ) {\n\t\treturn '';\n\t}\n\t// Check for a contiguous strided array with left-to-right iteration...\n\tif ( strideX === 1 && offsetX === 0 && N === x.length && hasMethod( x, 'join' ) ) {\n\t\treturn x.join( separator );\n\t}\n\to = arraylike2object( x );\n\tif ( o.accessorProtocol ) {\n\t\treturn accessors( N, separator, o, strideX, offsetX );\n\t}\n\tix = offsetX;\n\tout = '';\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( i > 0 ) {\n\t\t\tout += separator;\n\t\t}\n\t\tv = x[ ix ];\n\t\tif ( !isUndefinedOrNull( v ) ) {\n\t\t\tout += String( v );\n\t\t}\n\t\tix += strideX;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default gjoin;\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\nimport isUndefinedOrNull from '@stdlib/assert-is-undefined-or-null';\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining strided array elements using a specified separator.\n*\n* @private\n* @param {PositiveInteger} N - number of indexed elements\n* @param {string} separator - separator\n* @param {Object} x - input array object\n* @param {Collection} x.data - input array data\n* @param {Array} x.accessors - array element accessors\n* @param {integer} strideX - stride length\n* @param {NonNegativeInteger} offsetX - starting index\n* @returns {string} joined string\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = gjoin( x.length, ',', arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns '1,2,3,4'\n*/\nfunction gjoin( N, separator, x, strideX, offsetX ) {\n\tvar xbuf;\n\tvar get;\n\tvar out;\n\tvar ix;\n\tvar v;\n\tvar i;\n\n\t// Cache reference to array data:\n\txbuf = x.data;\n\n\t// Cache a reference to the element accessor:\n\tget = x.accessors[ 0 ];\n\n\tix = offsetX;\n\tout = '';\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( i > 0 ) {\n\t\t\tout += separator;\n\t\t}\n\t\tv = get( xbuf, ix );\n\t\tif ( !isUndefinedOrNull( v ) ) {\n\t\t\tout += String( v );\n\t\t}\n\t\tix += strideX;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default gjoin;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { ndarray as strided } from '@stdlib/blas-ext-base-gjoin';\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining array elements using a specified separator.\n*\n* @param {Collection} x - input array\n* @param {string} separator - separator\n* @returns {string} output string\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = join( x, ',' );\n* // returns '1,2,3,4'\n*\n* @example\n* var x = [ 1, 2, 3, null, undefined, 4 ];\n*\n* var out = join( x, '-' );\n* // returns '1-2-3---4'\n*/\nfunction join( x, separator ) {\n\treturn strided( x.length, separator, x, 1, 0 );\n}\n\n\n// EXPORTS //\n\nexport default join;\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\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid boolean field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidBoolean( value, name ) {\n\tif ( isBoolean( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a boolean. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidBoolean;\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* Return a string created by joining strided array elements using a specified separator.\n*\n* @module @stdlib/blas-ext-base-gjoin\n*\n* @example\n* import gjoin from '@stdlib/blas-ext-base-gjoin';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var str = gjoin( x.length, ',', x, 1 );\n* // returns '1,2,3,4'\n*\n* @example\n* import gjoin from '@stdlib/blas-ext-base-gjoin';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var str = gjoin.ndarray( x.length, ',', x, 1, 0 );\n* // returns '1,2,3,4'\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\n/**\n* Returns a string created by joining strided array elements using a specified separator.\n*\n* @param {PositiveInteger} N - number of indexed elements\n* @param {string} separator - separator\n* @param {Collection} x - input array\n* @param {integer} strideX - stride length\n* @returns {string} joined string\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = gjoin( x.length, ',', x, 1 );\n* // returns '1,2,3,4'\n*/\nfunction gjoin( N, separator, x, strideX ) {\n\treturn ndarray( N, separator, x, strideX, stride2offset( N, strideX ) );\n}\n\n\n// EXPORTS //\n\nexport default gjoin;\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\nvar DTYPES = [\n\t'int8',\n\t'int16',\n\t'int32',\n\t'int64',\n\n\t'uint8',\n\t'uint16',\n\t'uint32',\n\t'uint64',\n\n\t// 'float16', // TODO: uncomment once supported\n\n\t'float32',\n\t'float64',\n\n\t// 'complex32', // TODO: uncomment once supported\n\n\t'complex64',\n\t'complex128',\n\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\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\nvar CASTING_MODES = [\n\t'none',\n\t'safe',\n\t'mostly-safe',\n\t'same-kind',\n\t'unsafe'\n];\n\n\n// EXPORTS //\n\nexport default CASTING_MODES;\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\nimport contains from '@stdlib/array-base-assert-contains';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function for testing whether a provided value is a valid enumerated field.\n*\n* @private\n* @param {Collection} values - list of possible values\n* @returns {Function} output function\n*/\nfunction isValidOneOf( values ) {\n\treturn isValid;\n\n\t/**\n\t* Tests whether a provided value is a valid enumerated field.\n\t*\n\t* @private\n\t* @param {*} value - input value\n\t* @param {string} name - field name\n\t* @returns {(null|TypeError)} error object or null\n\t*/\n\tfunction isValid( value, name ) {\n\t\tif ( contains( values, value ) ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn new TypeError( format( 'invalid argument. `%s` field must be one of the following: \"%s\". Value: `%s`.', name, join( values, ', ' ), value ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default isValidOneOf;\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\nvar ALIGNMENTS = {\n\t'int8': 1,\n\t'int16': 2,\n\t'int32': 4,\n\t'int64': 8,\n\n\t'uint8': 1,\n\t'uint16': 2,\n\t'uint32': 4,\n\t'uint64': 8,\n\n\t'float16': 2,\n\t'float32': 4,\n\t'float64': 8,\n\n\t'complex32': 2, // same as float16\n\t'complex64': 4, // same as float32\n\t'complex128': 8, // same as float64\n\n\t'bool': 1\n};\n\n\n// EXPORTS //\n\nexport default ALIGNMENTS;\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\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport hasProp from '@stdlib/assert-has-property';\nimport join from '@stdlib/array-base-join';\nimport constantFunction from '@stdlib/utils-constant-function';\nimport format from '@stdlib/string-format';\nimport hasProperties from './has_properties.js';\nimport isValidNonEmptyString from './is_valid_nonempty_string.js';\nimport isValidString from './is_valid_string.js';\nimport isValidPositiveInteger from './is_valid_positive_integer.js';\nimport isValidBoolean from './is_valid_boolean.js';\nimport isValidType from './is_valid_type.js';\nimport isValidOneOf from './is_valid_one_of.js';\nimport initFieldObject from './init_field_object.js';\nimport byteLength from './byte_length.js';\nimport CASTING_MODES from './casting_modes.js';\nimport ALIGNMENTS from './alignments.js';\n\n\n// VARIABLES //\n\nvar MANDATORY_FIELD_NAMES = [\n\t'name',\n\t'type'\n];\n\nvar VALIDATORS = {\n\t'name': isValidNonEmptyString,\n\t'type': isValidType,\n\t'description': isValidString,\n\t'length': isValidPositiveInteger,\n\t'enumerable': isValidBoolean,\n\t'writable': isValidBoolean,\n\t'default': constantFunction( null ),\n\t'castingMode': isValidOneOf( CASTING_MODES )\n};\n\n\n// MAIN //\n\n/**\n* Normalizes a provided field object.\n*\n* @private\n* @param {Object} obj - input field object\n* @param {Array} keys - list of keys to standardize\n* @returns {(Object|Error)} output object or an error\n*/\nfunction normalize( obj, keys ) {\n\tvar out;\n\tvar err;\n\tvar v;\n\tvar k;\n\tvar i;\n\n\tout = initFieldObject();\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tif ( hasProp( obj, k ) ) {\n\t\t\tv = obj[ k ];\n\t\t\terr = VALIDATORS[ k ]( v, k );\n\t\t\tif ( err ) {\n\t\t\t\treturn err;\n\t\t\t}\n\t\t\tout[ k ] = v;\n\t\t}\n\t}\n\tif ( !hasProperties( out, MANDATORY_FIELD_NAMES ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Field objects must have the following properties: \"%s\". Value: `%s`.', join( MANDATORY_FIELD_NAMES, ', ' ), JSON.stringify( obj ) ) );\n\t}\n\tout.isStructType = isStructConstructorLike( out.type );\n\tout.byteLength = byteLength( out );\n\tif ( out.isStructType ) {\n\t\tout.alignment = out.type.alignment;\n\t} else {\n\t\tout.alignment = ALIGNMENTS[ out.type ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default normalize;\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\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid string field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidNonEmptyString( value, name ) {\n\tif ( isString( value ) || value.length > 0 ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a non-empty string. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidNonEmptyString;\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\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport contains from '@stdlib/array-base-assert-contains';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport DTYPES from './dtypes.js';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid `type` field.\n*\n* @private\n* @param {*} value - input value\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidType( value ) {\n\tif ( contains( DTYPES, value ) || isStructConstructorLike( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be either a struct type or one of the following: \"%s\". Value: `%s`.', 'type', join( DTYPES, ', ' ), value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidType;\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\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid string field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidString( value, name ) {\n\tif ( isString( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a string. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidString;\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\nimport { isPrimitive as isPositiveInteger } from '@stdlib/assert-is-positive-integer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests whether a provided value is a valid positive integer field.\n*\n* @private\n* @param {*} value - input value\n* @param {string} name - field name\n* @returns {(null|TypeError)} error object or null\n*/\nfunction isValidPositiveInteger( value, name ) {\n\tif ( isPositiveInteger( value ) ) {\n\t\treturn null;\n\t}\n\treturn new TypeError( format( 'invalid argument. `%s` field must be a positive integer. Value: `%s`.', name, value ) );\n}\n\n\n// EXPORTS //\n\nexport default isValidPositiveInteger;\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 an initialized field object.\n*\n* @private\n* @returns {Object} initialized field object\n*/\nfunction initFieldObject() {\n\treturn {\n\t\t'isStructType': false,\n\t\t'description': '',\n\t\t'byteLength': 0,\n\t\t'byteOffset': 0,\n\t\t'alignment': 0,\n\t\t'padding': 0,\n\t\t'enumerable': true,\n\t\t'writable': true,\n\t\t'default': void 0, // explicitly set to `undefined`\n\t\t'castingMode': 'none'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default initFieldObject;\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\nimport hasProp from '@stdlib/assert-has-property';\n\n\n// MAIN //\n\n/**\n* Tests whether an object has a list of properties.\n*\n* @private\n* @param {Object} obj - input object\n* @param {Array} keys - list of property names\n* @returns {boolean} result\n*/\nfunction hasProperties( obj, keys ) {\n\tvar i;\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tif ( !hasProp( obj, keys[ i ] ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default hasProperties;\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\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes required to store a field value.\n*\n* @private\n* @param {Object} obj - input field object\n* @returns {PositiveInteger} number of bytes\n*/\nfunction byteLength( obj ) {\n\tvar nb;\n\tif ( obj.isStructType ) {\n\t\tnb = obj.type.byteLength;\n\t} else {\n\t\tnb = bytesPerElement( obj.type );\n\t}\n\tif ( obj.length ) {\n\t\tnb *= obj.length;\n\t}\n\treturn nb;\n}\n\n\n// EXPORTS //\n\nexport default byteLength;\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 the struct's byte alignment.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @returns {PositiveInteger} alignment\n*/\nfunction alignment( fields ) {\n\tvar max;\n\tvar v;\n\tvar i;\n\n\tmax = 0;\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\tv = fields[ i ].alignment;\n\t\tif ( v > max ) {\n\t\t\tmax = v;\n\t\t}\n\t}\n\treturn max;\n}\n\n\n// EXPORTS //\n\nexport default alignment;\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\nimport isObject from '@stdlib/assert-is-object';\nimport hasProp from '@stdlib/assert-has-property';\nimport format from '@stdlib/string-format';\nimport isUnionType from './is_union_type.js';\nimport FIELD_PROPERTIES from './field_properties.js';\nimport normalizeField from './normalize_field.js';\nimport resolveAlignment from './resolve_alignment.js';\n\n\n// MAIN //\n\n/**\n* Normalizes a field object representing a union type.\n*\n* @private\n* @param {Object} obj - input field object\n* @returns {(Object|null|Error)} normalized field object or error object\n*/\nfunction normalizeUnion( obj ) {\n\tvar fields;\n\tvar dflg;\n\tvar out;\n\tvar tmp;\n\tvar len;\n\tvar o;\n\tvar i;\n\n\tfields = obj.fields;\n\tif ( fields.length === 0 ) {\n\t\treturn null;\n\t}\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tif ( !isObject( o ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( isUnionType( o ) ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Union types cannot contain nested union types. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t}\n\t\tif ( dflg === void 0 && hasProp( o, 'default' ) ) {\n\t\t\tdflg = true;\n\t\t} else if ( dflg === true && hasProp( o, 'default' ) ) {\n\t\t\treturn new TypeError( format( 'invalid argument. Union types can only contain one field with a default value. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t}\n\t\ttmp = normalizeField( o, FIELD_PROPERTIES );\n\t\tif ( tmp instanceof Error ) {\n\t\t\treturn tmp;\n\t\t}\n\t\tif ( i === 0 ) {\n\t\t\tlen = tmp.byteLength;\n\t\t} else if ( tmp.byteLength !== len ) {\n\t\t\treturn new RangeError( format( 'invalid argument. Union types must contain fields having the same byte length. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn {\n\t\t'type': 'union',\n\t\t'fields': out,\n\t\t'byteLength': len,\n\t\t'byteOffset': 0,\n\t\t'alignment': resolveAlignment( out ),\n\t\t'padding': 0\n\t};\n}\n\n\n// EXPORTS //\n\nexport default normalizeUnion;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport getter from '@stdlib/array-base-getter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object.\n*\n* @param {Collection} x - input array\n* @returns {Function} accessor\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = resolveGetter( arr );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction resolveGetter( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn accessorGetter( dt );\n\t}\n\treturn getter( dt );\n}\n\n\n// EXPORTS //\n\nexport default resolveGetter;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isAccessorArray from '@stdlib/assert-is-accessor-array';\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'indexOf' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Returns the index of the first element which equals a provided search element.\n*\n* @private\n* @param {Collection} x - input array\n* @param {*} searchElement - search element\n* @param {NonNegativeInteger} fromIndex - starting index (inclusive)\n* @returns {integer} index\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var idx = internal( x, 2, 0 );\n* // returns 1\n*/\nfunction internal( x, searchElement, fromIndex ) {\n\tvar i;\n\tfor ( i = fromIndex; i < x.length; i++ ) {\n\t\tif ( searchElement === x[ i ] ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\n* Returns the index of the first element which equals a provided search element.\n*\n* @private\n* @param {Object} x - input array object\n* @param {*} searchElement - search element\n* @param {NonNegativeInteger} fromIndex - starting index (inclusive)\n* @returns {integer} index\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var idx = accessors( x, 2, 0 );\n* // returns 1\n*/\nfunction accessors( x, searchElement, fromIndex ) {\n\tvar get;\n\tvar i;\n\n\tget = resolveGetter( x );\n\tfor ( i = fromIndex; i < x.length; i++ ) {\n\t\tif ( searchElement === get( x, i ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n// MAIN //\n\n/**\n* Returns the index of the first element which equals a provided search element.\n*\n* ## Notes\n*\n* - If unable to find an element which equals a provided search element, the function returns `-1`.\n*\n* @param {Collection} x - input array\n* @param {*} searchElement - search element\n* @param {integer} fromIndex - starting index (inclusive)\n* @returns {integer} index\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var idx = indexOf( x, 2, 0 );\n* // returns 1\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var idx = indexOf( x, 2, 0 );\n* // returns 1\n*/\nfunction indexOf( x, searchElement, fromIndex ) {\n\tif ( hasMethod( x, 'indexOf' ) ) {\n\t\treturn x.indexOf( searchElement, fromIndex );\n\t}\n\tif ( fromIndex < 0 ) {\n\t\tfromIndex += x.length;\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex = 0;\n\t\t}\n\t}\n\tif ( isAccessorArray( x ) ) {\n\t\treturn accessors( x, searchElement, fromIndex );\n\t}\n\treturn internal( x, searchElement, fromIndex );\n}\n\n\n// EXPORTS //\n\nexport default indexOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\n/**\n* Tests if a value is an array-like object supporting the accessor (get/set) protocol.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*\n* @example\n* var bool = isAccessorArray( {} );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn (\n\t\tisCollection( value ) &&\n\t\tisFunction( value.get ) &&\n\t\tisFunction( value.set )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isAccessorArray;\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\nimport indexOf from '@stdlib/array-base-index-of';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the index of a specified field name in a provided list of field names.\n*\n* @private\n* @param {Array} names - list of field names\n* @param {string} name - field name\n* @throws {Error} struct must have at least one field\n* @throws {TypeError} must provide a recognized field name\n* @returns {(integer|Error)} index or an error object\n*/\nfunction fieldIndex( names, name ) {\n\tvar idx;\n\tif ( names.length === 0 ) {\n\t\treturn new Error( 'invalid operation. struct does not have any fields.' );\n\t}\n\tidx = indexOf( names, name, 0 );\n\tif ( idx < 0 ) {\n\t\treturn new TypeError( format( 'invalid argument. Field name must be one of the following: \"%s\". Value: `%s`.', join( names, ', ' ), name ) );\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default fieldIndex;\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\nimport min from '@stdlib/math-base-special-fast-min';\nimport isUnionType from './is_union_type.js';\n\n\n// FUNCTIONS //\n\n/**\n* Sets alignment padding for one or more field objects.\n*\n* ## Notes\n*\n* - This function mutates each field object.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @param {NonNegativeInteger} padding - alignment padding\n* @returns {Array} input array\n*/\nfunction setPadding( fields, padding ) {\n\tvar i;\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\tfields[ i ].padding = padding;\n\t}\n\treturn fields;\n}\n\n\n// MAIN //\n\n/**\n* Computes the byte offset for each field.\n*\n* ## Notes\n*\n* - This function mutates each field object.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @param {PositiveInteger} max - maximum alignment\n* @returns {Array} input array\n*/\nfunction byteOffsets( fields, max ) {\n\tvar alignment;\n\tvar padding;\n\tvar offset;\n\tvar tmp;\n\tvar o;\n\tvar i;\n\tvar j;\n\n\toffset = 0;\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// Resolve the alignment requirement for this field:\n\t\talignment = min( o.alignment, max );\n\n\t\t// Align the current offset to the required boundary:\n\t\tpadding = ( alignment-(offset%alignment) ) % alignment;\n\t\toffset += padding;\n\n\t\t// Set the padding for the previous member:\n\t\tif ( i > 0 ) {\n\t\t\ttmp = fields[ i-1 ];\n\t\t\ttmp.padding = padding;\n\t\t\tif ( isUnionType( o ) ) {\n\t\t\t\tsetPadding( tmp.fields, padding );\n\t\t\t}\n\t\t}\n\t\t// Set the offset for the current member:\n\t\to.byteOffset = offset;\n\n\t\t// If the current member is a union type, propagate the offset to its child field objects...\n\t\tif ( isUnionType( o ) ) {\n\t\t\tfor ( j = 0; j < o.fields.length; j++ ) {\n\t\t\t\to.fields[ j ].byteOffset = offset;\n\t\t\t}\n\t\t}\n\t\t// Advance the offset by the size, in bytes, of the member:\n\t\toffset += o.byteLength;\n\t}\n\t// Compute the padding for the last member:\n\tpadding = ( alignment - (offset%alignment) ) % alignment;\n\n\t// Set the padding for the last member:\n\to.padding = padding;\n\n\t// If the last member is a union type, propagate the offset to its child field objects...\n\tif ( isUnionType( o ) ) {\n\t\tsetPadding( o.fields, padding );\n\t}\n\n\treturn fields;\n}\n\n\n// EXPORTS //\n\nexport default byteOffsets;\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\nimport replace from '@stdlib/string-base-replace';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a new regular expression for matching byte parameters.\n*\n* @private\n* @returns {RegExp} regular expression\n*/\nfunction reByteOffset() {\n\treturn /\\[(\\d{1,}),/g;\n}\n\n/**\n* Returns a function for replacing byte values in a serialized struct.\n*\n* @private\n* @param {NonNegativeInteger} offset - byte offset\n* @returns {Function} replacer function\n*/\nfunction replacer( offset ) {\n\treturn wrapped;\n\n\t/**\n\t* Callback invoked for each match.\n\t*\n\t* @private\n\t* @param {string} match - matched substring\n\t* @param {string} p1 - first matched capture group substring\n\t* @returns {string} replacement string\n\t*/\n\tfunction wrapped( match, p1 ) {\n\t\treturn format( '[%u,', offset+parseInt( p1, 10 ) );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Serializes a struct to a layout format.\n*\n* ## Notes\n*\n* - The output format is a multi-column format having the following layout:\n*\n* ```text\n* | ...[byte_offset,byte_length] |\n* ```\n*\n* For example,\n*\n* ```text\n* |[0,8]|[8,1]|[16,16]|[32,8]|\n* ```\n*\n* @private\n* @param {Array} fields - list of normalized fields\n* @returns {string} string representation\n*/\nfunction layoutFormat( fields ) {\n\tvar out;\n\tvar tmp;\n\tvar re;\n\tvar N;\n\tvar o;\n\tvar i;\n\n\tN = fields.length;\n\n\t// Create a new regular expression for matching byte offsets:\n\tre = reByteOffset();\n\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// If we are currently processing fields in a union, move along to the next non-union field...\n\t\tif ( i > 0 && ( o.byteOffset === fields[ i-1 ].byteOffset ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// If the current type is a struct, we need to serialize and then post-process...\n\t\tif ( o.isStructType ) {\n\t\t\tout.push( replace( o.type.layout, re, replacer( o.byteOffset ) ) );\n\t\t\tcontinue;\n\t\t}\n\t\t// Format the field data:\n\t\tout.push( format( '|<%s>[%u,%u]', o.type, o.byteOffset, o.byteLength ) );\n\t}\n\ttmp = format( '%s|', out.join( '' ) );\n\n\t// If we having a trailing `||` due to a nested struct, remove the final `|`:\n\tif ( tmp[ tmp.length-2 ] === '|' ) {\n\t\ttmp = tmp.substring( 0, tmp.length-1 );\n\t}\n\treturn tmp;\n}\n\n\n// EXPORTS //\n\nexport default layoutFormat;\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\nimport isPlainObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport linearFormat from './format_linear.js';\nimport layoutFormat from './format_layout.js';\n\n\n// VARIABLES //\n\nvar FORMATS = [\n\t'none',\n\t'linear',\n\t'layout'\n];\nvar isFormat = contains( FORMATS );\n\n\n// MAIN //\n\n/**\n* Serializes a struct to a string.\n*\n* @private\n* @param {Function} Struct - struct constructor\n* @param {Array} fields - list of normalized fields\n* @param {Options} options - function options\n* @param {string} [options.format] - serialization format\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {string} string representation\n*/\nfunction toString( Struct, fields, options ) { // eslint-disable-line stdlib/no-redeclare\n\tvar opts;\n\tif ( !isPlainObject( options ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\topts = {\n\t\t'format': 'none'\n\t};\n\tif ( hasOwnProp( options, 'format' ) ) {\n\t\topts.format = options.format;\n\t\tif ( !isFormat( opts.format ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'format', join( FORMATS, ', ' ), options.format ) );\n\t\t}\n\t}\n\tif ( opts.format === 'linear' ) {\n\t\treturn linearFormat( Struct, fields );\n\t}\n\tif ( opts.format === 'layout' ) {\n\t\treturn layoutFormat( fields );\n\t}\n\t// Case: opts.format === 'none'\n\treturn '';\n}\n\n\n// EXPORTS //\n\nexport default toString;\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\nimport floor from '@stdlib/math-base-special-floor';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Serializes a struct to a linear string format.\n*\n* ## Notes\n*\n* - The output format is a three-column format having the following layout:\n*\n* ```text\n* | byte_number | [field|padding] | notes |\n* ```\n*\n* - Nested `struct` instances are intentionally treated as opaque types, as we have limited access to struct internals (e.g., packed versus unpacked, field padding, etc), and we would effectively have to recompute all alignments and associated field data for the purposes of rendering. A user can always separately render a nested `struct` instance to a string in order to better understand its layout independently of its surrounding context in a parent `struct` instance.\n*\n* @private\n* @param {Function} Struct - struct constructor\n* @param {Array} fields - list of normalized fields\n* @returns {string} string representation\n*/\nfunction linearFormat( Struct, fields ) {\n\tvar nbytes;\n\tvar fmt0;\n\tvar fmt1;\n\tvar fmt2;\n\tvar bfmt;\n\tvar ufmt;\n\tvar fmt;\n\tvar tmp;\n\tvar out;\n\tvar flg;\n\tvar ib;\n\tvar c0;\n\tvar c1;\n\tvar c2;\n\tvar w0;\n\tvar w1;\n\tvar w;\n\tvar N;\n\tvar o;\n\tvar f;\n\tvar t;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tN = fields.length;\n\n\t// Resolve the size of the struct:\n\tnbytes = Struct.byteLength;\n\n\t// Compute the width of the first column:\n\tw0 = ( nbytes-1 ).toString().length;\n\n\t// Define a format string for the first column:\n\tfmt0 = '%'+w0+'s';\n\n\t// Determine the longest field name...\n\tw1 = 0;\n\tfor ( i = 0; i < N; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// Format: []\n\t\tw = o.name.length + 1 + ( o.byteLength-1 ).toString().length + 1;\n\t\tif ( w > w1 ) {\n\t\t\tw1 = w;\n\t\t}\n\t}\n\t// Define a format string for the second column:\n\tfmt1 = '%'+w1+'s';\n\n\t// Define a format string for the third column:\n\tfmt2 = '// %s';\n\n\t// Define a format string which combines the columns:\n\tfmt = '%s: %s %s';\n\n\t// Initialize a byte counter:\n\tib = 0;\n\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// If we are currently processing fields in a union, move along to the next non-union field...\n\t\tif ( i > 0 && ( o.byteOffset === fields[ i-1 ].byteOffset ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Check whether this field is the first field of a union...\n\t\tif ( i < N-1 ) {\n\t\t\tflg = ( o.byteOffset === fields[ i+1 ].byteOffset );\n\t\t} else {\n\t\t\tflg = false;\n\t\t}\n\t\tfor ( j = 0; j < o.byteLength; j++ ) {\n\t\t\t// In the first column, render the byte number:\n\t\t\tc0 = format( fmt0, ib.toString() );\n\n\t\t\t// In the second column, render the field name and the byte number relative to the field:\n\t\t\tc1 = format( fmt1, format( '%s[%u]', o.name, j ) );\n\n\t\t\t// If a field type spans multiple bytes, render the byte number:\n\t\t\tif ( o.alignment > 1 ) {\n\t\t\t\tbfmt = ' (byte %u)';\n\t\t\t} else {\n\t\t\t\tbfmt = '';\n\t\t\t}\n\t\t\t// If a field is part of a union, make that explicit:\n\t\t\tif ( flg ) {\n\t\t\t\tufmt = ' => union: %s';\n\t\t\t\ttmp = [];\n\t\t\t\tk = i + 1;\n\t\t\t\twhile ( k < N && o.byteOffset === fields[ k ].byteOffset ) {\n\t\t\t\t\tf = fields[ k ];\n\t\t\t\t\tif ( f.isStructType ) {\n\t\t\t\t\t\tt = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt = f.type;\n\t\t\t\t\t}\n\t\t\t\t\ttmp.push( format( '%s<%s>[%u]', f.name, t, j%f.alignment ) );\n\t\t\t\t\tk += 1;\n\t\t\t\t}\n\t\t\t\tufmt = format( ufmt, tmp.join( ', ' ) );\n\t\t\t} else {\n\t\t\t\tufmt = '';\n\t\t\t}\n\t\t\ttmp = format( bfmt+ufmt, j%o.alignment );\n\n\t\t\t// If a field contains multiple elements (i.e., is an array), render the field type along with the element number:\n\t\t\tif ( o.length ) {\n\t\t\t\tc2 = format( fmt2, format( '%s[%u]%s', o.type, floor( j/o.alignment ), tmp ) );\n\t\t\t}\n\t\t\t// Otherwise, just render the field type:\n\t\t\telse {\n\t\t\t\tc2 = format( fmt2, format( '%s%s', o.type, tmp ) );\n\t\t\t}\n\t\t\t// Render the row string:\n\t\t\tout.push( format( fmt, c0, c1, c2 ) );\n\t\t\tib += 1;\n\t\t}\n\t\tfor ( j = 0; j < o.padding; j++ ) {\n\t\t\tc0 = format( fmt0, ib.toString() );\n\t\t\tc1 = format( fmt1, '--' );\n\t\t\tc2 = format( fmt2, 'padding' );\n\t\t\tout.push( format( fmt, c0, c1, c2 ) );\n\t\t\tib += 1;\n\t\t}\n\t}\n\treturn out.join( '\\n' );\n}\n\n\n// EXPORTS //\n\nexport default linearFormat;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Dummy function.\n*\n* @private\n*/\nfunction foo() {\n\t// No-op...\n}\n\n\n// EXPORTS //\n\nexport default foo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport hasFunctionNameSupport from '@stdlib/assert-has-function-name-support';\nimport format from '@stdlib/string-format';\nimport { REGEXP as RE } from '@stdlib/regexp-function-name';\n\n\n// VARIABLES //\n\nvar isFunctionNameSupported = hasFunctionNameSupport();\n\n\n// MAIN //\n\n/**\n* Returns the name of a function.\n*\n* @param {Function} fcn - input function\n* @throws {TypeError} must provide a function\n* @returns {string} function name\n*\n* @example\n* var v = functionName( Math.sqrt );\n* // returns 'sqrt'\n*\n* @example\n* var v = functionName( function foo(){} );\n* // returns 'foo'\n*\n* @example\n* var v = functionName( function(){} );\n* // returns '' || 'anonymous'\n*\n* @example\n* var v = functionName( String );\n* // returns 'String'\n*/\nfunction functionName( fcn ) {\n\t// TODO: add support for generator functions?\n\tif ( isFunction( fcn ) === false ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', fcn ) );\n\t}\n\tif ( isFunctionNameSupported ) {\n\t\treturn fcn.name;\n\t}\n\treturn RE.exec( fcn.toString() )[ 1 ];\n}\n\n\n// EXPORTS //\n\nexport default functionName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport foo from './foo.js';\n\n\n// MAIN //\n\n/**\n* Tests for native function `name` support.\n*\n* @returns {boolean} boolean indicating if an environment has function `name` support\n*\n* @example\n* var bool = hasFunctionNameSupport();\n* // returns \n*/\nfunction hasFunctionNameSupport() {\n\treturn ( foo.name === 'foo' );\n}\n\n\n// EXPORTS //\n\nexport default hasFunctionNameSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Int8Array from '@stdlib/array-int8';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Float32Array from '@stdlib/array-float32';\nimport Float64Array from '@stdlib/array-float64';\n\n\n// MAIN //\n\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\nimport fcnName from '@stdlib/utils-function-name';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport hasFloat64ArraySupport from '@stdlib/assert-has-float64array-support';\nimport Float64Array from '@stdlib/array-float64';\nimport CTORS from './ctors.js';\nimport NAMES from './names.json';\n\n\n// VARIABLES //\n\n// Abstract `TypedArray` class:\nvar TypedArray = ( hasFloat64ArraySupport() ) ? getPrototypeOf( Float64Array ) : Dummy; // eslint-disable-line max-len\n\n// Ensure abstract typed array class has expected name:\nTypedArray = ( fcnName( TypedArray ) === 'TypedArray' ) ? TypedArray : Dummy;\n\n\n// FUNCTIONS //\n\n/**\n* Dummy constructor.\n*\n* @private\n*/\nfunction Dummy() {} // eslint-disable-line no-empty-function\n\n\n// MAIN //\n\n/**\n* Tests if a value is a typed array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a typed array\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var bool = isTypedArray( new Int8Array( 10 ) );\n* // returns true\n*/\nfunction isTypedArray( value ) {\n\tvar v;\n\tvar i;\n\n\tif ( typeof value !== 'object' || value === null ) {\n\t\treturn false;\n\t}\n\t// Check for the abstract class...\n\tif ( value instanceof TypedArray ) {\n\t\treturn true;\n\t}\n\t// Check for typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired class...\n\twhile ( value ) {\n\t\tv = ctorName( value );\n\t\tfor ( i = 0; i < NAMES.length; i++ ) {\n\t\t\tif ( NAMES[ i ] === v ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tvalue = getPrototypeOf( value );\n\t}\n\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isTypedArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\n\n\n// MAIN //\n\nvar CTORS = [\n\tComplex128Array,\n\tComplex64Array\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\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\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport Symbol from '@stdlib/symbol-ctor';\n\n\n// MAIN //\n\n/**\n* Tests for native `Symbol.hasInstance` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Symbol.hasInstance` support\n*\n* @example\n* var bool = hasHasInstanceSymbolSupport();\n* // returns \n*/\nfunction hasHasInstanceSymbolSupport() { // eslint-disable-line id-length\n\treturn (\n\t\ttypeof Symbol === 'function' &&\n\t\ttypeof Symbol( 'foo' ) === 'symbol' &&\n\t\thasOwnProp( Symbol, 'hasInstance' ) &&\n\t\ttypeof Symbol.hasInstance === 'symbol'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default hasHasInstanceSymbolSupport;\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\nimport hasHasInstanceSymbolSupport from '@stdlib/assert-has-has-instance-symbol-support'; // eslint-disable-line id-length\n\n\n// MAIN //\n\n/**\n* Has instance symbol.\n*\n* @name HasInstanceSymbol\n* @constant\n* @type {(symbol|null)}\n*\n* @example\n* import isArray from '@stdlib/assert-is-array';\n*\n* function ArrayLike() {\n* return {\n* 'length': 3,\n* '0': 1,\n* '1': 2,\n* '2': 3\n* };\n* };\n*\n* ArrayLike[ HasInstanceSymbol ] = isArray;\n*/\nvar HasInstanceSymbol = ( hasHasInstanceSymbolSupport() ) ? Symbol.hasInstance : null; // eslint-disable-line max-len\n\n\n// EXPORTS //\n\nexport default HasInstanceSymbol;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasHasInstanceSymbolSupport from '@stdlib/assert-has-has-instance-symbol-support'; // eslint-disable-line id-length\nimport HasInstanceSymbol from '@stdlib/symbol-has-instance';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar hasSupport = hasHasInstanceSymbolSupport();\n\n\n// MAIN //\n\n/**\n* Tests whether a value has in its prototype chain a specified constructor as a prototype property.\n*\n* @param {*} value - value to test\n* @param {Function} constructor - constructor to test against\n* @throws {TypeError} constructor must be callable\n* @returns {boolean} boolean indicating whether a value is an instance of a provided constructor\n*\n* @example\n* var bool = instanceOf( [], Array );\n* // returns true\n*\n* @example\n* var bool = instanceOf( {}, Object ); // exception\n* // returns true\n*\n* @example\n* var bool = instanceOf( 'beep', String );\n* // returns false\n*\n* @example\n* var bool = instanceOf( null, Object );\n* // returns false\n*\n* @example\n* var bool = instanceOf( 5, Object );\n* // returns false\n*/\nfunction instanceOf( value, constructor ) {\n\t// TODO: replace with `isCallable` check\n\tif (\n\t\ttypeof constructor !== 'function' &&\n\t\t!(\n\t\t\thasSupport &&\n\t\t\ttypeof constructor === 'object' &&\n\t\t\ttypeof constructor[ HasInstanceSymbol ] === 'function'\n\t\t)\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be callable. Value: `%s`.', constructor ) );\n\t}\n\treturn ( value instanceof constructor );\n}\n\n\n// EXPORTS //\n\nexport default instanceOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Int8Array from '@stdlib/array-int8';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Float32Array from '@stdlib/array-float32';\nimport Float64Array from '@stdlib/array-float64';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\nvar CTORS = [\n\t[ Float64Array, 'Float64Array' ],\n\t[ Float32Array, 'Float32Array' ],\n\t[ Int32Array, 'Int32Array' ],\n\t[ Uint32Array, 'Uint32Array' ],\n\t[ Int16Array, 'Int16Array' ],\n\t[ Uint16Array, 'Uint16Array' ],\n\t[ Int8Array, 'Int8Array' ],\n\t[ Uint8Array, 'Uint8Array' ],\n\t[ Uint8ClampedArray, 'Uint8ClampedArray' ],\n\t[ Complex64Array, 'Complex64Array' ],\n\t[ Complex128Array, 'Complex128Array' ],\n\t[ BooleanArray, 'BooleanArray' ]\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport instanceOf from '@stdlib/assert-instance-of';\nimport ctorName from '@stdlib/utils-constructor-name';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport CTORS from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns the typed array type.\n*\n* @private\n* @param {TypedArray} arr - typed array\n* @returns {(string|void)} typed array type\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( 5 );\n* var str = typeName( arr );\n* // returns 'Float64Array'\n*/\nfunction typeName( arr ) {\n\tvar v;\n\tvar i;\n\n\t// Check for typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( instanceOf( arr, CTORS[ i ][ 0 ] ) ) {\n\t\t\treturn CTORS[ i ][ 1 ];\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired native class...\n\twhile ( arr ) {\n\t\tv = ctorName( arr );\n\t\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\t\tif ( v === CTORS[ i ][ 1 ] ) {\n\t\t\t\treturn CTORS[ i ][ 1 ];\n\t\t\t}\n\t\t}\n\t\tarr = getPrototypeOf( arr );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default typeName;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isTypedArray from '@stdlib/assert-is-typed-array';\nimport isComplexTypedArray from '@stdlib/assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/assert-is-booleanarray';\nimport reinterpret64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpret128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport format from '@stdlib/string-format';\nimport typeName from './type.js';\n\n\n// MAIN //\n\n/**\n* Returns a JSON representation of a typed array.\n*\n* ## Notes\n*\n* - We build a JSON object representing a typed array similar to how Node.js `Buffer` objects are represented. See [Buffer][1].\n*\n* [1]: https://nodejs.org/api/buffer.html#buffer_buf_tojson\n*\n* @param {TypedArray} arr - typed array to serialize\n* @throws {TypeError} first argument must be a typed array\n* @returns {Object} JSON representation\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 5.0, 3.0 ] );\n* var json = typedarray2json( arr );\n* // returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }\n*/\nfunction typedarray2json( arr ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tif ( isTypedArray( arr ) ) {\n\t\tdata = arr;\n\t} else if ( isComplexTypedArray( arr ) ) {\n\t\tif ( arr.BYTES_PER_ELEMENT === 8 ) {\n\t\t\tdata = reinterpret64( arr, 0 );\n\t\t} else { // arr.BYTES_PER_ELEMENT === 16\n\t\t\tdata = reinterpret128( arr, 0 );\n\t\t}\n\t} else if ( isBooleanArray( arr ) ) {\n\t\tdata = reinterpretBoolean( arr, 0 );\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a typed array. Value: `%s`.', arr ) );\n\t}\n\tout = {\n\t\t'type': typeName( arr ),\n\t\t'data': []\n\t};\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.data.push( data[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default typedarray2json;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport BooleanArray from '@stdlib/array-bool';\nimport constructorName from '@stdlib/utils-constructor-name';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a BooleanArray.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether a value is a BooleanArray\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var bool = isBooleanArray( new BooleanArray( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isBooleanArray( [] );\n* // returns false\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\tvalue instanceof BooleanArray ||\n\t\tconstructorName( value ) === 'BooleanArray'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isBooleanArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ctorName from '@stdlib/utils-constructor-name';\nimport getPrototypeOf from '@stdlib/utils-get-prototype-of';\nimport CTORS from './ctors.js';\nimport NAMES from './names.json';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a complex typed array.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*\n* @example\n* import Complex128Array from '@stdlib/array-complex128';\n*\n* var bool = isComplexTypedArray( new Complex128Array( 10 ) );\n* // returns true\n*/\nfunction isComplexTypedArray( value ) {\n\tvar v;\n\tvar i;\n\n\tif ( typeof value !== 'object' || value === null ) {\n\t\treturn false;\n\t}\n\t// Check for complex typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired class...\n\twhile ( value ) {\n\t\tv = ctorName( value );\n\t\tfor ( i = 0; i < NAMES.length; i++ ) {\n\t\t\tif ( NAMES[ i ] === v ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tvalue = getPrototypeOf( value );\n\t}\n\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isComplexTypedArray;\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 no-restricted-syntax, id-length, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setNonEnumerableReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isObject from '@stdlib/assert-is-object';\nimport hasProp from '@stdlib/assert-has-property';\nimport min from '@stdlib/math-base-special-fast-min';\nimport filled from '@stdlib/array-base-filled';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport format from '@stdlib/string-format';\nimport PRIVATE_BUFFER from './private_buffer.js';\nimport CTOR_NAME from './ctor_name.js';\nimport createPrototypeAccessors from './create_prototype_accessors.js';\nimport isStructInstance from './is_struct_instance.js';\nimport normalize from './normalize_field_list.js';\nimport fieldNames from './field_names.js';\nimport fieldIndex from './field_index.js';\nimport resolveAlignment from './resolve_alignment.js';\nimport byteOffsets from './byte_offsets.js';\nimport partitions from './partitions.js';\nimport flatten from './flatten_fields.js';\nimport struct2string from './to_string.js';\nimport struct2json from './to_json.js';\nimport layoutFormat from './format_layout.js';\n\n\n// MAIN //\n\n/**\n* Returns a constructor for creating a fixed-width composite data type (a.k.a., a `struct`).\n*\n* @param {ObjectArray} fields - structure fields\n* @throws {TypeError} first argument must be an array-like object containing objects\n* @throws {TypeError} field objects must have required properties\n* @throws {TypeError} field objects must have valid fields\n* @throws {TypeError} union types must be array-like objects containing objects\n* @throws {RangeError} union types must contain fields having the same byte length\n* @throws {TypeError} union types cannot contain nested union types\n* @throws {TypeError} union types can only contain one field with a default value\n* @throws {Error} unexpected error\n* @returns {Function} constructor\n*\n* @example\n* var fields = [\n* {\n* 'type': 'union',\n* 'fields': [\n* {\n* 'name': 'double',\n* 'description': 'double-precision floating-point number',\n* 'type': 'float64',\n* 'enumerable': true,\n* 'writable': true,\n* 'castingMode': 'none'\n* },\n* {\n* 'name': 'words',\n* 'description': 'high and low words',\n* 'type': 'uint32',\n* 'length': 2,\n* 'enumerable': true,\n* 'writable': true,\n* 'castingMode': 'none'\n* }\n* ]\n* }\n* ];\n* var Struct = factory( fields );\n*\n* var data = {\n* 'double': 3.14\n* };\n* var s = new Struct( data );\n* // returns \n*\n* var v = s.double;\n* // returns 3.14\n*\n* var w = s.words;\n* // e.g., [ 1374389535, 1074339512 ]\n*/\nfunction factory( fields ) {\n\tvar FIELD_NAMES;\n\tvar BYTE_LENGTH;\n\tvar PARTITIONS;\n\tvar ALIGNMENT;\n\tvar ACCESSORS;\n\tvar FIELDS;\n\tvar tmp;\n\tvar o;\n\tif ( !isCollection( fields ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', fields ) );\n\t}\n\t// Normalize the list of field objects:\n\ttmp = normalize( fields );\n\tif ( tmp instanceof Error ) {\n\t\tthrow tmp;\n\t}\n\tFIELDS = tmp;\n\n\t// Resolve the list of unique field names:\n\ttmp = fieldNames( FIELDS );\n\tif ( tmp instanceof Error ) {\n\t\tthrow tmp;\n\t}\n\tFIELD_NAMES = tmp;\n\n\t// Resolve the struct's alignment requirements:\n\tALIGNMENT = resolveAlignment( FIELDS );\n\n\t// Compute the byte offset for each field:\n\tFIELDS = byteOffsets( FIELDS, ALIGNMENT );\n\n\t// Now that we've finished processing provided field objects, flatten the list, such that union types are implied by field objects having the same byte offset:\n\tFIELDS = flatten( FIELDS );\n\n\t// Compute field \"partitions\" (i.e., non-overlapping views):\n\tPARTITIONS = partitions( FIELDS );\n\n\t// Compute the struct's byte length:\n\to = FIELDS[ FIELDS.length-1 ];\n\tBYTE_LENGTH = o.byteOffset + o.byteLength + o.padding;\n\n\t/**\n\t* Constructor for a composite data type (a.k.a., a `struct`).\n\t*\n\t* @private\n\t* @param {(Object|ArrayBuffer)} [arg] - array buffer or data object\n\t* @param {NonNegativeInteger} [byteOffset=0] - offset, in bytes, to the first byte in a provided buffer for the returned `struct` to reference\n\t* @param {NonNegativeInteger} [byteLength] - maximum number of elements in the byte array\n\t* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n\t* @throws {TypeError} second argument must be a nonnegative integer\n\t* @throws {TypeError} third argument must be a nonnegative integer\n\t* @throws {Error} union types may only be initialized by a single member\n\t* @returns {Struct} struct instance\n\t*/\n\tfunction Struct( arg, byteOffset, byteLength ) {\n\t\tvar values;\n\t\tvar nargs;\n\t\tvar cache;\n\t\tvar view;\n\t\tvar obj;\n\t\tvar o;\n\t\tvar v;\n\t\tvar i;\n\t\tvar j;\n\t\tvar k;\n\n\t\tnargs = arguments.length;\n\t\tif ( !( this instanceof Struct ) ) {\n\t\t\tif ( nargs === 0 ) {\n\t\t\t\treturn new Struct();\n\t\t\t}\n\t\t\tif ( nargs === 1 ) {\n\t\t\t\treturn new Struct( arg );\n\t\t\t}\n\t\t\tif ( nargs === 2 ) {\n\t\t\t\treturn new Struct( arg, byteOffset );\n\t\t\t}\n\t\t\treturn new Struct( arg, byteOffset, byteLength );\n\t\t}\n\t\tif ( isArrayBuffer( arg ) ) {\n\t\t\tif ( nargs === 1 ) {\n\t\t\t\tview = new DataView( arg, 0, BYTE_LENGTH );\n\t\t\t} else {\n\t\t\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t\t\t}\n\t\t\t\tif ( nargs === 2 ) {\n\t\t\t\t\tview = new DataView( arg, byteOffset, BYTE_LENGTH );\n\t\t\t\t} else {\n\t\t\t\t\tif ( !isNonNegativeInteger( byteLength ) ) {\n\t\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Byte length must be a nonnegative integer. Value: `%s`.', byteLength ) );\n\t\t\t\t\t}\n\t\t\t\t\tview = new DataView( arg, byteOffset, min( byteLength, BYTE_LENGTH ) ); // eslint-disable-line max-len\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( view.byteLength < BYTE_LENGTH ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer has insufficient capacity. Minimum capacity: `%u`.', BYTE_LENGTH ) );\n\t\t\t}\n\t\t} else {\n\t\t\tview = new DataView( new ArrayBuffer( BYTE_LENGTH ) );\n\t\t\tif ( nargs > 0 ) {\n\t\t\t\tif ( !isObject( arg ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tobj = arg;\n\t\t\t}\n\t\t}\n\t\t// Bind the byte buffer to the current instance:\n\t\tsetReadOnly( this, PRIVATE_BUFFER, view );\n\n\t\t// If we were provided a data object, set provided fields...\n\t\tif ( obj !== void 0 ) {\n\t\t\t// Initialize an array containing values to set:\n\t\t\tvalues = filled( void 0, FIELDS.length );\n\n\t\t\t// For each field, determine whether a value has been specified...\n\t\t\tcache = {};\n\t\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\t\tk = FIELD_NAMES[ i ];\n\t\t\t\tj = PARTITIONS[ i ];\n\t\t\t\tif ( hasProp( obj, k ) ) {\n\t\t\t\t\t// Check whether a value has already been specified for this view (i.e., via another union member)...\n\t\t\t\t\tif ( cache[ j ] ) {\n\t\t\t\t\t\tthrow new Error( 'invalid argument. Union types may only be initialized by a single member.' );\n\t\t\t\t\t}\n\t\t\t\t\tvalues[ i ] = obj[ k ];\n\t\t\t\t\tcache[ j ] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Perform a second pass over the fields to fill in default initial values...\n\t\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\t\tj = PARTITIONS[ i ];\n\t\t\t\tif ( cache[ j ] ) {\n\t\t\t\t\t// Skip fields already having initial values...\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\to = FIELDS[ i ];\n\t\t\t\tif ( o.default !== void 0 ) {\n\t\t\t\t\tvalues[ i ] = o.default;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Set all fields with initialization values...\n\t\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\t\tv = values[ i ];\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tACCESSORS[ FIELD_NAMES[ i ] ][ 1 ].call( this, v );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t* Constructor name.\n\t*\n\t* @private\n\t* @name name\n\t* @memberof Struct\n\t* @readonly\n\t* @type {string}\n\t* @default 'Struct'\n\t*/\n\tsetReadOnly( Struct, 'name', CTOR_NAME );\n\n\t/**\n\t* Alignment.\n\t*\n\t* @private\n\t* @name alignment\n\t* @memberof Struct\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( Struct, 'alignment', ALIGNMENT );\n\n\t/**\n\t* Size (in bytes) of the `struct`.\n\t*\n\t* @private\n\t* @name byteLength\n\t* @memberof Struct\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( Struct, 'byteLength', BYTE_LENGTH );\n\n\t/**\n\t* Returns a list of `struct` fields.\n\t*\n\t* @private\n\t* @name fields\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Array}\n\t*/\n\tsetNonEnumerableReadOnlyAccessor( Struct, 'fields', function get() {\n\t\treturn FIELD_NAMES.slice();\n\t});\n\n\t/**\n\t* Returns a string corresponding to the `struct` layout.\n\t*\n\t* @private\n\t* @name layout\n\t* @memberof Struct\n\t* @readonly\n\t* @type {string}\n\t*/\n\tsetNonEnumerableReadOnlyAccessor( Struct, 'layout', function get() {\n\t\t// As this is not likely to be a commonly used API, intentionally recompute the layout format in order to avoid consuming memory for what could be a long string...\n\t\treturn layoutFormat( FIELDS );\n\t});\n\n\t/**\n\t* Returns the underlying byte buffer of a `struct`.\n\t*\n\t* @private\n\t* @name bufferOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {Object} obj - struct instance\n\t* @throws {TypeError} must provide a `struct` instance\n\t* @returns {ArrayBuffer} underlying byte buffer\n\t*/\n\tsetReadOnly( Struct, 'bufferOf', function bufferOf( obj ) {\n\t\tif ( !isStructInstance( obj ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a `struct` instance. Value: `%s`.', obj ) );\n\t\t}\n\t\treturn obj[ PRIVATE_BUFFER ].buffer;\n\t});\n\n\t/**\n\t* Returns the length, in bytes, of the value specified by the provided field name.\n\t*\n\t* @private\n\t* @name byteLengthOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {NonNegativeInteger} byte length\n\t*/\n\tsetReadOnly( Struct, 'byteLengthOf', function byteLengthOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].byteLength;\n\t});\n\n\t/**\n\t* Returns the offset, in bytes, from the beginning of a `struct` to the value specified by the provided field name.\n\t*\n\t* @private\n\t* @name byteOffsetOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {NonNegativeInteger} byte offset\n\t*/\n\tsetReadOnly( Struct, 'byteOffsetOf', function byteOffsetOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].byteOffset;\n\t});\n\n\t/**\n\t* Returns the description associated with a provided field name.\n\t*\n\t* @private\n\t* @name descriptionOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {string} description\n\t*/\n\tsetReadOnly( Struct, 'descriptionOf', function descriptionOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].description;\n\t});\n\n\t/**\n\t* Returns a boolean indicating whether a provided value is a `struct` instance.\n\t*\n\t* @private\n\t* @name isStruct\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {*} value - input value\n\t* @returns {boolean} boolean indicating whether a value is a `struct` instance\n\t*/\n\tsetReadOnly( Struct, 'isStruct', function isStruct( value ) {\n\t\treturn (\n\t\t\tvalue instanceof Struct ||\n\t\t\t(\n\t\t\t\tisStructInstance( value ) &&\n\t\t\t\tisStructConstructorLike( value.constructor )\n\t\t\t)\n\t\t);\n\t});\n\n\t/**\n\t* Returns the type associated with a provided field name.\n\t*\n\t* @private\n\t* @name typeOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {string} name - field name\n\t* @throws {Error} struct must have at least one field\n\t* @throws {TypeError} must provide a recognized field name\n\t* @returns {(string|Object)} type\n\t*/\n\tsetReadOnly( Struct, 'typeOf', function typeOf( name ) {\n\t\tvar idx = fieldIndex( FIELD_NAMES, name );\n\t\tif ( idx instanceof Error ) {\n\t\t\tthrow idx;\n\t\t}\n\t\treturn FIELDS[ idx ].type;\n\t});\n\n\t/**\n\t* Returns the underlying byte buffer of a `struct` as a `DataView`.\n\t*\n\t* @private\n\t* @name viewOf\n\t* @memberof Struct\n\t* @readonly\n\t* @type {Function}\n\t* @param {Object} obj - struct instance\n\t* @throws {TypeError} must provide a `struct` instance\n\t* @returns {DataView} view of underlying byte buffer\n\t*/\n\tsetReadOnly( Struct, 'viewOf', function viewOf( obj ) {\n\t\tvar buf;\n\t\tif ( !isStructInstance( obj ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a `struct` instance. Value: `%s`.', obj ) );\n\t\t}\n\t\tbuf = obj[ PRIVATE_BUFFER ];\n\t\treturn new DataView( buf.buffer, buf.byteOffset, buf.byteLength );\n\t});\n\n\t// Create prototype accessors for getting and setting field values:\n\tACCESSORS = createPrototypeAccessors( Struct.prototype, FIELDS );\n\n\t/**\n\t* Serializes a `struct` to a string.\n\t*\n\t* @private\n\t* @name toString\n\t* @memberof Struct.prototype\n\t* @readonly\n\t* @type {Function}\n\t* @param {Options} [options] - function options\n\t* @param {string} [options.format='none'] - serialization format\n\t* @throws {Error} `this` must be a struct instance\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} must provide valid options\n\t* @returns {string} serialized `struct` instance\n\t*/\n\tsetReadOnly( Struct.prototype, 'toString', function toString() {\n\t\tvar opts;\n\t\tif ( !( this instanceof Struct ) ) {\n\t\t\tthrow new Error( 'invalid invocation. `this` is not a struct instance.' );\n\t\t}\n\t\tif ( arguments.length > 0 ) {\n\t\t\topts = arguments[ 0 ];\n\t\t} else {\n\t\t\topts = {};\n\t\t}\n\t\treturn struct2string( Struct, FIELDS, opts );\n\t});\n\n\t/**\n\t* Serializes a `struct` to JSON.\n\t*\n\t* @private\n\t* @name toJSON\n\t* @memberof Struct.prototype\n\t* @readonly\n\t* @type {Function}\n\t* @throws {Error} `this` must be a struct instance\n\t* @returns {JSON} serialized `struct` instance\n\t*/\n\tsetReadOnly( Struct.prototype, 'toJSON', function toJSON() {\n\t\tif ( !( this instanceof Struct ) ) {\n\t\t\tthrow new Error( 'invalid invocation. `this` is not a struct instance.' );\n\t\t}\n\t\treturn struct2json( this, FIELDS );\n\t});\n\n\treturn Struct;\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-object';\nimport format from '@stdlib/string-format';\nimport FIELD_PROPERTIES from './field_properties.js';\nimport isUnionType from './is_union_type.js';\nimport normalizeField from './normalize_field.js';\nimport normalizeUnion from './normalize_union.js';\n\n\n// MAIN //\n\n/**\n* Normalizes a list of field objects.\n*\n* @private\n* @param {Array} fields - input fields\n* @returns {(Array|Error)} normalized field objects or an error\n*/\nfunction normalize( fields ) {\n\tvar out;\n\tvar tmp;\n\tvar o;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tif ( !isObject( o ) ) {\n\t\t\treturn new TypeError( format( 'invalid argument. First argument must be an array of objects. Value: `%s`. Index: `%d`.', o, i ) );\n\t\t}\n\t\t// Check for a union type which is a collection of nested field objects which all have the same byte length...\n\t\tif ( isUnionType( o ) ) {\n\t\t\ttmp = normalizeUnion( o );\n\t\t\tif ( tmp === null ) {\n\t\t\t\treturn new TypeError( format( 'invalid argument. Union types must be an array of objects. Value: `%s`. Index: `%d`.', JSON.stringify( o ), i ) );\n\t\t\t}\n\t\t\tif ( tmp instanceof Error ) {\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t} else {\n\t\t\ttmp = normalizeField( o, FIELD_PROPERTIES );\n\t\t\tif ( tmp instanceof Error ) {\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default normalize;\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\nimport format from '@stdlib/string-format';\nimport isUnionType from './is_union_type.js';\n\n\n// MAIN //\n\n/**\n* Resolves a list of field names.\n*\n* @private\n* @param {Array} fields - list of field objects\n* @returns {(Array|Error)} list of field names or an error\n*/\nfunction fieldNames( fields ) {\n\tvar hash;\n\tvar out;\n\tvar o1;\n\tvar o2;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\thash = {};\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to1 = fields[ i ];\n\t\tk = o1.name;\n\t\tif ( isUnionType( o1 ) ) {\n\t\t\tfor ( j = 0; j < o1.fields.length; j++ ) {\n\t\t\t\to2 = o1.fields[ j ];\n\t\t\t\tk = o2.name;\n\t\t\t\tif ( hash[ k ] === true ) {\n\t\t\t\t\treturn new TypeError( format( 'invalid argument. First argument must be an array of objects having unique field names. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t\t\t}\n\t\t\t\thash[ k ] = true;\n\t\t\t\tout.push( k );\n\t\t\t}\n\t\t} else if ( hash[ k ] === true ) {\n\t\t\treturn new TypeError( format( 'invalid argument. First argument must be an array of objects having unique field names. Value: `%s`.', JSON.stringify( fields ) ) );\n\t\t} else {\n\t\t\thash[ k ] = true;\n\t\t\tout.push( k );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fieldNames;\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\nimport isUnionType from './is_union_type.js';\n\n\n// MAIN //\n\n/**\n* Flattens a list of field objects.\n*\n* @private\n* @param {Array} fields - list of field objects\n* @returns {Array} new list\n*/\nfunction flatten( fields ) {\n\tvar out;\n\tvar o;\n\tvar i;\n\tvar j;\n\n\tout = [];\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tif ( isUnionType( o ) ) {\n\t\t\tfor ( j = 0; j < o.fields.length; j++ ) {\n\t\t\t\tout.push( o.fields[ j ] );\n\t\t\t}\n\t\t} else {\n\t\t\tout.push( o );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flatten;\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 a list of partition indices.\n*\n* ## Notes\n*\n* - This function partitions field objects according to whether a field object represents a unique \"view\" over an underlying byte buffer. Field objects within a union belong to the same partition.\n*\n* @private\n* @param {Array} fields - list of normalized field objects\n* @returns {NonNegativeIntegerArray} list of indices\n*/\nfunction partitions( fields ) {\n\tvar out;\n\tvar N;\n\tvar o;\n\tvar i;\n\tvar j;\n\n\tN = fields.length;\n\n\tout = [];\n\tj = 0;\n\tfor ( i = 0; i < N-1; i++ ) {\n\t\to = fields[ i ];\n\n\t\t// Check for the start of a union...\n\t\tif ( o.byteOffset === fields[ i+1 ].byteOffset ) {\n\t\t\tout.push( j );\n\t\t\tcontinue;\n\t\t}\n\t\tout.push( j );\n\t\tj += 1;\n\t}\n\t// Set the partition for the last field object:\n\tout.push( j );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default partitions;\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 id-length */\n\n'use strict';\n\n// MODULES //\n\nimport setNonEnumerableReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport setNonEnumerableReadWriteAccessor from '@stdlib/utils-define-nonenumerable-read-write-accessor';\nimport setReadOnlyAccessor from '@stdlib/utils-define-read-only-accessor';\nimport setReadWriteAccessor from '@stdlib/utils-define-read-write-accessor';\nimport getter from './getter.js';\nimport setter from './setter.js';\n\n\n// MAIN //\n\n/**\n* Assigns methods for accessing field values to a provided prototype.\n*\n* @private\n* @param {Object} p - prototype\n* @param {Array} fields - field objects\n* @returns {Object} object containing accessors for each field\n*/\nfunction createPrototypeAccessors( p, fields ) {\n\tvar get;\n\tvar set;\n\tvar out;\n\tvar o;\n\tvar i;\n\n\tout = {};\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tget = getter( o );\n\t\tset = setter( o );\n\t\tif ( o.enumerable ) {\n\t\t\tif ( o.writable ) {\n\t\t\t\tsetReadWriteAccessor( p, o.name, get, set );\n\t\t\t} else {\n\t\t\t\tsetReadOnlyAccessor( p, o.name, get );\n\t\t\t}\n\t\t} else if ( o.writable ) {\n\t\t\tsetNonEnumerableReadWriteAccessor( p, o.name, get, set );\n\t\t} else {\n\t\t\tsetNonEnumerableReadOnlyAccessor( p, o.name, get );\n\t\t}\n\t\tout[ o.name ] = [ get, set ];\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default createPrototypeAccessors;\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\nimport isCollection from '@stdlib/assert-is-collection';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isFunction from '@stdlib/assert-is-function';\nimport typedarray2json from '@stdlib/array-to-json';\nimport isStructInstance from './is_struct_instance.js';\n\n\n// MAIN //\n\n/**\n* Serializes a `struct` instance to JSON.\n*\n* @private\n* @param {Struct} struct - struct instance\n* @param {Array} fields - list of normalized fields\n* @returns {Object} JSON representation\n*/\nfunction toJSON( struct, fields ) {\n\tvar out;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\tout = {};\n\tfor ( i = 0; i < fields.length; i++ ) {\n\t\to = fields[ i ];\n\t\tv = struct[ o.name ];\n\t\tif ( isCollection( v ) ) {\n\t\t\tv = typedarray2json( v );\n\t\t} else if ( isStructInstance( v ) ) {\n\t\t\tv = v.toJSON();\n\t\t} else if ( isComplexLike( v ) && isFunction( v.toJSON ) ) {\n\t\t\tv = v.toJSON();\n\t\t}\n\t\tout[ o.name ] = v;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\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\nimport structFactory from '@stdlib/dstructs-struct';\n\n\n// VARIABLES //\n\n// Create a struct constructor which has an `isStruct` static method which we'll delegate to below:\nvar Struct = structFactory([\n\t{\n\t\t'name': 'v',\n\t\t'type': 'bool'\n\t}\n]);\n\n\n// MAIN //\n\n/**\n* Tests if a value is a `struct` instance.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `struct` instance\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'foo',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var bool = isStruct( new Struct() );\n* // returns true\n*\n* bool = isStruct( [] );\n* // returns false\n*/\nfunction isStruct( value ) {\n\treturn Struct.isStruct( value );\n}\n\n\n// EXPORTS //\n\nexport default isStruct;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'unsigned_integer' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray unsigned integer data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray unsigned integer data type\n*\n* @example\n* var bool = isUnsignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int16' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int8' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'foo' );\n* // returns false\n*/\nfunction isUnsignedIntegerDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isUnsignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-base-dtype-strings';\n\n\n// VARIABLES //\n\nvar isDataType = contains( dtypes( 'signed_integer' ) );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray signed integer data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray signed integer data type\n*\n* @example\n* var bool = isSignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\n* // returns false\n*/\nfunction isSignedIntegerDataType( v ) {\n\treturn isDataType( String( v ) );\n}\n\n\n// EXPORTS //\n\nexport default isSignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport isNegativeZero from '@stdlib/math-base-assert-is-negative-zero';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport PINF from '@stdlib/constants-float64-pinf';\nimport NINF from '@stdlib/constants-float64-ninf';\nimport FLOAT32_SMALLEST_SUBNORMAL from '@stdlib/constants-float32-smallest-subnormal'; // eslint-disable-line id-length\nimport FLOAT32_MAX_SAFE_INTEGER from '@stdlib/constants-float32-max-safe-integer';\nimport FLOAT32_MIN_SAFE_INTEGER from '@stdlib/constants-float32-min-safe-integer';\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the minimum floating-point ndarray data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} ndarray data type\n*/\nfunction minFloatDataType( value ) {\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value >= FLOAT32_MIN_SAFE_INTEGER && value <= FLOAT32_MAX_SAFE_INTEGER ) { // eslint-disable-line max-len\n\t\t\treturn 'float32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// MAIN //\n\n/**\n* Returns the minimum ndarray data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} ndarray data type\n*\n* @example\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* @example\n* var dt = minDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minDataType( value ) {\n\tif ( !isNumber( value ) ) {\n\t\tif ( isBoolean( value ) ) {\n\t\t\treturn 'bool';\n\t\t}\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tif ( minFloatDataType( value.re ) === 'float64' || minFloatDataType( value.im ) === 'float64' ) {\n\t\t\t\treturn 'complex128';\n\t\t\t}\n\t\t\treturn 'complex64';\n\t\t}\n\t\treturn 'generic';\n\t}\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value === 0 && isNegativeZero( value ) ) {\n\t\t\treturn 'float32';\n\t\t}\n\t\tif ( value < 0 ) {\n\t\t\tif ( value >= INT8_MIN ) {\n\t\t\t\treturn 'int8';\n\t\t\t}\n\t\t\tif ( value >= INT16_MIN ) {\n\t\t\t\treturn 'int16';\n\t\t\t}\n\t\t\tif ( value >= INT32_MIN ) {\n\t\t\t\treturn 'int32';\n\t\t\t}\n\t\t\treturn 'float64';\n\t\t}\n\t\tif ( value <= UINT8_MAX ) {\n\t\t\treturn 'uint8';\n\t\t}\n\t\tif ( value <= UINT16_MAX ) {\n\t\t\treturn 'uint16';\n\t\t}\n\t\tif ( value <= UINT32_MAX ) {\n\t\t\treturn 'uint32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, given that floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// EXPORTS //\n\nexport default minDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport INT8_MIN from '@stdlib/constants-int8-min';\nimport INT16_MIN from '@stdlib/constants-int16-min';\nimport INT32_MIN from '@stdlib/constants-int32-min';\nimport INT8_MAX from '@stdlib/constants-int8-max';\nimport INT16_MAX from '@stdlib/constants-int16-max';\nimport INT32_MAX from '@stdlib/constants-int32-max';\n\n\n// MAIN //\n\n/**\n* Returns the minimum ndarray data type for storing a provided signed integer value.\n*\n* @param {integer} value - scalar value\n* @returns {string} ndarray data type\n*\n* @example\n* var dt = minSignedIntegerDataType( 9999 );\n* // returns 'int16'\n*\n* @example\n* var dt = minSignedIntegerDataType( 3 );\n* // returns 'int8'\n*/\nfunction minSignedIntegerDataType( value ) {\n\tif ( value < 0 ) {\n\t\tif ( value >= INT8_MIN ) {\n\t\t\treturn 'int8';\n\t\t}\n\t\tif ( value >= INT16_MIN ) {\n\t\t\treturn 'int16';\n\t\t}\n\t\tif ( value >= INT32_MIN ) {\n\t\t\treturn 'int32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\tif ( value <= INT8_MAX ) {\n\t\treturn 'int8';\n\t}\n\tif ( value <= INT16_MAX ) {\n\t\treturn 'int16';\n\t}\n\tif ( value <= INT32_MAX ) {\n\t\treturn 'int32';\n\t}\n\treturn 'float64';\n}\n\n\n// EXPORTS //\n\nexport default minSignedIntegerDataType;\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\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isStruct from '@stdlib/assert-is-struct';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/ndarray-base-assert-is-boolean-data-type';\nimport isRealFloatingDataType from '@stdlib/ndarray-base-assert-is-real-floating-point-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\nimport isSafeCast from '@stdlib/ndarray-base-assert-is-safe-data-type-cast';\nimport minDataType from '@stdlib/ndarray-min-dtype';\nimport minSignedIntegerDataType from '@stdlib/ndarray-base-min-signed-integer-dtype';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// FUNCTIONS //\n\n/**\n* Verifies whether a provided value can be safely cast to a \"generic\" or unknown data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateGeneric( 3, 'generic' );\n* // returns true\n*/\nfunction validateGeneric() {\n\treturn true;\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a boolean data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateBoolean( true, 'bool' );\n* // returns true\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var out = validateBoolean( new Complex128( 5.0, 6.0 ), 'bool' );\n* // returns false\n*/\nfunction validateBoolean( value ) {\n\treturn isBoolean( value );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a real-valued floating-point data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateRealFloating( 3.14, 'float64' );\n* // returns true\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var out = validateRealFloating( new Complex128( 5.0, 6.0 ), 'float64' );\n* // returns false\n*/\nfunction validateRealFloating( value ) {\n\treturn isNumber( value );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a complex-valued floating-point data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n*\n* var out = validateComplexFloating( new Complex128( 5.0, 6.0 ), 'complex128' );\n* // returns true\n*\n* @example\n* var out = validateComplexFloating( {}, 'complex128' );\n* // returns false\n*/\nfunction validateComplexFloating( value ) {\n\treturn ( isNumber( value ) || isComplexLike( value ) );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a signed integer data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateSignedInteger( 3, 'int32' );\n* // returns true\n*\n* @example\n* var out = validateSignedInteger( 3.14, 'int32' );\n* // returns false\n*/\nfunction validateSignedInteger( value, dtype ) {\n\treturn ( isInteger( value ) && isSafeCast( minSignedIntegerDataType( value ), dtype ) ); // eslint-disable-line max-len\n}\n\n/**\n* Verifies whether a provided value can be safely cast to an unsigned integer data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - array data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateUnsignedInteger( 3, 'uint32' );\n* // returns true\n*\n* @example\n* var out = validateUnsignedInteger( -3, 'uint32' );\n* // returns false\n*/\nfunction validateUnsignedInteger( value, dtype ) {\n\treturn ( isInteger( value ) && isSafeCast( minDataType( value ), dtype ) );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a binary data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - array data type\n* @returns {boolean} boolean result\n*\n* @example\n* var out = validateBinary( 3, 'binary' );\n* // returns true\n*\n* @example\n* var out = validateBinary( -3, 'binary' );\n* // returns false\n*/\nfunction validateBinary( value ) {\n\treturn ( isInteger( value ) && minDataType( value ) === 'uint8' );\n}\n\n/**\n* Verifies whether a provided value can be safely cast to a struct data type.\n*\n* @private\n* @param {*} value - input value\n* @param {string} dtype - array data type\n* @returns {boolean} boolean result\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'value',\n* 'type': 'float64'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var data = {\n* 'value': 3.0\n* };\n* var s = new Struct( data );\n*\n* var out = validateStruct( s, '|[0,8]|' );\n* // returns true\n*\n* @example\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema = [\n* {\n* 'name': 'value',\n* 'type': 'float32'\n* }\n* ];\n* var Struct = structFactory( schema );\n*\n* var data = {\n* 'value': 3.0\n* };\n* var s = new Struct( data );\n*\n* var out = validateStruct( s, '|[0,8]|' );\n* // returns false\n*/\nfunction validateStruct( value, dtype ) {\n\tvar o = {\n\t\t'format': 'layout'\n\t};\n\treturn ( isStruct( value ) && value.toString( o ) === dtype );\n}\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating whether a scalar value can be safely cast or, for floating-point data types, downcast to specified ndarray data type.\n*\n* @param {*} value - scalar value\n* @param {*} dtype - ndarray data type\n* @returns {boolean} boolean indicating whether a scalar value can be safely cast\n*\n* @example\n* var bool = isScalarMostlySafeCompatible( 3.0, 'float64' );\n* // returns true\n*\n* @example\n* var bool = isScalarMostlySafeCompatible( 3.14, 'int32' );\n* // returns false\n*\n* @example\n* var bool = isScalarMostlySafeCompatible( -1, 'uint32' );\n* // returns false\n*/\nfunction isScalarMostlySafeCompatible( value, dtype ) { // eslint-disable-line id-length\n\tvar dt = resolveStr( dtype ) || ''; // note: empty string when unable to resolve a second argument to a data type string\n\tif ( dt === 'generic' ) {\n\t\treturn validateGeneric( value, dt );\n\t}\n\tif ( dt === 'binary' ) {\n\t\treturn validateBinary( value, dt );\n\t}\n\tif ( isRealFloatingDataType( dt ) ) {\n\t\treturn validateRealFloating( value, dt );\n\t}\n\tif ( isUnsignedIntegerDataType( dt ) ) {\n\t\treturn validateUnsignedInteger( value, dt );\n\t}\n\tif ( isSignedIntegerDataType( dt ) ) {\n\t\treturn validateSignedInteger( value, dt );\n\t}\n\tif ( isBooleanDataType( dt ) ) {\n\t\treturn validateBoolean( value, dt );\n\t}\n\tif ( isComplexDataType( dt ) ) {\n\t\treturn validateComplexFloating( value, dt );\n\t}\n\tif ( isStructDataType( dtype ) ) {\n\t\treturn validateStruct( value, dt );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isScalarMostlySafeCompatible;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name hasEqualShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/has-equal-shape}\n*/\nimport hasEqualShape from '@stdlib/ndarray-base-assert-has-equal-shape';\nsetReadOnly( ns, 'hasEqualShape', hasEqualShape );\n\n/**\n* @name isAllowedDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-allowed-data-type-cast}\n*/\nimport isAllowedDataTypeCast from '@stdlib/ndarray-base-assert-is-allowed-data-type-cast';\nsetReadOnly( ns, 'isAllowedDataTypeCast', isAllowedDataTypeCast );\n\n/**\n* @name isBooleanDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-boolean-data-type}\n*/\nimport isBooleanDataType from '@stdlib/ndarray-base-assert-is-boolean-data-type';\nsetReadOnly( ns, 'isBooleanDataType', isBooleanDataType );\n\n/**\n* @name isBooleanIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-boolean-index-data-type}\n*/\nimport isBooleanIndexDataType from '@stdlib/ndarray-base-assert-is-boolean-index-data-type';\nsetReadOnly( ns, 'isBooleanIndexDataType', isBooleanIndexDataType );\n\n/**\n* @name isBufferLengthCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible}\n*/\nimport isBufferLengthCompatible from '@stdlib/ndarray-base-assert-is-buffer-length-compatible';\nsetReadOnly( ns, 'isBufferLengthCompatible', isBufferLengthCompatible );\n\n/**\n* @name isBufferLengthCompatibleShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape}\n*/\nimport isBufferLengthCompatibleShape from '@stdlib/ndarray-base-assert-is-buffer-length-compatible-shape';\nsetReadOnly( ns, 'isBufferLengthCompatibleShape', isBufferLengthCompatibleShape );\n\n/**\n* @name isCastingMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-casting-mode}\n*/\nimport isCastingMode from '@stdlib/ndarray-base-assert-is-casting-mode';\nsetReadOnly( ns, 'isCastingMode', isCastingMode );\n\n/**\n* @name isColumnMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major}\n*/\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major';\nsetReadOnly( ns, 'isColumnMajor', isColumnMajor );\n\n/**\n* @name isColumnMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major-contiguous}\n*/\nimport isColumnMajorContiguous from '@stdlib/ndarray-base-assert-is-column-major-contiguous';\nsetReadOnly( ns, 'isColumnMajorContiguous', isColumnMajorContiguous );\n\n/**\n* @name isColumnMajorString\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major-string}\n*/\nimport isColumnMajorString from '@stdlib/ndarray-base-assert-is-column-major-string';\nsetReadOnly( ns, 'isColumnMajorString', isColumnMajorString );\n\n/**\n* @name isComplexFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-complex-floating-point-data-type}\n*/\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nsetReadOnly( ns, 'isComplexFloatingPointDataType', isComplexFloatingPointDataType );\n\n/**\n* @name isComplexFloatingPointDataTypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-complex-floating-point-data-type-char}\n*/\nimport isComplexFloatingPointDataTypeChar from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type-char';\nsetReadOnly( ns, 'isComplexFloatingPointDataTypeChar', isComplexFloatingPointDataTypeChar );\n\n/**\n* @name isContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-contiguous}\n*/\nimport isContiguous from '@stdlib/ndarray-base-assert-is-contiguous';\nsetReadOnly( ns, 'isContiguous', isContiguous );\n\n/**\n* @name isDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type}\n*/\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nsetReadOnly( ns, 'isDataType', isDataType );\n\n/**\n* @name isDataTypeObject\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type-object}\n*/\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nsetReadOnly( ns, 'isDataTypeObject', isDataTypeObject );\n\n/**\n* @name isDataTypeString\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type-string}\n*/\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nsetReadOnly( ns, 'isDataTypeString', isDataTypeString );\n\n/**\n* @name isEqualDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-equal-data-type}\n*/\nimport isEqualDataType from '@stdlib/ndarray-base-assert-is-equal-data-type';\nsetReadOnly( ns, 'isEqualDataType', isEqualDataType );\n\n/**\n* @name isFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-floating-point-data-type}\n*/\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nsetReadOnly( ns, 'isFloatingPointDataType', isFloatingPointDataType );\n\n/**\n* @name isIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-index-data-type}\n*/\nimport isIndexDataType from '@stdlib/ndarray-base-assert-is-index-data-type';\nsetReadOnly( ns, 'isIndexDataType', isIndexDataType );\n\n/**\n* @name isIndexMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-index-mode}\n*/\nimport isIndexMode from '@stdlib/ndarray-base-assert-is-index-mode';\nsetReadOnly( ns, 'isIndexMode', isIndexMode );\n\n/**\n* @name isInputCastingPolicy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-input-casting-policy}\n*/\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nsetReadOnly( ns, 'isInputCastingPolicy', isInputCastingPolicy );\n\n/**\n* @name isIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-integer-data-type}\n*/\nimport isIntegerDataType from '@stdlib/ndarray-base-assert-is-integer-data-type';\nsetReadOnly( ns, 'isIntegerDataType', isIntegerDataType );\n\n/**\n* @name isIntegerIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-integer-index-data-type}\n*/\nimport isIntegerIndexDataType from '@stdlib/ndarray-base-assert-is-integer-index-data-type';\nsetReadOnly( ns, 'isIntegerIndexDataType', isIntegerIndexDataType );\n\n/**\n* @name isMaskIndexDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-mask-index-data-type}\n*/\nimport isMaskIndexDataType from '@stdlib/ndarray-base-assert-is-mask-index-data-type';\nsetReadOnly( ns, 'isMaskIndexDataType', isMaskIndexDataType );\n\n/**\n* @name isMostlySafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast}\n*/\nimport isMostlySafeDataTypeCast from '@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast';\nsetReadOnly( ns, 'isMostlySafeDataTypeCast', isMostlySafeDataTypeCast );\n\n/**\n* @name isNumericDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-numeric-data-type}\n*/\nimport isNumericDataType from '@stdlib/ndarray-base-assert-is-numeric-data-type';\nsetReadOnly( ns, 'isNumericDataType', isNumericDataType );\n\n/**\n* @name isOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-order}\n*/\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nsetReadOnly( ns, 'isOrder', isOrder );\n\n/**\n* @name isOutputDataTypePolicy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-output-data-type-policy}\n*/\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nsetReadOnly( ns, 'isOutputDataTypePolicy', isOutputDataTypePolicy );\n\n/**\n* @name isReadOnly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-read-only}\n*/\nimport isReadOnly from '@stdlib/ndarray-base-assert-is-read-only';\nsetReadOnly( ns, 'isReadOnly', isReadOnly );\n\n/**\n* @name isRealDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-data-type}\n*/\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nsetReadOnly( ns, 'isRealDataType', isRealDataType );\n\n/**\n* @name isRealFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-floating-point-data-type}\n*/\nimport isRealFloatingPointDataType from '@stdlib/ndarray-base-assert-is-real-floating-point-data-type';\nsetReadOnly( ns, 'isRealFloatingPointDataType', isRealFloatingPointDataType );\n\n/**\n* @name isRowMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major}\n*/\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\nsetReadOnly( ns, 'isRowMajor', isRowMajor );\n\n/**\n* @name isRowMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major-contiguous}\n*/\nimport isRowMajorContiguous from '@stdlib/ndarray-base-assert-is-row-major-contiguous';\nsetReadOnly( ns, 'isRowMajorContiguous', isRowMajorContiguous );\n\n/**\n* @name isRowMajorString\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major-string}\n*/\nimport isRowMajorString from '@stdlib/ndarray-base-assert-is-row-major-string';\nsetReadOnly( ns, 'isRowMajorString', isRowMajorString );\n\n/**\n* @name isSafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-safe-data-type-cast}\n*/\nimport isSafeDataTypeCast from '@stdlib/ndarray-base-assert-is-safe-data-type-cast';\nsetReadOnly( ns, 'isSafeDataTypeCast', isSafeDataTypeCast );\n\n/**\n* @name isSameKindDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-same-kind-data-type-cast}\n*/\nimport isSameKindDataTypeCast from '@stdlib/ndarray-base-assert-is-same-kind-data-type-cast';\nsetReadOnly( ns, 'isSameKindDataTypeCast', isSameKindDataTypeCast );\n\n/**\n* @name isScalarMostlySafeCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-scalar-mostly-safe-compatible}\n*/\nimport isScalarMostlySafeCompatible from '@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible';\nsetReadOnly( ns, 'isScalarMostlySafeCompatible', isScalarMostlySafeCompatible );\n\n/**\n* @name isSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-signed-integer-data-type}\n*/\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nsetReadOnly( ns, 'isSignedIntegerDataType', isSignedIntegerDataType );\n\n/**\n* @name isSingleSegmentCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-single-segment-compatible}\n*/\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nsetReadOnly( ns, 'isSingleSegmentCompatible', isSingleSegmentCompatible );\n\n/**\n* @name isStructDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-struct-data-type}\n*/\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\nsetReadOnly( ns, 'isStructDataType', isStructDataType );\n\n/**\n* @name isUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-unsigned-integer-data-type}\n*/\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nsetReadOnly( ns, 'isUnsignedIntegerDataType', isUnsignedIntegerDataType );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape from '@stdlib/ndarray-base-shape';\nimport hasEqualValuesIndexed from '@stdlib/array-base-assert-has-equal-values-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether two ndarrays have the same shape.\n*\n* @param {ndarray} x - first input ndarray\n* @param {ndarray} y - second input ndarray\n* @returns {boolean} boolean indicating whether two ndarrays have the same shape\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1, 2, 3, 4 ] );\n* var y = array( [ 5, 6, 7, 8 ] );\n*\n* var bool = hasEqualShape( x, y );\n* // returns true\n*/\nfunction hasEqualShape( x, y ) {\n\treturn hasEqualValuesIndexed( shape( x, false ), shape( y, false ) );\n}\n\n\n// EXPORTS //\n\nexport default hasEqualShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if two indexed arrays have equal values.\n*\n* @param {Collection} x - first input array\n* @param {Collection} y - second input array\n* @returns {boolean} boolean indicating if both arrays have equal values\n*\n* @example\n* var x = [ 0, 0, 1, 0 ];\n* var y = [ 0, 0, 1, 0 ];\n*\n* var out = hasEqualValuesIndexed( x, y );\n* // returns true\n*\n* @example\n* var x = [ 0, 0, 0, 0 ];\n* var y = [ 0, 0, 1, 0 ];\n*\n* var out = hasEqualValuesIndexed( x, y );\n* // returns false\n*/\nfunction hasEqualValuesIndexed( x, y ) {\n\tvar i;\n\tif ( x.length !== y.length ) {\n\t\treturn false;\n\t}\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\tif ( x[ i ] !== y[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default hasEqualValuesIndexed;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with a provided shape array.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {boolean} boolean indicating if a buffer length is compatible with a provided shape array\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 4, shape );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 3, shape );\n* // returns false\n*/\nfunction isBufferLengthCompatibleShape( len, shape ) { // eslint-disable-line id-length\n\treturn ( len >= numel( shape ) );\n}\n\n\n// EXPORTS //\n\nexport default isBufferLengthCompatibleShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, -2 ];\n* var offset = 2;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isColumnMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisColumnMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isSingleSegmentCompatible from '@stdlib/ndarray-base-assert-is-single-segment-compatible';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isRowMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisRowMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable valid-typeof */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar T = 'number';\n\n\n// FUNCTIONS //\n\n/**\n* Wraps a function and casts a function's return value to a complex number.\n*\n* ## Notes\n*\n* - The returned function **assumes** that the wrapped function returns either a real or complex number.\n* - The returned function **assumes** that, if a return value is non-numeric (i.e., not of type `number`), then the return value is a complex number. The returned function does **not** verify that non-numeric return values are, in fact, complex number objects. The returned function returns non-numeric return values from the wrapped function without modification.\n*\n* @param {Function} fcn - function to wrap\n* @param {NonNegativeInteger} nargs - number of arguments\n* @param {Function} ctor - complex number constructor\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a constructor function\n* @returns {Function} wrapped function\n*\n* @example\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import addf from '@stdlib/number-float32-base-add';\n*\n* var f = wrap( addf, 2, Complex64 );\n*\n* // ...\n*\n* var z = f( 3.0, 4.0 );\n* // returns [ 7.0, 0.0 ]\n*/\nfunction wrap( fcn, nargs, ctor ) {\n\tvar fcns;\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tif ( !isNonNegativeInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isFunction( ctor ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a constructor function. Value: `%s`.', ctor ) );\n\t}\n\tfcns = [ fcn0, fcn1, fcn2, fcn3, fcn4, fcn5 ];\n\treturn ( nargs <= 5 ) ? fcns[ nargs ] : fcnN;\n\n\t/**\n\t* Invokes a nullary function and returns a complex number.\n\t*\n\t* @private\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn0() {\n\t\tvar r = fcn();\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a unary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn1( x ) {\n\t\tvar r = fcn( x );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a binary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn2( x, y ) {\n\t\tvar r = fcn( x, y );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a ternary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @param {*} z - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn3( x, y, z ) {\n\t\tvar r = fcn( x, y, z );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a quaternary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @param {*} z - input value\n\t* @param {*} w - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn4( x, y, z, w ) {\n\t\tvar r = fcn( x, y, z, w );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a quinary function and returns a complex number.\n\t*\n\t* @private\n\t* @param {*} x - input value\n\t* @param {*} y - input value\n\t* @param {*} z - input value\n\t* @param {*} w - input value\n\t* @param {*} v - input value\n\t* @returns {Complex} result\n\t*/\n\tfunction fcn5( x, y, z, w, v ) {\n\t\tvar r = fcn( x, y, z, w, v );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t* Invokes a function and returns a complex number.\n\t*\n\t* @private\n\t* @param {...*} args - input values\n\t* @returns {Complex} result\n\t*/\n\tfunction fcnN() {\n\t\tvar args;\n\t\tvar r;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\tr = fcn.apply( null, args );\n\t\tif ( typeof r === T ) {\n\t\t\treturn new ctor( r, 0.0 );\n\t\t}\n\t\treturn r;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n* - **idx**: dimension indices sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*\n* var idx = o.idx;\n* // returns [ 2, 1, 0 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy,\n\t\t'idx': idx\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20`) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - input array data type\n* @param {*} dtypeY - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = unaryBlockSize( 'float64', 'float64' );\n* // returns \n*/\nfunction unaryBlockSize( dtypeX, dtypeY ) {\n\treturn blockSize( [ dtypeX, dtypeY ] );\n}\n\n\n// EXPORTS //\n\nexport default unaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport castReturn from '@stdlib/complex-base-cast-return';\nimport complexCtors from '@stdlib/complex-ctors';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n// TODO: consider adding a package utility for mapping a complex dtype to its complementary real-valued counterpart\nvar COMPLEX_TO_REAL = { // WARNING: this table needs to be manually updated if we add support for additional complex number dtypes\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n\n// FUNCTIONS //\n\n/**\n* Converts a boolean ndarray to an 8-bit unsigned integer ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction boolean2uint8( x ) {\n\tx.data = reinterpretBoolean( x.data, 0 );\n\tx.accessorProtocol = false;\n\treturn x;\n}\n\n/**\n* Converts a complex-valued floating-point ndarray to a real-valued floating-point ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction complex2real( x ) {\n\tvar ndims = x.shape.length;\n\n\tx.data = reinterpretComplex( x.data, 0 );\n\tx.accessorProtocol = false;\n\tx.dtype = COMPLEX_TO_REAL[ String( x.dtype ) ];\n\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\tx.offset *= 2;\n\n\t// Append a trailing dimension where each element is the real and imaginary component for a corresponding element in the original input ndarray (note: this means that a two-dimensional complex-valued ndarray becomes a three-dimensional real-valued ndarray; while this does entail additional loop overhead, it is still significantly faster than sending complex-valued ndarrays down the accessor path):\n\tx.shape.push( 2 ); // real and imaginary components\n\n\t// Augment the strides, where we assume that real and imaginary components are adjacent in memory...\n\tif ( ndims === 0 ) {\n\t\tx.strides[ 0 ] = 1;\n\t} else {\n\t\tx.strides.push( 1 );\n\t}\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) && isBooleanArray( y.data ) ) {\n\t\tx = boolean2uint8( x );\n\t\ty = boolean2uint8( y );\n\t} else if ( isComplexArray( x.data ) && isComplexArray( y.data ) ) {\n\t\tx = complex2real( x );\n\t\ty = complex2real( y );\n\t}\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast; note: we cannot create a specialized view for assigning only real components, as the imaginary component for each element in `y` also needs to be set to zero and while we could perform two passes, it's not clear it's worth the effort)...\n\telse if ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( String( y.dtype ) ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y, true );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// VARIABLES //\n\nvar arraySlice = Array.prototype.slice;\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'slice' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Returns a shallow copy of a portion of an array using the `Array#slice` built-in.\n*\n* @private\n* @param {Collection} x - input array\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = builtin( x, 1, 3 );\n* // returns [ 2, 3 ]\n*/\nfunction builtin( x, start, end ) {\n\treturn arraySlice.call( x, start, end );\n}\n\n/**\n* Returns a shallow copy of a portion of an accessor array.\n*\n* @private\n* @param {Object} x - input array object\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Array} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = arraylike2object( toAccessorArray( [ 1, 2, 3, 4 ] ) );\n*\n* var out = accessors( x, 1, 3 );\n* // returns [ 2, 3 ]\n*/\nfunction accessors( x, start, end ) {\n\tvar data;\n\tvar get;\n\tvar out;\n\tvar i;\n\n\tdata = x.data;\n\tget = x.accessors[ 0 ];\n\tout = [];\n\tfor ( i = start; i < end; i++ ) {\n\t\tout.push( get( data, i ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a shallow copy of a portion of an array.\n*\n* @param {Collection} x - input array\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = slice( x, 1, 3 );\n* // returns [ 2, 3 ]\n*\n* var bool = ( out === x );\n* // returns false\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var out = slice( x, 1, 3 );\n* // returns [ 2, 3 ]\n*\n* var bool = ( out === x );\n* // returns false\n*/\nfunction slice( x, start, end ) {\n\tvar obj;\n\tif ( hasMethod( x, 'slice' ) ) {\n\t\treturn x.slice( start, end );\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj, start, end );\n\t}\n\t// Assume we can use the built-in `Array#slice` method to copy elements to a generic array:\n\treturn builtin( x, start, end );\n}\n\n\n// EXPORTS //\n\nexport default slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Determines if an array is column-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*/\nfunction isColumnMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 2 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isColumnMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Determines if an array is row-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*/\nfunction isRowMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 1 || order === 3 );\n}\n\n\n// EXPORTS //\n\nexport default isRowMajorContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar RE_CHARS = /[-\\/\\\\^$*+?.()|[\\]{}]/g; // eslint-disable-line no-useless-escape\n\n\n// MAIN //\n\n/**\n* Escapes a regular expression string.\n*\n* @param {string} str - regular expression string\n* @throws {TypeError} first argument must be a string\n* @returns {string} escaped string\n*\n* @example\n* var str = rescape( '[A-Z]*' );\n* // returns '\\[A\\-Z\\]\\*'\n*/\nfunction rescape( str ) {\n\tvar len;\n\tvar s;\n\tvar i;\n\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a regular expression string. Value: `%s`.', str ) );\n\t}\n\t// Check if the string starts with a forward slash...\n\tif ( str[ 0 ] === '/' ) {\n\t\t// Find the last forward slash...\n\t\tlen = str.length;\n\t\tfor ( i = len-1; i >= 0; i-- ) {\n\t\t\tif ( str[ i ] === '/' ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// If we searched the string to no avail or if the first letter is not `/`, assume that the string is not of the form `/[...]/[guimy]`:\n\tif ( i === void 0 || i <= 0 ) {\n\t\treturn str.replace( RE_CHARS, '\\\\$&' );\n\t}\n\t// We need to de-construct the string...\n\ts = str.substring( 1, i );\n\n\t// Only escape the characters between the `/`:\n\ts = s.replace( RE_CHARS, '\\\\$&' );\n\n\t// Reassemble:\n\tstr = str[ 0 ] + s + str.substring( i );\n\n\treturn str;\n}\n\n\n// EXPORTS //\n\nexport default rescape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\nvar exec = RegExp.prototype.exec; // non-generic\n\n\n// EXPORTS //\n\nexport default exec;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport hasToStringTag from '@stdlib/assert-has-tostringtag-support';\nimport nativeClass from '@stdlib/utils-native-class';\nimport test from './try2exec.js';\n\n\n// VARIABLES //\n\nvar FLG = hasToStringTag();\n\n\n// MAIN //\n\n/**\n* Tests if a value is a regular expression.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is a regular expression\n*\n* @example\n* var bool = isRegExp( /\\.+/ );\n* // returns true\n*\n* @example\n* var bool = isRegExp( {} );\n* // returns false\n*/\nfunction isRegExp( value ) {\n\tif ( typeof value === 'object' ) {\n\t\tif ( value instanceof RegExp ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( FLG ) {\n\t\t\treturn test( value );\n\t\t}\n\t\treturn ( nativeClass( value ) === '[object RegExp]' );\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default isRegExp;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport exec from './exec.js';\n\n\n// MAIN //\n\n/**\n* Attempts to call a `RegExp` method.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if able to call a `RegExp` method\n*/\nfunction test( value ) {\n\ttry {\n\t\texec.call( value );\n\t\treturn true;\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default test;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rescape from '@stdlib/utils-escape-regexp-string';\nimport isFunction from '@stdlib/assert-is-function';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport isRegExp from '@stdlib/assert-is-regexp';\nimport format from '@stdlib/string-format';\nimport base from '@stdlib/string-base-replace';\n\n\n// MAIN //\n\n/**\n* Replaces search occurrences with a replacement string.\n*\n* @param {string} str - input string\n* @param {(string|RegExp)} search - search expression\n* @param {(string|Function)} newval - replacement value or function\n* @throws {TypeError} first argument must be a string\n* @throws {TypeError} second argument must be a string or regular expression\n* @throws {TypeError} third argument must be a string or function\n* @returns {string} new string containing replacement(s)\n*\n* @example\n* var str = 'beep';\n* var out = replace( str, 'e', 'o' );\n* // returns 'boop'\n*\n* @example\n* var str = 'Hello World';\n* var out = replace( str, /world/i, 'Mr. President' );\n* // returns 'Hello Mr. President'\n*\n* @example\n* import capitalize from '@stdlib/string-capitalize';\n*\n* var str = 'Oranges and lemons say the bells of St. Clement\\'s';\n*\n* function replacer( match, p1 ) {\n* return capitalize( p1 );\n* }\n*\n* var out = replace( str, /([^\\s]*)/gi, replacer );\n* // returns 'Oranges And Lemons Say The Bells Of St. Clement\\'s'\n*/\nfunction replace( str, search, newval ) {\n\tif ( !isString( str ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', str ) );\n\t}\n\tif ( isString( search ) ) {\n\t\tsearch = new RegExp( rescape( search ), 'g' );\n\t} else if ( !isRegExp( search ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a string or regular expression. Value: `%s`.', search ) );\n\t}\n\tif ( !isString( newval ) && !isFunction( newval ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a string or replacement function. Value: `%s`.', newval ) );\n\t}\n\treturn base( str, search, newval );\n}\n\n\n// EXPORTS //\n\nexport default replace;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-replace';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// VARIABLES //\n\nvar CTORS = {\n\t'int8': 'new Int8Array( [ {{data}} ] )',\n\t'uint8': 'new Uint8Array( [ {{data}} ] )',\n\t'uint8c': 'new Uint8ClampedArray( [ {{data}} ] )',\n\t'int16': 'new Int16Array( [ {{data}} ] )',\n\t'uint16': 'new Uint16Array( [ {{data}} ] )',\n\t'int32': 'new Int32Array( [ {{data}} ] )',\n\t'uint32': 'new Uint32Array( [ {{data}} ] )',\n\t'float32': 'new Float32Array( [ {{data}} ] )',\n\t'float64': 'new Float64Array( [ {{data}} ] )',\n\t'generic': '[ {{data}} ]',\n\t'binary': 'new Buffer( [ {{data}} ] )',\n\t'complex64': 'new Complex64Array( [ {{data}} ] )',\n\t'complex128': 'new Complex128Array( [ {{data}} ] )',\n\t'bool': 'new BooleanArray( [ {{data}} ] )'\n};\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {string} string representation\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar buffer;\n\tvar ndims;\n\tvar ctor;\n\tvar str;\n\tvar dt;\n\tvar v;\n\tvar i;\n\n\tndims = this._shape.length;\n\tdt = this._dtype;\n\n\t// Function to invoke to create an ndarray:\n\tstr = 'ndarray( \\''+dt+'\\', ';\n\n\t// Data buffer parameter...\n\tbuffer = '';\n\tif ( this._length <= 100 ) {\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// First three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbuffer += ', ..., ';\n\n\t\t// Last three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tv = this.iget( this._length-1-i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tbuffer += this.iget( this._length-1-i );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tctor = CTORS[ this.dtype ];\n\tstr += replace( ctor, '{{data}}', buffer );\n\tstr += ', ';\n\n\t// Array shape...\n\tif ( ndims === 0 ) {\n\t\tstr += '[]';\n\t} else {\n\t\tstr += '[ ' + this._shape.join( ', ' ) + ' ]';\n\t}\n\tstr += ', ';\n\n\t// Stride array...\n\tstr += '[ ';\n\tif ( ndims === 0 ) {\n\t\tstr += '0';\n\t} else {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( this._strides[ i ] < 0 ) {\n\t\t\t\tstr += -this._strides[ i ];\n\t\t\t} else {\n\t\t\t\tstr += this._strides[ i ];\n\t\t\t}\n\t\t\tif ( i < ndims-1 ) {\n\t\t\t\tstr += ', ';\n\t\t\t}\n\t\t}\n\t}\n\tstr += ' ]';\n\tstr += ', ';\n\n\t// Buffer offset:\n\tstr += '0';\n\tstr += ', ';\n\n\t// Order:\n\tstr += '\\'' + this._order + '\\'';\n\n\t// Close the function call:\n\tstr += ' )';\n\treturn str;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toString;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport BigInt from '@stdlib/bigint-ctor';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( this._offset*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport Uint8Array from '@stdlib/array-uint8';\nimport DataView from '@stdlib/array-dataview';\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n// Byte array workspace:\nvar BYTES = new Uint8Array( 8 );\nvar VIEW = new DataView( BYTES.buffer );\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\n* @param {number} x - input value\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x, out, stride, offset ) {\n\tvar hi;\n\tvar lo;\n\tvar i;\n\n\tif ( x === 0 ) {\n\t\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\t\tout[ offset ] = 0;\n\t\t\toffset += stride;\n\t\t}\n\t\treturn out;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tVIEW.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tVIEW.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tVIEW.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\tfor ( i = 0; i < BYTES.length; i++ ) {\n\t\tout[ offset ] = BYTES[ i ];\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* @module @stdlib/number-float64-base-to-int64-bytes\n*\n* @example\n* import float64ToInt64Bytes from '@stdlib/number-float64-base-to-int64-bytes';\n*\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*\n* @example\n* import Uint8Array from '@stdlib/array-uint8';\n* import float64ToInt64Bytes from '@stdlib/number-float64-base-to-int64-bytes';\n*\n* var out = new Uint8Array( 8 );\n* var bytes = float64ToInt64Bytes( 1.0, out, 1, 0 );\n* // returns \n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport Uint8Array from '@stdlib/array-uint8';\nimport DataView from '@stdlib/array-dataview';\nimport floor from '@stdlib/math-base-special-floor';\n\n\n// VARIABLES //\n\n// 0xFFFFFFFF = 2**32 - 1 => 11111111 11111111 11111111 11111111\nvar LOW_MASK = 0xFFFFFFFF >>> 0;\n\n// 2**32\nvar TWO_32 = 4294967296;\n\n\n// MAIN //\n\n/**\n* Converts an integer-valued double-precision floating-point number to a signed 64-bit integer byte array according to host byte order (endianness).\n*\n* ## Notes\n*\n* - This function assumes that the input value is less than the maximum safe double-precision floating-point integer plus one (i.e., `2**53`).\n*\n* @param {number} x - input value\n* @returns {Uint8Array} byte array\n*\n* @example\n* var bytes = float64ToInt64Bytes( 1.0 );\n* // returns \n*/\nfunction float64ToInt64Bytes( x ) {\n\tvar bytes;\n\tvar view;\n\tvar hi;\n\tvar lo;\n\n\tbytes = new Uint8Array( 8 );\n\tif ( x === 0 ) {\n\t\treturn bytes;\n\t}\n\t// Get the low 32-bit word:\n\tlo = (x&LOW_MASK)>>>0;\n\n\t// Get the high 32-bit word:\n\thi = floor( x/TWO_32 );\n\n\t// Insert the high and low words according to host byte order (endianness):\n\tview = new DataView( bytes.buffer );\n\tif ( IS_LITTLE_ENDIAN ) {\n\t\tview.setUint32( 0, lo, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, hi, IS_LITTLE_ENDIAN );\n\t} else {\n\t\tview.setUint32( 0, hi, IS_LITTLE_ENDIAN );\n\t\tview.setUint32( 4, lo, IS_LITTLE_ENDIAN );\n\t}\n\treturn bytes;\n}\n\n\n// EXPORTS //\n\nexport default float64ToInt64Bytes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport Uint8Array from '@stdlib/array-uint8';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\nimport { assign as float64ToInt64Bytes } from '@stdlib/number-float64-base-to-int64-bytes';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create views for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( this._offset*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default meta2dataview;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport hasBigIntSupport from '@stdlib/assert-has-bigint-support';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport slice from '@stdlib/array-base-slice';\nimport Boolean from '@stdlib/boolean-ctor';\nimport isColumnMajorContiguous from './is_column_major_contiguous.js';\nimport isRowMajorContiguous from './is_row_major_contiguous.js';\nimport isContiguous from './is_contiguous.js';\nimport copyFlags from './copy_flags.js';\nimport igetValue from './iget.js';\nimport isetValue from './iset.js';\nimport setValue from './set.js';\nimport getValue from './get.js';\nimport valueOf from './valueof.js'; // eslint-disable-line stdlib/no-redeclare\nimport toJSON from './tojson.js';\nimport toString from './tostring.js'; // eslint-disable-line stdlib/no-redeclare\nimport meta2dataview from './meta2dataview.js';\nimport meta2dataviewPolyfill from './meta2dataview.polyfill.js';\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* ## Notes\n*\n* - To create a zero-dimensional array,\n*\n* ```javascript\n* var buffer = [ 1 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* ```\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order ) {\n\tvar contiguous;\n\tvar nbytes;\n\tvar ord;\n\tvar len;\n\tvar i;\n\tif ( !(this instanceof ndarray) ) {\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t}\n\t// Compute the number of elements...\n\tlen = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tlen *= shape[ i ]; // TODO: consider supporting accessor arrays here\n\t}\n\t// Compute the number of bytes...\n\tif ( buffer.BYTES_PER_ELEMENT ) {\n\t\tnbytes = buffer.BYTES_PER_ELEMENT * len;\n\t} else {\n\t\tnbytes = null;\n\t}\n\t// Set private properties...\n\tthis._byteLength = nbytes;\n\tthis._bytesPerElement = bytesPerElement( dtype );\n\tthis._buffer = buffer;\n\tthis._dtype = dtype;\n\tthis._length = len;\n\tthis._ndims = shape.length;\n\tthis._offset = offset;\n\tthis._order = order;\n\tthis._shape = shape;\n\tthis._strides = strides;\n\tthis._accessors = Boolean( buffer.get && buffer.set );\n\n\tthis._iterationOrder = iterationOrder( strides );\n\n\t// Determine if the array can be stored contiguously:\n\tcontiguous = isContiguous( len, shape, strides, offset, this._iterationOrder ); // eslint-disable-line max-len\n\n\t// Infer the array \"order\" from the stride array (this is supplementary to the `order` parameter):\n\tord = strides2order( strides );\n\n\tthis._flags = {\n\t\t'ROW_MAJOR_CONTIGUOUS': isRowMajorContiguous( ord, contiguous ),\n\t\t'COLUMN_MAJOR_CONTIGUOUS': isColumnMajorContiguous( ord, contiguous ),\n\t\t'READONLY': false\n\t};\n\n\t// Initialize a property for caching serialized meta data:\n\tthis.__meta_dataview__ = null;\n\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Size (in bytes) of the array (if known).\n*\n* @name byteLength\n* @memberof ndarray.prototype\n* @type {(NonNegativeInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var byteLength = x.byteLength;\n* // returns 48\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Size (in bytes) of each array element (if known).\n*\n* @name BYTES_PER_ELEMENT\n* @memberof ndarray.prototype\n* @type {(PositiveInteger|null)}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var nbytes = x.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'BYTES_PER_ELEMENT', function get() {\n\treturn this._bytesPerElement;\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name data\n* @memberof ndarray.prototype\n* @type {(Array|TypedArray|Buffer)}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var data = x.data;\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'data', function get() {\n\treturn this._buffer;\n});\n\n/**\n* Underlying data type.\n*\n* @name dtype\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dtype = x.dtype;\n* // returns 'generic'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'dtype', function get() {\n\treturn this._dtype;\n});\n\n/**\n* Meta information, such as information concerning the memory layout of the array.\n*\n* @name flags\n* @memberof ndarray.prototype\n* @type {Object}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var flgs = x.flags;\n* // returns \n*/\nsetReadOnlyAccessor( ndarray.prototype, 'flags', function get() {\n\treturn copyFlags( this._flags );\n});\n\n/**\n* Length of the array.\n*\n* @name length\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var len = x.length;\n* // returns 6\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Number of dimensions.\n*\n* @name ndims\n* @memberof ndarray.prototype\n* @type {PositiveInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var ndims = x.ndims;\n* // returns 2\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'ndims', function get() {\n\treturn this._ndims;\n});\n\n/**\n* Index offset which specifies the buffer index at which to start iterating over array elements.\n*\n* @name offset\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.offset;\n* // returns 0\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'offset', function get() {\n\treturn this._offset;\n});\n\n/**\n* Array order.\n*\n* ## Notes\n*\n* - The array order is either row-major (C-style) or column-major (Fortran-style).\n*\n* @name order\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var order = x.order;\n* // returns 'row-major'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'order', function get() {\n\treturn this._order;\n});\n\n/**\n* Shape of the array.\n*\n* @name shape\n* @memberof ndarray.prototype\n* @type {NonNegativeIntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.shape;\n* // returns [ 3, 2 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'shape', function get() {\n\treturn slice( this._shape, 0, this._shape.length );\n});\n\n/**\n* Index strides which specify how to access data along corresponding array dimensions.\n*\n* @name strides\n* @memberof ndarray.prototype\n* @type {IntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.strides;\n* // returns [ 2, 1 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'strides', function get() {\n\treturn slice( this._strides, 0, this._strides.length );\n});\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', getValue );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', igetValue );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', setValue );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', isetValue );\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toString\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {string} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var str = x.toString();\n* // returns \"ndarray( 'generic', [ 3, 4, 5, 6, 7, 8 ], [ 3, 2 ], [ 2, 1 ], 0, 'row-major' )\"\n*/\nsetReadOnly( ndarray.prototype, 'toString', toString );\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying an `ndarray` instance.\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toJSON\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {Object} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.toJSON();\n* // e.g., returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 3, 4, 5, 6, 7, 8 ] }\n*/\nsetReadOnly( ndarray.prototype, 'toJSON', toJSON );\n\n/**\n* Converts an ndarray instance to a primitive value.\n*\n* ## Notes\n*\n* - Only zero-dimensional ndarrays are converted to a primitive value. For ndarray instances having one or more dimensions, the method returns the `this` value, as is the default behavior for objects.\n*\n* @name valueOf\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {(*|ndarray)} result\n*\n* @example\n* var buffer = [ 3.14 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.valueOf();\n* // returns 3.14\n*\n* @example\n* var buffer = [ 3.14 ];\n* var shape = [ 1 ];\n* var strides = [ 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.valueOf();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, 'valueOf', valueOf );\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - Meta data format:\n*\n* ```text\n* | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Consumers of this method should treat the returned `DataView` as **immutable**. Otherwise, mutation can invalidate meta data and potentially affect other consumers.\n*\n* @private\n* @name __array_meta_dataview__\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {DataView} serialized meta data\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dv = x.__array_meta_dataview__();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, '__array_meta_dataview__', ( hasBigIntSupport() ) ? meta2dataview : meta2dataviewPolyfill );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\n\n\n// MAIN //\n\n/**\n* Determines if an array is contiguous.\n*\n* @private\n* @param {NonNegativeInteger} len - array length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {integer} iterationOrder - iteration order\n* @returns {boolean} boolean indicating if an array is contiguous\n*/\nfunction isContiguous( len, shape, strides, offset, iterationOrder ) {\n\tvar buf;\n\n\t// If an array does not contain any elements, then no data to store, and, if the array is unordered, adjacent array elements are not guaranteed to be stored next to each other.\n\tif ( len === 0 || iterationOrder === 0 ) {\n\t\treturn false;\n\t}\n\t// Ensure that the array is compatible with a single memory segment:\n\tbuf = minmaxViewBufferIndex( shape, strides, offset );\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nexport default isContiguous;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport copy from '@stdlib/array-base-copy-indexed';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( arr, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\tM = sh.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Initialize a strides array:\n\tstrides = zeros( N );\n\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\tj = M - N + i;\n\t\tif ( j < 0 ) {\n\t\t\t// Prepended singleton dimension; stride is zero...\n\t\t\tcontinue;\n\t\t}\n\t\td = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), copy( shape ), strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default broadcastArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Normalizes an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 5\n*/\nfunction normalizeIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max + 1;\n\t\tif ( idx < 0 ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn -1;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default normalizeIndex;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\n\n\n// MAIN //\n\n/**\n* Returns a list of unique indices after normalizing to the interval `[0,max]`.\n*\n* @param {IntegerArray} indices - indices\n* @param {NonNegativeInteger} max - maximum index\n* @returns {(IntegerArray|null)} normalized indices\n*\n* @example\n* var idx = toUniqueNormalizedIndices( [ -2, 5 ], 10 );\n* // returns [ 9, 5 ]\n*\n* idx = toUniqueNormalizedIndices( [ 15 ], 10 );\n* // returns null\n*/\nfunction toUniqueNormalizedIndices( indices, max ) {\n\tvar hash;\n\tvar out;\n\tvar idx;\n\tvar i;\n\n\thash = {};\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tidx = normalizeIndex( indices[ i ], max );\n\t\tif ( idx < 0 ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( hash[ idx ] === void 0 ) {\n\t\t\thash[ idx ] = true;\n\t\t\tout.push( idx );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toUniqueNormalizedIndices;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport join from '@stdlib/array-base-join';\nimport min from '@stdlib/math-base-special-min';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of the diagonal of a matrix (or stack of matrices).\n*\n* ## Notes\n*\n* - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n* - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function returns the main diagonal; when `k > 0`, the function returns the diagonal above the main diagonal; and when `k < 0`, the function returns the diagonal below the main diagonal.\n* - The returned ndarray is a **view** of the input ndarray. Accordingly, writing to the original ndarray will **mutate** the returned ndarray and vice versa.\n* - The `writable` parameter **only** applies to ndarray constructors supporting **read-only** instances.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane from which to extract the diagonal\n* @param {integer} k - diagonal offset\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} must provide an ndarray having two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], [ 7.0, 8.0, 9.0 ] ] );\n* // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ], [ 7.0, 8.0, 9.0 ] ]\n*\n* var y = diagonal( x, [ 0, 1 ], 0, false );\n* // returns [ 1.0, 5.0, 9.0 ]\n*/\nfunction diagonal( x, dims, k, writable ) {\n\tvar strides;\n\tvar offset;\n\tvar ndims;\n\tvar shape;\n\tvar rows;\n\tvar cols;\n\tvar sh;\n\tvar st;\n\tvar sr;\n\tvar sc;\n\tvar ro;\n\tvar co;\n\tvar d;\n\tvar L;\n\tvar i;\n\n\tif ( dims.length !== 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Must provide exactly two dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\tsh = getShape( x );\n\tndims = sh.length;\n\tif ( ndims < 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. First argument must be an ndarray having two or more dimensions. Number of dimensions: %d.', ndims ) );\n\t}\n\tst = getStrides( x );\n\n\t// Resolve dimension indices...\n\td = toUniqueNormalizedIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', ndims, ndims-1, join( dims, ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\tsr = st[ d[0] ];\n\tsc = st[ d[1] ];\n\n\t// Resolve the row and column offsets corresponding to the diagonal offset `k = column - row`:\n\tco = ( k > 0 ) ? k : 0;\n\tro = co - k;\n\n\t// Compute the length of the diagonal:\n\trows = sh[ d[0] ] - ro;\n\tcols = sh[ d[1] ] - co;\n\tL = min( rows, cols );\n\tif ( L < 0 ) {\n\t\tL = 0;\n\t}\n\n\t// Adjust the offset so that we point to the first element along the specified diagonal:\n\toffset = getOffset( x );\n\tif ( L > 0 ) {\n\t\toffset += ( co*sc ) + ( ro*sr );\n\t}\n\n\t// Drop the specified dimensions and append the diagonal dimension:\n\tshape = [];\n\tstrides = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( i === d[0] || i === d[1] ) {\n\t\t\tcontinue;\n\t\t}\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\tshape.push( L );\n\tstrides.push( sr + sc );\n\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, offset, getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default diagonal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNegativeZero from '@stdlib/math-base-assert-is-negative-zero';\nimport isnan from '@stdlib/math-base-assert-is-nan';\nimport NINF from '@stdlib/constants-float64-ninf';\n\n\n// MAIN //\n\n/**\n* Returns the minimum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} minimum value\n*\n* @example\n* var v = min( 3.14, 4.2 );\n* // returns 3.14\n*\n* @example\n* var v = min( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = min( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction min( x, y ) {\n\tif ( isnan( x ) || isnan( y ) ) {\n\t\treturn NaN;\n\t}\n\tif ( x === NINF || y === NINF ) {\n\t\treturn NINF;\n\t}\n\tif ( x === y && x === 0.0 ) {\n\t\tif ( isNegativeZero( x ) ) {\n\t\t\treturn x;\n\t\t}\n\t\treturn y;\n\t}\n\tif ( x < y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default min;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies ndarray flags.\n*\n* @private\n* @param {Object} flags - flags\n* @returns {Object} copy of input object\n*/\nfunction copyFlags( flags ) {\n\treturn {\n\t\t'ROW_MAJOR_CONTIGUOUS': flags.ROW_MAJOR_CONTIGUOUS,\n\t\t'COLUMN_MAJOR_CONTIGUOUS': flags.COLUMN_MAJOR_CONTIGUOUS,\n\t\t'READONLY': flags.READONLY\n\t};\n}\n\n\n// EXPORTS //\n\nexport default copyFlags;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} idx - indices\n* @returns {*} array element\n*/\nfunction get() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// MAIN //\n\n/**\n* Returns an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( this._offset );\n\t\t}\n\t\treturn this._buffer[ this._offset ];\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this._offset+idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset+idx ];\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this.offset-idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset-idx ];\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( isColumnMajor( this._order ) ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( ind );\n\t\t}\n\t\treturn this._buffer[ ind ];\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( ind );\n\t}\n\treturn this._buffer[ ind ];\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\n\n\n// MAIN //\n\n/**\n* Sets an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( idx, this._offset );\n\t\t} else {\n\t\t\tthis._buffer[ this._offset ] = idx;\n\t\t}\n\t\treturn this;\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset+idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset+idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset-idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset-idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( isColumnMajor( this._order ) ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( v, ind );\n\t\t} else {\n\t\t\tthis._buffer[ ind ] = v;\n\t\t}\n\t\treturn this;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( v, ind );\n\t} else {\n\t\tthis._buffer[ ind ] = v;\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tlen = this._length;\n\n\t// Build an object containing all ndarray properties needed to revive a serialized ndarray...\n\tout = {};\n\tout.type = 'ndarray';\n\tout.dtype = this.dtype;\n\tout.flags = {\n\t\t'READONLY': this._flags.READONLY\n\t};\n\tout.order = this._order;\n\tout.shape = this._shape.slice();\n\tout.strides = this._strides.slice();\n\n\t// Flip the signs of negative strides:\n\tfor ( i = 0; i < out.strides.length; i++ ) {\n\t\tif ( out.strides[ i ] < 0 ) {\n\t\t\tout.strides[ i ] *= -1;\n\t\t}\n\t}\n\t// Cast data to generic array...\n\tout.data = [];\n\tif ( out.dtype === 'complex64' || out.dtype === 'complex128' ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tv = this.iget( i );\n\t\t\tout.data.push( real( v ), imag( v ) );\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.data.push( this.iget( i ) );\n\t\t}\n\t}\n\treturn out;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default toJSON;\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* Converts an ndarray instance to a primitive value.\n*\n* ## Notes\n*\n* - Only zero-dimensional ndarrays are converted to a primitive value. For ndarray instances having one or more dimensions, the method returns the `this` value, as is the default behavior for objects.\n*\n* @private\n* @returns {(*|ndarray)} result\n*/\nfunction valueOf() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tif ( this._ndims === 0 ) {\n\t\treturn this.iget();\n\t}\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nexport default valueOf;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an n-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar ybuf;\n\tvar ordy;\n\tvar len;\n\tvar set;\n\tvar shy;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tshy = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( shy );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache a reference to the stride array:\n\tsy = y.strides;\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache the output array order:\n\tordy = y.order;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tiy = vind2bind( shy, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, v );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assignnd( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assignnd( re, im, y ) {\n\tvar ybuf;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i;\n\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache a reference to the stride array:\n\tsy = y.strides;\n\n\t// Cache the index of the first indexed element:\n\toy = y.offset;\n\n\t// Cache the array order:\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = re;\n\t\tybuf[ iy+1 ] = im;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an n-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar ybuf;\n\tvar ordy;\n\tvar len;\n\tvar shy;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tshy = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( shy );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache a reference to the stride array:\n\tsy = y.strides;\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache the output array order:\n\tordy = y.order;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tiy = vind2bind( shy, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = v;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedcomplexassign2d from './2d_blocked_complex.js';\nimport blockedcomplexassign3d from './3d_blocked_complex.js';\nimport blockedcomplexassign4d from './4d_blocked_complex.js';\nimport blockedcomplexassign5d from './5d_blocked_complex.js';\nimport blockedcomplexassign6d from './6d_blocked_complex.js';\nimport blockedcomplexassign7d from './7d_blocked_complex.js';\nimport blockedcomplexassign8d from './8d_blocked_complex.js';\nimport blockedcomplexassign9d from './9d_blocked_complex.js';\nimport blockedcomplexassign10d from './10d_blocked_complex.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport complexassign0d from './0d_complex.js';\nimport complexassign1d from './1d_complex.js';\nimport complexassign2d from './2d_complex.js';\nimport complexassign3d from './3d_complex.js';\nimport complexassign4d from './4d_complex.js';\nimport complexassign5d from './5d_complex.js';\nimport complexassign6d from './6d_complex.js';\nimport complexassign7d from './7d_complex.js';\nimport complexassign8d from './8d_complex.js';\nimport complexassign9d from './9d_complex.js';\nimport complexassign10d from './10d_complex.js';\nimport complexassignnd from './nd_complex.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar COMPLEX_ASSIGN = [\n\tcomplexassign0d,\n\tcomplexassign1d,\n\tcomplexassign2d,\n\tcomplexassign3d,\n\tcomplexassign4d,\n\tcomplexassign5d,\n\tcomplexassign6d,\n\tcomplexassign7d,\n\tcomplexassign8d,\n\tcomplexassign9d,\n\tcomplexassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar BLOCKED_COMPLEX_ASSIGN = [\n\tblockedcomplexassign2d, // 0\n\tblockedcomplexassign3d,\n\tblockedcomplexassign4d,\n\tblockedcomplexassign5d,\n\tblockedcomplexassign6d,\n\tblockedcomplexassign7d,\n\tblockedcomplexassign8d,\n\tblockedcomplexassign9d,\n\tblockedcomplexassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n// TODO: consider adding a package utility for mapping a complex dtype to its complementary real-valued counterpart\nvar COMPLEX_TO_REAL = { // WARNING: this table needs to be manually updated if we add support for additional complex number dtypes\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n\n// FUNCTIONS //\n\n/**\n* Converts a boolean ndarray to an 8-bit unsigned integer ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction boolean2uint8( x ) {\n\tx.data = reinterpretBoolean( x.data, 0 );\n\tx.accessorProtocol = false;\n\treturn x;\n}\n\n/**\n* Converts a complex-valued floating-point ndarray to a real-valued floating-point ndarray.\n*\n* ## Notes\n*\n* - The function mutates the input ndarray object.\n*\n* @private\n* @param {Object} x - input ndarray object\n* @returns {Object} output ndarray object\n*/\nfunction complex2real( x ) {\n\tvar ndims = x.shape.length;\n\tx.data = reinterpretComplex( x.data, 0 );\n\tx.accessorProtocol = false;\n\tx.dtype = COMPLEX_TO_REAL[ String( x.dtype ) ];\n\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\tx.offset *= 2;\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column-major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a zero-dimensional ndarray containing the scalar value and one output ndarray\n* @returns {void}\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a zero-dimensional ndarray containing the scalar value:\n* var x = scalar2ndarray( 5.0, {\n* 'dtype': 'float64'\n* });\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var oy = 1;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign the scalar value:\n* assignScalar( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 0.0, 5.0, 5.0, 0.0, 0.0, 5.0, 5.0, 0.0, 0.0, 5.0, 5.0, 0.0 ]\n*/\nfunction assignScalar( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar ymmv;\n\tvar shy;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sy;\n\tvar oy;\n\tvar ns;\n\tvar re;\n\tvar im;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) && isBooleanArray( y.data ) ) {\n\t\tx = boolean2uint8( x );\n\t\ty = boolean2uint8( y );\n\t} else if ( isComplexArray( x.data ) && isComplexArray( y.data ) ) {\n\t\tx = complex2real( x );\n\t\ty = complex2real( y );\n\t\tre = x.data[ x.offset ];\n\t\tim = x.data[ x.offset+1 ];\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast; note: we cannot create a specialized view for assigning only real components, as the imaginary component for each element in `y` also needs to be set to zero and while we could perform two passes, it's not clear it's worth the effort)...\n\telse if ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\ty = complex2real( y );\n\t\tre = x.data[ x.offset ];\n\t\tim = 0.0;\n\t\tisCmplx = true;\n\t}\n\tshy = y.shape;\n\tndims = shy.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ASSIGN[ ndims ]( re, im, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shy[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ASSIGN[ ndims ]( re, im, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shy[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shy[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_ASSIGN[ 1 ]( re, im, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ioy !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\ty.shape = [ len ];\n\t\t\ty.strides = [ ioy ];\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ASSIGN[ 1 ]( re, im, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\tord = strides2order( sy );\n\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_ASSIGN[ ndims ]( re, im, y, ord === 1 );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y, ord === 1 );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_ASSIGN[ ndims-2 ]( re, im, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexassignnd( re, im, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assignScalar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a zero-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a one-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 6 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar S0;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = y.shape[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = v;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign2d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdy0 = sy[ 1 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = v;\n\t\t\tiy += dy0;\n\t\t}\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign3d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdy0 = sy[ 2 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = v;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tiy += dy1;\n\t\t}\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign4d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdy0 = sy[ 3 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tiy += dy2;\n\t\t}\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign5d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdy0 = sy[ 4 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tiy += dy3;\n\t\t}\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign6d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdy0 = sy[ 5 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tiy += dy4;\n\t\t}\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign7d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign7d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdy0 = sy[ 6 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tiy += dy5;\n\t\t}\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an eight-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign8d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign8d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdy0 = sy[ 7 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tiy += dy6;\n\t\t}\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign9d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign9d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdy0 = sy[ 8 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tiy += dy7;\n\t\t}\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign10d( x, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign10d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdy0 = sy[ 9 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tiy += dy8;\n\t\t}\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a zero-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 1 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a one-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 1.0, 2.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar S0;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = y.shape[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output ndarray accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, v );\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign2d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign2d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdy0 = sy[ 1 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, v );\n\t\t\tiy += dy0;\n\t\t}\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign3d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign3d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdy0 = sy[ 2 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, v );\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tiy += dy1;\n\t\t}\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign4d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign4d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdy0 = sy[ 3 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tiy += dy2;\n\t\t}\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign5d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign5d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdy0 = sy[ 4 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tiy += dy3;\n\t\t}\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign6d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign6d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdy0 = sy[ 5 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tiy += dy4;\n\t\t}\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign7d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign7d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdy0 = sy[ 6 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tiy += dy5;\n\t\t}\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of an eight-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign8d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign8d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdy0 = sy[ 7 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tiy += dy6;\n\t\t}\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign9d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign9d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdy0 = sy[ 8 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tiy += dy7;\n\t\t}\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* assign10d( x, y, true );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction assign10d( x, y, isRowMajor ) {\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdy0 = sy[ 9 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the output ndarray accessor:\n\tset = y.accessors[1];\n\n\t// Cache the scalar value:\n\tv = x.accessors[0]( x.data, x.offset );\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tiy += dy8;\n\t\t}\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number zero-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 2 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sy = [ 0 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign0d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0 ]\n*/\nfunction assign0d( re, im, y ) {\n\ty.data[ y.offset ] = re;\n\ty.data[ y.offset+1 ] = im;\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number one-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 6 ];\n*\n* // Define the array strides:\n* var sy = [ 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign1d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign1d( re, im, y ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar S0;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = y.shape[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = re;\n\t\tybuf[ iy+1 ] = im;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number two-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign2d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign2d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdy0 = sy[ 1 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = re;\n\t\t\tybuf[ iy+1 ] = im;\n\t\t\tiy += dy0;\n\t\t}\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number three-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign3d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign3d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdy0 = sy[ 2 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = re;\n\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tiy += dy1;\n\t\t}\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number four-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign4d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign4d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdy0 = sy[ 3 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tiy += dy2;\n\t\t}\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number five-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign5d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign5d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdy0 = sy[ 4 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tiy += dy3;\n\t\t}\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number six-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign6d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign6d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdy0 = sy[ 5 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tiy += dy4;\n\t\t}\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number seven-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign7d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign7d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdy0 = sy[ 6 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tiy += dy5;\n\t\t}\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number eight-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign8d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign8d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdy0 = sy[ 7 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tiy += dy6;\n\t\t}\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number nine-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign9d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign9d( re, im, y, isRowMajor ) {\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdy0 = sy[ 8 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tiy += dy7;\n\t\t}\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number ten-dimensional output ndarray.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* assign10d( 2.0, 2.0, y, true );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction assign10d( re, im, y, isRowMajor ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = y.shape;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdy0 = sy[ 9 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdy0 = sy[ 0 ]; // offset increment for innermost loop\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element in the output ndarray:\n\tiy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tiy += dy8;\n\t\t}\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute the loop offset increment...\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute the loop offset increment...\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign5d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the scalar value:\n\tv = x.data[ x.offset ];\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\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = v;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a two-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute the loop offset increment...\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a three-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute the loop offset increment...\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a four-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a five-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign5d( x, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a six-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a seven-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a nine-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output accessor:\n\tset = y.accessors[ 1 ];\n\n\t// Cache the scalar value:\n\tv = x.accessors[ 0 ]( x.data, x.offset );\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\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a ten-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 2.0, 2.0 ] );\n* var ybuf = new Complex64Array( 6 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': [],\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Assign scalar:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n* // returns [ 2.0, 2.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Cache the output ndarray accessor:\n\tset = y.accessors[1];\n\n\t// Cache the scalar value:\n\tv = x.accessors[0]( x.data, x.offset );\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\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number two-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign2d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign2d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute the loop offset increment...\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number three-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign3d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign3d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute the loop offset increment...\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number four-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign4d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign4d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number five-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign5d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign5d( re, im, y ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number six-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign6d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign6d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number seven-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign7d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign7d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number eight-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign8d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign8d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number nine-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign9d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign9d( re, im, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns a scalar value to every element of a reinterpreted complex number ten-dimensional output ndarray via loop blocking.\n*\n* @private\n* @param {number} re - real component\n* @param {number} im - imaginary component\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var ybuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 2 ];\n*\n* // Define the index offset:\n* var oy = 0;\n*\n* // Create the output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Assign scalar:\n* blockedassign10d( 2.0, 2.0, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]\n*/\nfunction blockedassign10d( re, im, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sy;\n\tvar oy;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, y.strides );\n\tsh = o.sh;\n\tsy = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( y.dtype );\n\n\t// Cache the index of the first indexed element in the output ndarray:\n\toy = y.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block...\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment...\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = re;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy+1 ] = im;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ndarray from '@stdlib/ndarray-base-ctor';\n\n\n// MAIN //\n\n/**\n* Tests if a value is ndarray-like.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating if a value is ndarray-like\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n*\n* var arr = ndarray( 'generic', [ 0, 0, 0, 0 ], [ 2, 2 ], [ 2, 1 ], 0, 'row-major' );\n*\n* var bool = isndarrayLike( arr );\n* // returns true\n*\n* bool = isndarrayLike( [] );\n* // returns false\n*/\nfunction isndarrayLike( v ) {\n\treturn (\n\t\tv instanceof ndarray ||\n\t\t(\n\t\t\tv !== null &&\n\t\t\ttypeof v === 'object' &&\n\t\t\ttypeof v.data === 'object' &&\n\t\t\ttypeof v.shape === 'object' &&\n\t\t\ttypeof v.strides === 'object' &&\n\t\t\ttypeof v.offset === 'number' &&\n\t\t\ttypeof v.order === 'string' &&\n\t\t\ttypeof v.ndims === 'number' &&\n\t\t\tv.dtype &&\n\t\t\ttypeof v.length === 'number' &&\n\t\t\ttypeof v.flags === 'object' &&\n\t\t\ttypeof v.get === 'function' &&\n\t\t\ttypeof v.set === 'function'\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isndarrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar isProtoOf = Object.prototype.isPrototypeOf;\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests if an object's prototype chain contains a provided prototype.\n*\n* @param {*} value - value to test\n* @param {(Object|Function)} proto - prototype\n* @throws {TypeError} second argument must be an object and not null\n* @returns {boolean} boolean indicating if a provided prototype exists in a prototype chain\n*\n* @example\n* import inherit from '@stdlib/utils-inherit';\n*\n* function Foo() {\n* return this;\n* }\n*\n* function Bar() {\n* return this;\n* }\n* inherit( Bar, Foo );\n*\n* var bar = new Bar();\n*\n* var bool = isPrototypeOf( bar, Foo.prototype );\n* // returns true\n*/\nfunction isPrototypeOf( value, proto ) { // eslint-disable-line stdlib/no-redeclare\n\tvar type = typeof proto;\n\tif (\n\t\tproto === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either an object (except null) or a function. Value: `%s`.', proto ) );\n\t}\n\ttype = typeof value;\n\tif (\n\t\tvalue === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\treturn false;\n\t}\n\treturn isProtoOf.call( proto, value );\n}\n\n\n// EXPORTS //\n\nexport default isPrototypeOf;\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\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport Uint8Array from '@stdlib/array-uint8';\nimport { ndarray as gcopy } from '@stdlib/blas-base-gcopy';\n\n\n// MAIN //\n\n/**\n* Fills an output ArrayBuffer with array values.\n*\n* @private\n* @param {Function} Struct - struct constructor\n* @param {ArrayBuffer} buf - output data buffer\n* @param {Collection} arr - input array\n* @throws {TypeError} an input array must contain struct instances\n* @throws {TypeError} each element of an input array must be a struct instance having the expected layout\n* @returns {ArrayBuffer} output data buffer\n*/\nfunction fromArray( Struct, buf, arr ) {\n\tvar sbytes;\n\tvar bbytes;\n\tvar offset;\n\tvar layout;\n\tvar sview;\n\tvar opts;\n\tvar len;\n\tvar get;\n\tvar flg;\n\tvar nb;\n\tvar v;\n\tvar i;\n\n\topts = {\n\t\t'format': 'layout'\n\t};\n\n\tlen = arr.length;\n\tif ( arr.get && arr.set ) {\n\t\tget = accessorGetter( 'default' );\n\t} else {\n\t\tget = getter( 'default' );\n\t}\n\tlayout = Struct.layout;\n\tnb = Struct.byteLength;\n\n\t// FIXME: add optimization for when `buf` is a StructArray having the same layout, as can just copy bytes\n\n\tbbytes = new Uint8Array( buf );\n\toffset = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = get( arr, i );\n\t\ttry {\n\t\t\tsview = Struct.viewOf( v ); // note: this should throw if `v` is not a struct\n\t\t\tflg = true;\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\ttry {\n\t\t\t\t// Attempt to convert the input value to a struct instance:\n\t\t\t\tv = new Struct( v ); // note: this should throw if `v` is not an object with valid fields\n\t\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tsview = Struct.viewOf( v );\n\t\t\tflg = false;\n\t\t}\n\t\tif ( flg && v.toString( opts ) !== layout ) {\n\t\t\treturn null;\n\t\t}\n\t\tsbytes = new Uint8Array( sview.buffer, sview.byteOffset, sview.byteLength ); // eslint-disable-line max-len\n\t\tgcopy( nb, sbytes, 1, 0, bbytes, 1, offset );\n\t\toffset += nb;\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nexport default fromArray;\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 no-restricted-syntax, no-invalid-this, max-len, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isArrayBuffer from '@stdlib/assert-is-arraybuffer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isFunction from '@stdlib/assert-is-function';\nimport isObject from '@stdlib/assert-is-object';\nimport isPrototypeOf from '@stdlib/assert-is-prototype-of'; // eslint-disable-line stdlib/no-redeclare\nimport hasIteratorSymbolSupport from '@stdlib/assert-has-iterator-symbol-support';\nimport hasProp from '@stdlib/assert-has-property';\nimport contains from '@stdlib/array-base-assert-contains';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport ITERATOR_SYMBOL from '@stdlib/symbol-iterator';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport Uint8Array from '@stdlib/array-uint8';\nimport getter from '@stdlib/array-base-getter';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport { ndarray as gcopy } from '@stdlib/blas-base-gcopy';\nimport structFactory from '@stdlib/dstructs-struct';\nimport format from '@stdlib/string-format';\nimport fromArray from './from_array.js';\nimport fromIterator from './from_iterator.js';\n\n\n// VARIABLES //\n\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\nvar CTOR_NAME = 'StructArray';\n\n\n// MAIN //\n\n/**\n* Returns a constructor for creating arrays having a fixed-width composite data type.\n*\n* @param {(Function|Array)} arg - struct constructor or struct schema\n* @throws {TypeError} first argument must be either a struct constructor or struct schema\n* @returns {Function} constructor\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import structFactory from '@stdlib/dstructs-struct';\n*\n* var schema1 = [\n* {\n* 'name': 're',\n* 'type': 'float64'\n* },\n* {\n* 'name': 'im',\n* 'type': 'float64'\n* }\n* ];\n*\n* // Create a struct constructor for storing real and imaginary components:\n* var Components = structFactory( schema1 );\n*\n* var schema2 = [\n* {\n* 'type': 'union',\n* 'fields': [\n* {\n* 'name': 'value',\n* 'type': 'complex128'\n* },\n* {\n* 'name': 'components',\n* 'type': Components\n* }\n* ]\n* }\n* ];\n*\n* // Create a struct constructor for storing a double-precision complex number:\n* var Complex128Struct = structFactory( schema2 );\n*\n* // Create an array constructor for storing complex numbers:\n* var Complex128Array = factory( Complex128Struct );\n*\n* // Create a new array:\n* var x = new Complex128Array( 10 );\n* // returns \n*\n* // Retrieve the first element:\n* var v1 = x.get( 0 );\n*\n* // Resolve the complex number stored within the first element:\n* var z1 = v1.value;\n* // returns [ 0.0, 0.0 ]\n*\n* // Resolve the individual real and imaginary components:\n* var z2 = v1.components;\n*\n* var re = z2.re;\n* // returns 0.0\n*\n* var im = z2.im;\n* // returns 0.0\n*\n* // Create a new complex number struct:\n* var z3 = new Complex128Struct({\n* 'value': new Complex128( 3.0, 5.0 )\n* });\n*\n* // Update the first element of the array:\n* x.set( z3, 0 );\n*\n* // As `v1` is a view on same memory as the first element, resolve the complex number stored within the element:\n* var z4 = v1.value;\n* // returns [ 3.0, 5.0 ]\n*/\nfunction factory( arg ) { // eslint-disable-line stdlib/jsdoc-require-throws-tags\n\tvar BYTES_PER_ELEMENT;\n\tvar LAYOUT;\n\tvar FIELDS;\n\tvar Struct;\n\n\t// FIXME: add option support for strict input object validation (e.g., throw whenever non-struct properties are included on an object passed to `set`)\n\n\tif ( isCollection( arg ) ) {\n\t\tStruct = structFactory( arg ); // NOTE: delegate to `structFactory` to perform input validation\n\t} else if ( isStructConstructorLike( arg ) ) {\n\t\tStruct = arg;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a struct constructor or struct schema. Value: `%s`.', arg ) );\n\t}\n\tBYTES_PER_ELEMENT = Struct.byteLength;\n\tLAYOUT = Struct.layout; // TODO: consider whether to lazily materialize the struct layout, as this could potentially be a long string (hence increased memory consumption) depending on the complexity of the struct\n\tFIELDS = Struct.fields;\n\n\t/**\n\t* Constructor which returns an array having a fixed-width composite data type.\n\t*\n\t* @private\n\t* @constructor\n\t* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n\t* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n\t* @param {NonNegativeInteger} [length] - view length\n\t* @throws {TypeError} must provide a valid first argument\n\t* @throws {TypeError} second argument must be a nonnegative integer\n\t* @throws {TypeError} third argument must be a nonnegative integer\n\t* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n\t* @throws {RangeError} second argument must be a multiple of struct byte length\n\t* @throws {RangeError} second argument must not exceeds the ArrayBuffer bounds\n\t* @throws {TypeError} view length must be a positive multiple of struct byte length\n\t* @throws {TypeError} an input array must contain valid elements\n\t* @returns {StructArray} struct array instance\n\t*/\n\tfunction StructArray( arg, byteOffset, length ) {\n\t\tvar nargs;\n\t\tvar buf;\n\t\tvar len;\n\t\tvar tmp;\n\n\t\tnargs = arguments.length;\n\t\tif ( !( this instanceof StructArray) ) {\n\t\t\tif ( nargs === 0 ) {\n\t\t\t\treturn new StructArray();\n\t\t\t}\n\t\t\tif ( nargs === 1 ) {\n\t\t\t\treturn new StructArray( arg );\n\t\t\t}\n\t\t\tif ( nargs === 2 ) {\n\t\t\t\treturn new StructArray( arg, byteOffset );\n\t\t\t}\n\t\t\treturn new StructArray( arg, byteOffset, length );\n\t\t}\n\n\t\t// Case: new StructArray()\n\t\tif ( nargs === 0 ) {\n\t\t\tbuf = new ArrayBuffer( 0 );\n\t\t\tlen = 0;\n\t\t}\n\t\t// Case: new StructArray( arg )\n\t\telse if ( nargs === 1 ) {\n\t\t\t// Case: new StructArray( length )\n\t\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\t\tbuf = new ArrayBuffer( arg*BYTES_PER_ELEMENT );\n\t\t\t\tlen = arg;\n\t\t\t}\n\t\t\t// Case: new StructArray( collection )\n\t\t\telse if ( isCollection( arg ) ) {\n\t\t\t\tlen = arg.length;\n\t\t\t\tbuf = fromArray( Struct, new ArrayBuffer( len*BYTES_PER_ELEMENT ), arg );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Each element of a provided input array must be a valid object or a struct instance having the same layout as elements in the desired output array.' ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( ArrayBuffer )\n\t\t\telse if ( isArrayBuffer( arg ) ) {\n\t\t\t\tbuf = arg;\n\t\t\t\tlen = buf.byteLength / BYTES_PER_ELEMENT;\n\t\t\t\tif ( !isInteger( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( iterable )\n\t\t\telse if ( isObject( arg ) ) {\n\t\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. First argument must be a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\ttmp = fromIterator( buf );\n\t\t\t\tlen = tmp.length;\n\t\t\t\tbuf = fromArray( Struct, new ArrayBuffer( len*BYTES_PER_ELEMENT ), tmp );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Each element of a provided input iterable must be either a valid object or a struct instance having the same layout as elements in the desired output array.' ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( ???? )\n\t\t\telse {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t}\n\t\t// Case: new StructArray( ArrayBuffer, byteOffset[, length] )\n\t\telse {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t\t}\n\t\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Second argument must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t\t}\n\t\t\tif ( byteOffset >= buf.byteLength ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Second argument exceeds the bounds of the ArrayBuffer. Value: `%s`.', byteOffset ) );\n\t\t\t}\n\t\t\t// Case: new StructArray( ArrayBuffer, byteOffset )\n\t\t\tif ( nargs === 2 ) {\n\t\t\t\tlen = ( buf.byteLength - byteOffset ) / BYTES_PER_ELEMENT;\n\t\t\t\tif ( !isInteger( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength-byteOffset ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Case: new StructArray( ArrayBuffer, byteOffset, length )\n\t\t\telse {\n\t\t\t\tlen = length;\n\t\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t\t}\n\t\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsetReadOnly( this, '_buffer', buf );\n\t\tsetReadOnly( this, '_byteOffset', byteOffset || 0 );\n\t\tsetReadOnly( this, '_byteLength', len*BYTES_PER_ELEMENT );\n\t\tsetReadOnly( this, '_length', len );\n\t\treturn this;\n\t}\n\n\t/**\n\t* Size (in bytes) of each array element.\n\t*\n\t* @private\n\t* @name BYTES_PER_ELEMENT\n\t* @memberof StructArray\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( StructArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n\t/**\n\t* Constructor name.\n\t*\n\t* @private\n\t* @name name\n\t* @memberof StructArray\n\t* @readonly\n\t* @type {string}\n\t*/\n\tsetReadOnly( StructArray, 'name', CTOR_NAME );\n\n\t/**\n\t* Element constructor.\n\t*\n\t* @private\n\t* @name struct\n\t* @memberof StructArray\n\t* @readonly\n\t* @type {Function}\n\t*/\n\tsetReadOnly( StructArray, 'struct', Struct );\n\n\t/**\n\t* Pointer to the underlying data buffer.\n\t*\n\t* @private\n\t* @name buffer\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {ArrayBuffer}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'buffer', function get() {\n\t\treturn this._buffer;\n\t});\n\n\t/**\n\t* Size (in bytes) of the array.\n\t*\n\t* @private\n\t* @name byteLength\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {NonNegativeInteger}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'byteLength', function get() {\n\t\treturn this._byteLength;\n\t});\n\n\t/**\n\t* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n\t*\n\t* @private\n\t* @name byteOffset\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {NonNegativeInteger}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'byteOffset', function get() {\n\t\treturn this._byteOffset;\n\t});\n\n\t/**\n\t* Size (in bytes) of each array element.\n\t*\n\t* @private\n\t* @name BYTES_PER_ELEMENT\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {PositiveInteger}\n\t*/\n\tsetReadOnly( StructArray.prototype, 'BYTES_PER_ELEMENT', StructArray.BYTES_PER_ELEMENT );\n\n\t/**\n\t* Returns an array element.\n\t*\n\t* @private\n\t* @name get\n\t* @memberof StructArray.prototype\n\t* @type {Function}\n\t* @param {NonNegativeInteger} idx - element index\n\t* @throws {TypeError} `this` must be a struct array instance\n\t* @throws {TypeError} must provide a nonnegative integer\n\t* @returns {(*|void)} array element\n\t*/\n\tsetReadOnly( StructArray.prototype, 'get', function get( idx ) {\n\t\tif ( !isStructArray( this ) ) {\n\t\t\tthrow new TypeError( format( 'invalid invocation. `this` is not a %s.', CTOR_NAME ) );\n\t\t}\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tif ( idx >= this._length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn new Struct( this._buffer, this._byteOffset+( idx*BYTES_PER_ELEMENT ), BYTES_PER_ELEMENT );\n\t});\n\n\t/**\n\t* Number of array elements.\n\t*\n\t* @private\n\t* @name length\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {NonNegativeInteger}\n\t*/\n\tsetReadOnlyAccessor( StructArray.prototype, 'length', function get() {\n\t\treturn this._length;\n\t});\n\n\t/**\n\t* Sets an array element.\n\t*\n\t* ## Notes\n\t*\n\t* - When provided a struct array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n\t*\n\t* ```text\n\t* buf: ---------------------\n\t* src: ---------------------\n\t* ```\n\t*\n\t* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n\t*\n\t* In the other overlapping scenario,\n\t*\n\t* ```text\n\t* buf: ---------------------\n\t* src: ---------------------\n\t* ```\n\t*\n\t* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n\t*\n\t* @private\n\t* @name set\n\t* @memberof StructArray.prototype\n\t* @type {Function}\n\t* @param {(Collection|StructArray|Struct|Object)} value - value(s)\n\t* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n\t* @throws {TypeError} `this` must be a struct array instance\n\t* @throws {TypeError} index argument must be a nonnegative integer\n\t* @throws {RangeError} index argument is out-of-bounds\n\t* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n\t* @throws {TypeError} must provide a valid object or a struct instance having the same layout as elements in the target array\n\t* @returns {void}\n\t*/\n\tsetReadOnly( StructArray.prototype, 'set', function set( value ) {\n\t\tvar bbytes;\n\t\tvar sbytes;\n\t\tvar sbuf;\n\t\tvar opts;\n\t\tvar idx;\n\t\tvar buf;\n\t\tvar tmp;\n\t\tvar get;\n\t\tvar nb;\n\t\tvar N;\n\t\tvar s;\n\t\tvar f;\n\t\tvar i;\n\t\tvar j;\n\t\tif ( !isStructArray( this ) ) {\n\t\t\tthrow new TypeError( format( 'invalid invocation. `this` is not a %s.', CTOR_NAME ) );\n\t\t}\n\t\tbuf = this._buffer;\n\t\tif ( arguments.length > 1 ) {\n\t\t\tidx = arguments[ 1 ];\n\t\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t\t}\n\t\t} else {\n\t\t\tidx = 0;\n\t\t}\n\t\topts = {\n\t\t\t'format': 'layout'\n\t\t};\n\t\tnb = Struct.byteLength;\n\n\t\tif ( isCollection( value ) && !contains( FIELDS, 'length' ) ) { // note: when one of the fields is 'length', we always assume that a provided value with a 'length' property is a struct and/or data object as there doesn't seem to be a surefire way to distinguish such an object from a regular array-like object (including accessor arrays)\n\t\t\tN = value.length;\n\t\t\tif ( idx+N > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\t\t\tif ( sbuf.get && sbuf.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Check for overlapping memory...\n\t\t\tj = this._byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// FIXME: add optimization when `value` is a StructArray sharing the same buffer and having the same layout; in which case, we can simply copy `src` bytes to a temporary array and then copy those bytes into the target array, without needing to intermediate struct instance materialization\n\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = [];\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp.push( get( value, i ) );\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\t\tthis.set( get( sbuf, i ), idx ); // note: this likely isn't the most performant approach, but it avoids having to replicate branching logic for handling struct instances vs data objects\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tif ( !isObject( value ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide either a valid object or a struct instance. Value: `%s`.', value ) );\n\t\t}\n\t\t// Check for a struct instance having a matching layout...\n\t\tif ( value.toString( opts ) === LAYOUT ) {\n\t\t\t// Explicitly copy the bytes of the input struct instance to the corresponding array element...\n\t\t\tsbuf = Struct.viewOf( value );\n\t\t\tsbytes = new Uint8Array( sbuf.buffer, sbuf.byteOffset, nb );\n\t\t\tbbytes = new Uint8Array( buf, this._byteOffset+( idx*BYTES_PER_ELEMENT ), nb );\n\t\t\tgcopy( nb, sbytes, 1, 0, bbytes, 1, 0 );\n\t\t\treturn;\n\t\t}\n\t\t// Create a struct instance view for the target element:\n\t\ts = new Struct( buf, this._byteOffset+( idx*BYTES_PER_ELEMENT ), nb );\n\n\t\t// Assign field values from the input object (accounting for both own and inherited properties)...\n\t\tfor ( i = 0; i < FIELDS.length; i++ ) {\n\t\t\tf = FIELDS[ i ];\n\t\t\tif ( hasProp( value, f ) ) {\n\t\t\t\ts[ f ] = value[ f ];\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t* Element constructor.\n\t*\n\t* @private\n\t* @name struct\n\t* @memberof StructArray.prototype\n\t* @readonly\n\t* @type {Function}\n\t*/\n\tsetReadOnly( StructArray.prototype, 'struct', Struct );\n\n\treturn StructArray;\n\n\t/**\n\t* Returns a boolean indicating if a value is a struct array.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating if a value is a struct array\n\t*/\n\tfunction isStructArray( value ) {\n\t\treturn (\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === CTOR_NAME ||\n\t\t\t\tisPrototypeOf( value, StructArray.prototype )\n\t\t\t) &&\n\t\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t\t);\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( v.value );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default fromIterator;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar main = ( typeof Buffer === 'function' ) ? Buffer : null; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = require( 'buffer' ).Buffer;\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Buffer constructor.\n*\n* @module @stdlib/buffer-ctor\n*\n* @example\n* import ctor from '@stdlib/buffer-ctor';\n*\n* var b = new ctor( [ 1, 2, 3, 4 ] );\n* // returns \n*/\n\n// MODULES //\n\nimport hasNodeBufferSupport from '@stdlib/assert-has-node-buffer-support';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar ctor;\nif ( hasNodeBufferSupport() ) {\n\tctor = main;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default ctor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isBuffer from '@stdlib/assert-is-buffer';\nimport GlobalBuffer from './buffer.js';\n\n\n// MAIN //\n\n/**\n* Tests for native `Buffer` support.\n*\n* @returns {boolean} boolean indicating if an environment has `Buffer` support\n*\n* @example\n* var bool = hasNodeBufferSupport();\n* // returns \n*/\nfunction hasNodeBufferSupport() {\n\tvar bool;\n\tvar b;\n\n\tif ( typeof GlobalBuffer !== 'function' ) {\n\t\treturn false;\n\t}\n\t// Test basic support...\n\ttry {\n\t\tif ( typeof GlobalBuffer.from === 'function' ) {\n\t\t\tb = GlobalBuffer.from( [ 1, 2, 3, 4 ] );\n\t\t} else {\n\t\t\tb = new GlobalBuffer( [ 1, 2, 3, 4 ] ); // Note: this is deprecated behavior starting in Node v6 (see https://nodejs.org/api/buffer.html#buffer_new_buffer_array)\n\t\t}\n\t\tbool = (\n\t\t\tisBuffer( b ) &&\n\t\t\tb[ 0 ] === 1 &&\n\t\t\tb[ 1 ] === 2 &&\n\t\t\tb[ 2 ] === 3 &&\n\t\t\tb[ 3 ] === 4\n\t\t);\n\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\tbool = false;\n\t}\n\treturn bool;\n}\n\n\n// EXPORTS //\n\nexport default hasNodeBufferSupport;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write (browser) polyfill\n\n// MAIN //\n\n/**\n* Buffer constructor.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nexport default polyfill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Buffer from '@stdlib/buffer-ctor';\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Int16Array from '@stdlib/array-int16';\nimport Int32Array from '@stdlib/array-int32';\nimport Int8Array from '@stdlib/array-int8';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// FUNCTIONS //\n\n/**\n* Throws an error.\n*\n* @private\n* @throws {Error} not implemented\n*/\nfunction notImplemented() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// MAIN //\n\n// Mapping from data types to underlying buffer constructors...\nvar ctors = { // eslint-disable-line vars-on-top\n\t'binary': Buffer,\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'float16': notImplemented, // FIXME: replace with Float16Array constructor once implemented\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex32': notImplemented, // FIXME: replace with Complex32Array constructor once implemented\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport structFactory from '@stdlib/array-struct-factory';\nimport table from './ctors.js';\n\n\n// VARIABLES //\n\n// Initialize a cache to storing memoized struct array constructors:\nvar CACHE = {}; // TODO: consider adding/using `@stdlib/array/memoized-struct-factory`; should we need to memoize struct array constructors elsewhere, we should centralize that logic, rather than have multiple caches.\n\n\n// MAIN //\n\n/**\n* Returns an ndarray data buffer constructor.\n*\n* @param {*} dtype - data type\n* @returns {(Function|null)} data buffer constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\tvar struct;\n\tvar ctor;\n\tvar key;\n\n\t// Case: string || dtype_instance_with_string\n\tif ( !isFunction( dtype ) ) {\n\t\tkey = resolveStr( dtype );\n\t\tctor = table[ key ] || null;\n\t\tif ( ctor ) {\n\t\t\treturn ctor;\n\t\t}\n\t}\n\t// Case: struct_ctor || dtype_instance_with_struct_ctor\n\tif ( isStructDataType( dtype ) ) {\n\t\tif ( key ) {\n\t\t\t// Data type instance (note: we assume that `key === struct.layout`):\n\t\t\tstruct = dtype.value;\n\t\t} else {\n\t\t\t// Struct constructor:\n\t\t\tstruct = dtype;\n\t\t\tkey = struct.layout;\n\t\t}\n\t\tctor = CACHE[ key ];\n\t\tif ( ctor ) {\n\t\t\treturn ctor;\n\t\t}\n\t\tctor = structFactory( struct );\n\t\tCACHE[ key ] = ctor;\n\t\treturn ctor;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Allocate a buffer having a specified number of bytes.\n*\n* @module @stdlib/buffer-alloc-unsafe\n*\n* @example\n* import allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n*\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\n\n// MODULES //\n\nimport hasAllocUnsafe from './has_alloc_unsafe.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar allocUnsafe;\nif ( hasAllocUnsafe ) {\n\tallocUnsafe = main;\n} else {\n\tallocUnsafe = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport Buffer from '@stdlib/buffer-ctor';\n\n\n// MAIN //\n\nvar bool = isFunction( Buffer.allocUnsafe );\n\n\n// EXPORTS //\n\nexport default bool;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\nimport format from '@stdlib/string-format';\nimport Buffer from '@stdlib/buffer-ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn Buffer.allocUnsafe( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\nimport format from '@stdlib/string-format';\nimport Buffer from '@stdlib/buffer-ctor';\n\n\n// MAIN //\n\n/**\n* Allocates a buffer having a specified number of bytes.\n*\n* ## Notes\n*\n* - The underlying memory of returned `Buffer` instances is not initialized. Memory contents are unknown and may contain sensitive data.\n* - When the size is less than half the pool size (specified on the `Buffer` constructor), memory is allocated from the `Buffer` pool for faster allocation of new `Buffer` instances.\n*\n* @param {NonNegativeInteger} size - number of bytes to allocate\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {Buffer} new `Buffer` instance\n*\n* @example\n* var buf = allocUnsafe( 10 );\n* // returns \n*/\nfunction allocUnsafe( size ) {\n\tif ( !isNonNegativeInteger( size ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', size ) );\n\t}\n\treturn new Buffer( size );\n}\n\n\n// EXPORTS //\n\nexport default allocUnsafe;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport bufferCtors from '@stdlib/ndarray-base-buffer-ctors';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\nimport zeros from '@stdlib/array-base-zeros';\nimport fill from '@stdlib/array-base-fill';\n\n\n// FUNCTIONS //\n\n/**\n* Returns a zero-filled binary buffer.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Buffer} zero-filled binary buffer\n*/\nfunction binary( size ) {\n\treturn fill( allocUnsafe( size ), 0, 0, size );\n}\n\n/**\n* Returns a typed array.\n*\n* @private\n* @param {*} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(TypedArray|null)} typed array\n*/\nfunction typedarray( dtype, size ) {\n\tvar ctor = bufferCtors( dtype );\n\tif ( ctor ) {\n\t\treturn new ctor( size );\n\t}\n\treturn null;\n}\n\n\n// MAIN //\n\n/**\n* Returns a contiguous linear ndarray data buffer.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(Array|TypedArray|Buffer|null)} data buffer\n*\n* @example\n* var buf = buffer( 'float64', 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction buffer( dtype, size ) {\n\tvar dt = resolveStr( dtype );\n\tif ( dt === 'generic' ) {\n\t\treturn zeros( size );\n\t}\n\tif ( dt === 'binary' ) {\n\t\treturn binary( size );\n\t}\n\treturn typedarray( dtype, size );\n}\n\n\n// EXPORTS //\n\nexport default buffer;\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\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'fill' );\n* // e.g., returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Fills all elements within a portion of an indexed array with a specified value.\n*\n* @private\n* @param {Collection} x - input array\n* @param {*} value - fill value\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = indexed( x, 5, 1, 3 );\n* // returns [ 1, 5, 5, 4 ]\n*/\nfunction indexed( x, value, start, end ) {\n\tvar i;\n\tfor ( i = start; i < end; i++ ) {\n\t\tx[ i ] = value;\n\t}\n\treturn x;\n}\n\n/**\n* Fills all elements within a portion of an accessor array with a specified value.\n*\n* @private\n* @param {Object} x - input array object\n* @param {*} value - fill value\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {AccessorArray} modified input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n* var obj = arraylike2object( x );\n*\n* var out = accessors( obj, 5, 1, 3 );\n* // returns \n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* v = x.get( 1 );\n* // returns 5\n*\n* v = x.get( 2 );\n* // returns 5\n*\n* v = x.get( 3 );\n* // returns 4\n*/\nfunction accessors( x, value, start, end ) {\n\tvar data;\n\tvar set;\n\tvar i;\n\n\tdata = x.data;\n\tset = x.accessors[ 1 ];\n\tfor ( i = start; i < end; i++ ) {\n\t\tset( data, i, value );\n\t}\n\treturn data;\n}\n\n\n// MAIN //\n\n/**\n* Fills all elements within a portion of an array with a specified value.\n*\n* @param {Collection} x - input array\n* @param {*} value - fill value\n* @param {integer} start - starting index (inclusive)\n* @param {integer} end - ending index (exclusive)\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = fill( x, 5, 1, 3 );\n* // returns [ 1, 5, 5, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* import Int32Array from '@stdlib/array-int32';\n*\n* var x = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var out = fill( x, 5, 1, 3 );\n* // returns [ 1, 5, 5, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fill( x, value, start, end ) {\n\tvar obj;\n\tif ( hasMethod( x, 'fill' ) ) {\n\t\treturn x.fill( value, start, end );\n\t}\n\tif ( start < 0 ) {\n\t\tstart += x.length;\n\t\tif ( start < 0 ) {\n\t\t\tstart = 0;\n\t\t}\n\t}\n\tif ( end < 0 ) {\n\t\tend += x.length; // if `end` is still negative, that is fine, as `x` will be returned un-mutated\n\t} else if ( end > x.length ) {\n\t\tend = x.length;\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj, value, start, end );\n\t}\n\treturn indexed( x, value, start, end );\n}\n\n\n// EXPORTS //\n\nexport default fill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport zeros from '@stdlib/array-base-zeros';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts a scalar value to an ndarray having a specified shape.\n*\n* @param {*} value - scalar value\n* @param {*} dtype - output array data type\n* @param {NonNegativeIntegerArray} shape - output array shape\n* @param {string} order - memory layout (either row-major or column-major)\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = broadcastScalar( 1.0, 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = getShape( x );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( x ) );\n* // returns 'float64'\n*\n* var v = x.get( 0, 1 );\n* // returns 1.0\n*/\nfunction broadcastScalar( value, dtype, shape, order ) {\n\tvar buf;\n\tvar set;\n\tvar N;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tdtype = resolveStr( dtype );\n\tif ( isComplexDataType( dtype ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dtype );\n\t} else {\n\t\tset = setter( dtype );\n\t}\n\tset( buf, 0, value );\n\tN = shape.length || 1;\n\treturn new ndarray( dtype, buf, shape, zeros( N ), 0, order );\n}\n\n\n// EXPORTS //\n\nexport default broadcastScalar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\n\n\n// MAIN //\n\n/**\n* Returns the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar n = x.ndims; // Note: intentionally cache in case `ndims` is lazily resolved via accessor\n\tif ( isNumber( n ) ) {\n\t\treturn n;\n\t}\n\treturn x.shape.length;\n}\n\n\n// EXPORTS //\n\nexport default ndims;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns default ndarray settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32',\n\t\t\t'boolean': 'bool',\n\t\t\t'index': 'int32',\n\t\t\t'integer_index': 'int32',\n\t\t\t'boolean_index': 'bool',\n\t\t\t'mask_index': 'uint8'\n\t\t},\n\n\t\t// Memory layout:\n\t\t'order': 'row-major',\n\n\t\t// Casting mode:\n\t\t'casting': 'safe',\n\n\t\t// Index mode:\n\t\t'index_mode': 'throw'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default defaults;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defaults from './main.js';\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'dtypes.boolean': DEFAULTS.dtypes.boolean,\n\t'dtypes.index': DEFAULTS.dtypes.index,\n\t'dtypes.integer_index': DEFAULTS.dtypes.integer_index,\n\t'dtypes.boolean_index': DEFAULTS.dtypes.boolean_index,\n\t'dtypes.mask_index': DEFAULTS.dtypes.mask_index,\n\t'order': DEFAULTS.order,\n\t'casting': DEFAULTS.casting,\n\t'index_mode': DEFAULTS.index_mode\n};\n\n\n// MAIN //\n\n/**\n* Returns a default ndarray setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport filled from '@stdlib/array-base-filled';\n\n\n// MAIN //\n\n/**\n* Returns a \"generic\" array filled with ones.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = ones( 3 );\n* // returns [ 1.0, 1.0, 1.0 ]\n*/\nfunction ones( len ) {\n\treturn filled( 1.0, len );\n}\n\n\n// EXPORTS //\n\nexport default ones;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return default ndarray settings.\n*\n* @module @stdlib/ndarray-defaults\n*\n* @example\n* import defaults from '@stdlib/ndarray-defaults';\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport get from './get.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport complexDataType from '@stdlib/complex-dtype';\nimport broadcastScalar from '@stdlib/ndarray-base-broadcast-scalar';\nimport dims from '@stdlib/ndarray-base-ndims';\nimport defaults from '@stdlib/ndarray-defaults';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport ones from '@stdlib/array-base-ones';\n\n\n// VARIABLES //\n\nvar DEFAULT_REAL = defaults.get( 'dtypes.real_floating_point' );\nvar DEFAULT_CMPLX = defaults.get( 'dtypes.complex_floating_point' );\nvar DEFAULT_BOOL = defaults.get( 'dtypes.boolean' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least a specified number of dimensions.\n*\n* @param {NonNegativeInteger} ndims - minimum number of dimensions\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = array( [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ] );\n* // returns [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ]\n*\n* var out = atleastnd( 3, [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleastnd( ndims, arrays ) {\n\tvar strides;\n\tvar shape;\n\tvar out;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\tvar v;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tout = [];\n\tfor ( i = 0; i < arrays.length; i++ ) {\n\t\tv = arrays[ i ];\n\t\tif ( isndarrayLike( v ) ) {\n\t\t\tN = dims( v );\n\t\t\tif ( N >= ndims ) {\n\t\t\t\tout.push( v );\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tsh = getShape( v, false );\n\t\t\tst = getStrides( v, false );\n\n\t\t\tshape = [];\n\t\t\tstrides = [];\n\n\t\t\t// Prepend singleton dimensions...\n\t\t\tfor ( j = 0; j < ndims-N; j++ ) {\n\t\t\t\tshape.push( 1 );\n\t\t\t\tstrides.push( st[ 0 ] );\n\t\t\t}\n\t\t\t// Copy remaining dimensions...\n\t\t\tfor ( j = 0; j < sh.length; j++ ) {\n\t\t\t\tshape.push( sh[ j ] );\n\t\t\t\tstrides.push( st[ j ] );\n\t\t\t}\n\t\t\tout.push( new ndarray( getDType( v ), getData( v ), shape, strides, getOffset( v ), getOrder( v ) ) ); // eslint-disable-line max-len\n\t\t\tcontinue;\n\t\t}\n\t\t// For scalar values, resolve a corresponding ndarray data type...\n\t\tif ( isNumber( v ) ) { // TODO: consider abstracting this logic to an `ndarray/base/scalar-dtype` (???) package, as this logic is found elsewhere (e.g., `ndarray/from-scalar`) and it would be good to avoid duplication, especially as we add support for more ndarray data types\n\t\t\tdt = DEFAULT_REAL;\n\t\t} else if ( isBoolean( v ) ) {\n\t\t\tdt = DEFAULT_BOOL;\n\t\t} else if ( isComplexLike( v ) ) {\n\t\t\tdt = complexDataType( v );\n\t\t\tif ( dt === null ) {\n\t\t\t\tdt = DEFAULT_CMPLX;\n\t\t\t}\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t}\n\t\tout.push( broadcastScalar( v, dt, ones( ndims ), ORDER ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default atleastnd;\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\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\nimport hasProp from '@stdlib/assert-has-property';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether at least one element in a provided indexed array has a specified property key-value pair, either own or inherited.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {(string|symbol|number)} prop - property\n* @param {*} value - property value\n* @returns {boolean} result\n*\n* @example\n* var o1 = {\n* 'a': 1\n* };\n* var o2 = {\n* 'b': 2\n* };\n* var o3 = {\n* 'c': 3\n* };\n*\n* var bool = indexed( [ o1, o2, o3 ], 'b', 2 );\n* // returns true\n*\n* bool = indexed( [ o1, o2, o3 ], 'b', 3 );\n* // returns false\n*\n* bool = indexed( [ o1, o2, o3 ], 'd', 0 );\n* // returns false\n*/\nfunction indexed( arr, prop, value ) {\n\tvar v;\n\tvar i;\n\tif ( value === void 0 ) {\n\t\tfor ( i = 0; i < arr.length; i++ ) {\n\t\t\tv = arr[ i ];\n\t\t\tif ( hasProp( v, prop ) && v[ prop ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( arr[ i ][ prop ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n* Tests whether at least one element in a provided accessor array has a specified property key-value pair, either own or inherited.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {(string|symbol|number)} prop - property\n* @param {*} value - property value\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n*\n* var o1 = {\n* 'a': 1\n* };\n* var o2 = {\n* 'b': 2\n* };\n* var o3 = {\n* 'c': 3\n* };\n*\n* var bool = accessors( toAccessorArray( [ o1, o2, o3 ] ), 'b', 2 );\n* // returns true\n*\n* bool = accessors( toAccessorArray( [ o1, o2, o3 ] ), 'b', 3 );\n* // returns false\n*\n* bool = accessors( toAccessorArray( [ o1, o2, o3 ] ), 'd', 0 );\n* // returns false\n*/\nfunction accessors( arr, prop, value ) {\n\tvar get;\n\tvar v;\n\tvar i;\n\n\tget = resolveGetter( arr );\n\tif ( value === void 0 ) {\n\t\tfor ( i = 0; i < arr.length; i++ ) {\n\t\t\tv = get( arr, i );\n\t\t\tif ( hasProp( v, prop ) && v[ prop ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tif ( get( arr, i )[ prop ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether at least one element in a provided array has a specified property key-value pair, either own or inherited.\n*\n* @param {Collection} arr - input array\n* @param {(string|symbol|number)} prop - property\n* @param {*} value - property value\n* @returns {boolean} result\n*\n* @example\n* var o1 = {\n* 'a': 1\n* };\n* var o2 = {\n* 'b': 2\n* };\n* var o3 = {\n* 'c': 3\n* };\n*\n* var bool = anyIsEntryIn( [ o1, o2, o3 ], 'b', 2 );\n* // returns true\n*\n* bool = anyIsEntryIn( [ o1, o2, o3 ], 'b', 3 );\n* // returns false\n*\n* bool = anyIsEntryIn( [ o1, o2, o3 ], 'd', 0 );\n* // returns false\n*/\nfunction anyIsEntryIn( arr, prop, value ) {\n\tif ( isAccessorArray( arr ) ) {\n\t\treturn accessors( arr, prop, value );\n\t}\n\treturn indexed( arr, prop, value );\n}\n\n\n// EXPORTS //\n\nexport default anyIsEntryIn;\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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned array has the following elements:\n*\n* ```text\n* [ , ... ]\n* ```\n*\n* where\n*\n* - **shape**: dimensions sorted in loop order.\n* - **...strides**: strides for each respective ndarray sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} shape - array dimensions\n* @param {ArrayLikeObject>} strides - list of stride arrays containing the stride lengths for each input and output ndarray\n* @returns {Array} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, [ sx, sy, sz ] );\n* // returns [...]\n*\n* var ssh = o[ 0 ];\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o[ 1 ];\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o[ 2 ];\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o[ 3 ];\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( shape, strides ) {\n\tvar idx;\n\tvar tmp;\n\tvar max;\n\tvar len;\n\tvar out;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\tN = strides.length;\n\n\t// Initialize an array for grouping stride arrays according to memory layout:\n\ttmp = [];\n\tfor ( i = 0; i < 4; i++ ) { // note: `4` corresponds to the number of possible return values from `strides2order`\n\t\ttmp.push( [] );\n\t}\n\tM = tmp.length;\n\n\t// Group stride arrays according to memory layout:\n\tfor ( i = 0; i < N; i++ ) {\n\t\ttmp[ strides2order( strides[ i ] ) ].push( strides[ i ] );\n\t}\n\t// Determine which array should be used to generate the loop order:\n\tmax = tmp[ 0 ].length;\n\tif ( max === N ) {\n\t\t// If all arrays are \"disorganized\", then just use the first array, as, generally, each array is likely to be as un-ideal as every other:\n\t\tst = strides[ 0 ];\n\t} else if ( max === N-1 ) {\n\t\t// If all but one array is \"disorganized\", find the \"organized\" array...\n\t\tfor ( i = 1; i < M; i++ ) {\n\t\t\tif ( tmp[ i ].length ) {\n\t\t\t\tst = tmp[ i ][ 0 ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Find the layout which is most common...\n\t\tj = 0;\n\t\tfor ( i = 1; i < M; i++ ) {\n\t\t\tlen = tmp[ i ].length;\n\t\t\tif ( len >= max ) {\n\t\t\t\tmax = len;\n\t\t\t\tj = i;\n\t\t\t}\n\t\t}\n\t\t// Use the strides of the first array having the most common layout:\n\t\tst = tmp[ j ][ 0 ];\n\t}\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( shape.length );\n\n\t// Sort strides in increasing order of magnitude:\n\tsort2ins( copy( st ), idx );\n\n\t// Permute the shape based on the sorted strides:\n\tout = [ take( shape, idx ) ];\n\n\t// Permute each stride array based on the sorted strides:\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( take( strides[ i ], idx ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\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* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20`) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = binaryLoopOrder( sh, sx, sy, sz );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 6, -2, 1 ]\n*/\nfunction binaryLoopOrder( sh, sx, sy, sz ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default binaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = binaryBlockSize( 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction binaryBlockSize( dtypeX, dtypeY, dtypeZ ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ ] );\n}\n\n\n// EXPORTS //\n\nexport default binaryBlockSize;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binarynd( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binarynd( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, MODE );\n\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binarynd( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binarynd( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, MODE );\n\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport anyIsEntryIn from '@stdlib/array-base-any-is-entry-in';\nimport format from '@stdlib/string-format';\nimport blockedaccessorbinary2d from './2d_blocked_accessors.js';\nimport blockedaccessorbinary3d from './3d_blocked_accessors.js';\nimport blockedaccessorbinary4d from './4d_blocked_accessors.js';\nimport blockedaccessorbinary5d from './5d_blocked_accessors.js';\nimport blockedaccessorbinary6d from './6d_blocked_accessors.js';\nimport blockedaccessorbinary7d from './7d_blocked_accessors.js';\nimport blockedaccessorbinary8d from './8d_blocked_accessors.js';\nimport blockedaccessorbinary9d from './9d_blocked_accessors.js';\nimport blockedaccessorbinary10d from './10d_blocked_accessors.js';\nimport blockedbinary2d from './2d_blocked.js';\nimport blockedbinary3d from './3d_blocked.js';\nimport blockedbinary4d from './4d_blocked.js';\nimport blockedbinary5d from './5d_blocked.js';\nimport blockedbinary6d from './6d_blocked.js';\nimport blockedbinary7d from './7d_blocked.js';\nimport blockedbinary8d from './8d_blocked.js';\nimport blockedbinary9d from './9d_blocked.js';\nimport blockedbinary10d from './10d_blocked.js';\nimport accessorbinary0d from './0d_accessors.js';\nimport accessorbinary1d from './1d_accessors.js';\nimport accessorbinary2d from './2d_accessors.js';\nimport accessorbinary3d from './3d_accessors.js';\nimport accessorbinary4d from './4d_accessors.js';\nimport accessorbinary5d from './5d_accessors.js';\nimport accessorbinary6d from './6d_accessors.js';\nimport accessorbinary7d from './7d_accessors.js';\nimport accessorbinary8d from './8d_accessors.js';\nimport accessorbinary9d from './9d_accessors.js';\nimport accessorbinary10d from './10d_accessors.js';\nimport accessorbinarynd from './nd_accessors.js';\nimport binary0d from './0d.js';\nimport binary1d from './1d.js';\nimport binary2d from './2d.js';\nimport binary3d from './3d.js';\nimport binary4d from './4d.js';\nimport binary5d from './5d.js';\nimport binary6d from './6d.js';\nimport binary7d from './7d.js';\nimport binary8d from './8d.js';\nimport binary9d from './9d.js';\nimport binary10d from './10d.js';\nimport binarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar BINARY = [\n\tbinary0d,\n\tbinary1d,\n\tbinary2d,\n\tbinary3d,\n\tbinary4d,\n\tbinary5d,\n\tbinary6d,\n\tbinary7d,\n\tbinary8d,\n\tbinary9d,\n\tbinary10d\n];\nvar ACCESSOR_BINARY = [\n\taccessorbinary0d,\n\taccessorbinary1d,\n\taccessorbinary2d,\n\taccessorbinary3d,\n\taccessorbinary4d,\n\taccessorbinary5d,\n\taccessorbinary6d,\n\taccessorbinary7d,\n\taccessorbinary8d,\n\taccessorbinary9d,\n\taccessorbinary10d\n];\nvar BLOCKED_BINARY = [\n\tblockedbinary2d, // 0\n\tblockedbinary3d,\n\tblockedbinary4d,\n\tblockedbinary5d,\n\tblockedbinary6d,\n\tblockedbinary7d,\n\tblockedbinary8d,\n\tblockedbinary9d,\n\tblockedbinary10d // 8\n];\nvar BLOCKED_ACCESSOR_BINARY = [\n\tblockedaccessorbinary2d, // 0\n\tblockedaccessorbinary3d,\n\tblockedaccessorbinary4d,\n\tblockedaccessorbinary5d,\n\tblockedaccessorbinary6d,\n\tblockedaccessorbinary7d,\n\tblockedaccessorbinary8d,\n\tblockedaccessorbinary9d,\n\tblockedaccessorbinary10d // 8\n];\nvar MAX_DIMS = BINARY.length - 1;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if at least one ndarray data buffer implements the accessor protocol.\n*\n* @private\n* @param {ndarrayLike} x - first ndarray\n* @param {ndarrayLike} y - second ndarray\n* @param {ndarrayLike} z - third ndarray\n* @returns {boolean} boolean indicating whether an ndarray data buffer implements the accessor protocol\n*/\nfunction hasAccessors( x, y, z ) {\n\treturn anyIsEntryIn( [ x, y, z ], 'accessorProtocol', true );\n}\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in input ndarrays and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input arrays and one output array\n* @param {Callback} fcn - binary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getData from '@stdlib/ndarray-data-buffer';\n*\n* function add( a, b ) {\n* return a + b;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var zbuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n* var sz = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarrays:\n* var x = new ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' );\n* var y = new ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' );\n* var z = new ndarray( 'float64', zbuf, shape, sz, oz, 'row-major' );\n*\n* // Apply the binary function:\n* binary( [ x, y, z ], add );\n*\n* console.log( getData( z ) );\n* // => [ 2.0, 4.0, 6.0, 8.0, 10.0, 12.0 ]\n*/\nfunction binary( arrays, fcn ) { // eslint-disable-line max-statements\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar zmmv;\n\tvar shx;\n\tvar shy;\n\tvar shz;\n\tvar iox;\n\tvar ioy;\n\tvar ioz;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\tz = ndarray2object( arrays[ 2 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tshz = z.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length || ndims !== shz.length ) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d. ndims(z) == %d.', ndims, shy.length, shz.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ ndims ]( x, y, z, fcn );\n\t\t}\n\t\treturn BINARY[ ndims ]( x, y, z, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] || d !== shz[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ ndims ]( x, y, z, fcn );\n\t\t}\n\t\treturn BINARY[ ndims ]( x, y, z, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\n\t// Determine whether the ndarrays have only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tz.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tz.strides = [ sz[i] ];\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ 1 ]( x, y, z, fcn );\n\t\t}\n\t\treturn BINARY[ 1 ]( x, y, z, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\tioz = iterationOrder( sz ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ioz !== 0 && ord === strides2order( sy ) && ord === strides2order( sz ) ) { // eslint-disable-line max-len\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\t\tzmmv = minmaxViewBufferIndex( shz, sz, z.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif (\n\t\t\tlen === ( xmmv[1]-xmmv[0]+1 ) &&\n\t\t\tlen === ( ymmv[1]-ymmv[0]+1 ) &&\n\t\t\tlen === ( zmmv[1]-zmmv[0]+1 )\n\t\t) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioz === 1 ) {\n\t\t\t\toz = zmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toz = zmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tz.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tz.strides = [ ioz ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tz.offset = oz;\n\t\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\t\treturn ACCESSOR_BINARY[ 1 ]( x, y, z, fcn );\n\t\t\t}\n\t\t\treturn BINARY[ 1 ]( x, y, z, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\t\treturn ACCESSOR_BINARY[ ndims ]( x, y, z, ord === 1, fcn );\n\t\t\t}\n\t\t\treturn BINARY[ ndims ]( x, y, z, ord === 1, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn BLOCKED_ACCESSOR_BINARY[ ndims-2 ]( x, y, z, fcn );\n\t\t}\n\t\treturn BLOCKED_BINARY[ ndims-2 ]( x, y, z, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( hasAccessors( x, y, z ) ) {\n\t\treturn accessorbinarynd( x, y, z, fcn );\n\t}\n\tbinarynd( x, y, z, fcn );\n}\n\n\n// EXPORTS //\n\nexport default binary;\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 binary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0 ] );\n* var ybuf = new Float64Array( [ 2.0 ] );\n* var zbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary0d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 3.0 ]\n*/\nfunction binary0d( x, y, z, fcn ) {\n\tz.data[ z.offset ] = fcn( x.data[ x.offset ], y.data[ y.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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 binary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 12 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary1d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary1d( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dy0;\n\tvar dz0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\tdz0 = z.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\tiz += dz0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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 binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary2d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary2d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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 binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary3d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary3d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary3d;\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 binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary4d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary4d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary4d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary5d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary5d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary5d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary6d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary6d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary6d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary7d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary7d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary7d;\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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary8d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary8d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary8d;\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-statements, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary9d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary9d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary9d;\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-statements, max-len, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* binary10d( x, y, z, true, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary10d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary10d;\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 binary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0 ] );\n* var ybuf = toAccessorArray( [ 2.0 ] );\n* var zbuf = toAccessorArray( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary0d( x, y, z, fcn );\n*\n* var v = z.data.get( 0 );\n* // returns 3.0\n*/\nfunction binary0d( x, y, z, fcn ) {\n\tz.accessors[ 1 ]( z.data, z.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ), y.accessors[ 0 ]( y.data, y.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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 binary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 12 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary1d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary1d( x, y, z, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dy0;\n\tvar dz0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\tdz0 = z.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\tiz += dz0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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 binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary2d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary2d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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 binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary3d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary3d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary3d;\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 binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary4d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary4d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary4d;\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-len, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary5d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary5d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary5d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary6d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary6d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary6d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary7d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary7d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary7d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary8d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary8d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary8d;\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, max-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary9d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary9d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* binary10d( x, y, z, true, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction binary10d( x, y, z, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary2d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary2d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary3d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary3d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary3d;\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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary4d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary4d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\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\nexport default blockedbinary4d;\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-statements, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary5d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary5d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\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\nexport default blockedbinary5d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary6d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary6d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\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\nexport default blockedbinary6d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary7d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary7d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary8d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary8d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary9d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary9d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function, max-lines */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Apply the binary function:\n* blockedbinary10d( x, y, z, fcn );\n*\n* console.log( z.data );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary10d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iz ] = fcn( xbuf[ ix ], ybuf[ iy ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\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\nexport default blockedbinary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary2d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary2d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary2d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary3d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary3d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedbinary3d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary4d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary4d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\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\nexport default blockedbinary4d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary5d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary5d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\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\nexport default blockedbinary5d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary6d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary6d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\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\nexport default blockedbinary6d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary7d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary7d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary8d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary8d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary9d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary9d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function, max-lines */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing output ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Callback} fcn - binary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( x, y ) {\n* return x + y;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Apply the binary function:\n* blockedbinary10d( x, y, z, fcn );\n*\n* console.log( copy( z.data ) );\n* // => [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0 ]\n*/\nfunction blockedbinary10d( x, y, z, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar xget;\n\tvar yget;\n\tvar zset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzset = z.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzset( zbuf, iz, fcn( xget( xbuf, ix ), yget( ybuf, iy ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\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\nexport default blockedbinary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectKeys from '@stdlib/utils-keys';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport PROMOTION_RULES from './promotion_rules.json';\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of promotion rules.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( PROMOTION_RULES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = PROMOTION_RULES[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @param {*} [dtype1] - ndarray data type value\n* @param {*} [dtype2] - ndarray data type value\n* @returns {(Object|integer|string|null)} promotion rule(s) or null\n*\n* @example\n* var table = promotionRules();\n* // returns {...}\n*\n* @example\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* @example\n* var dt = promotionRules( 'binary', 'generic' );\n* // returns -1\n*\n* @example\n* var dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\nfunction promotionRules( dtype1, dtype2 ) {\n\tvar o;\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tdtype1 = resolve( dtype1 );\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tdtype2 = resolve( dtype2 );\n\t\tif ( hasOwnProp( o, dtype2 ) ) {\n\t\t\treturn o[ dtype2 ];\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default promotionRules;\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\nimport promotionRules from '@stdlib/ndarray-promotion-rules';\n\n\n// MAIN //\n\n/**\n* Returns a data type that results from applying promotion rules to a provided list of data types.\n*\n* @param {StringArray} dtypes - list of data types\n* @returns {(string|null)} result\n*\n* @example\n* var dt = promoteDataTypes( [ 'float32', 'float64' ] );\n* // returns 'float64'\n*\n* @example\n* var dt = promoteDataTypes( [ 'binary', 'complex128' ] );\n* // returns null\n*/\nfunction promoteDataTypes( dtypes ) {\n\tvar dt;\n\tvar N;\n\tvar i;\n\n\tN = dtypes.length;\n\tif ( N === 0 ) {\n\t\treturn null;\n\t}\n\tdt = dtypes[ 0 ];\n\tfor ( i = 1; i < dtypes.length; i++ ) {\n\t\tdt = promotionRules( dt, dtypes[ i ] );\n\t\tif ( dt === null || dt === -1 ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\treturn dt;\n}\n\n\n// EXPORTS //\n\nexport default promoteDataTypes;\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 id-length, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport promoteDataTypes from '@stdlib/ndarray-base-promote-dtypes';\nimport defaults from '@stdlib/ndarray-defaults';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_SIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.signed_integer' );\nvar DEFAULT_UNSIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.unsigned_integer' );\nvar DEFAULT_REAL_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.real_floating_point' );\n\n\n// MAIN //\n\n/**\n* Resolves the casting data type for an input ndarray provided to a binary function.\n*\n* @param {string} idtype1 - input ndarray data type\n* @param {string} idtype2 - additional input ndarray data type\n* @param {string} odtype - output ndarray data type\n* @param {string} policy - input ndarray data type casting policy\n* @throws {TypeError} fourth argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} data type\n*\n* @example\n* var dt = resolve( 'float32', 'float32', 'float64', 'none' );\n* // returns \n*/\nfunction resolve( idtype1, idtype2, odtype, policy ) {\n\tvar dt;\n\tif ( policy === 'none' ) {\n\t\t// When the policy is 'none', casting behavior is implementation-defined, so we just return the input ndarray data type as is...\n\t\treturn idtype1;\n\t}\n\tif ( policy === 'output' ) {\n\t\treturn odtype;\n\t}\n\tif ( policy === 'promoted' ) {\n\t\tdt = promoteDataTypes( [ idtype1, idtype2, odtype ] );\n\t\tif ( dt === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unable to promote the input and output data types. Input data types: [%s]. Output data type: %s.', join( [ idtype1, idtype2 ], ', ' ), odtype ) );\n\t\t}\n\t\treturn dt;\n\t}\n\tif ( policy === 'accumulation' ) {\n\t\t// When the casting policy is 'accumulation', we consider the input ndarray data type in isolation, irrespective of the output data type or the data types of additional input ndarrays...\n\n\t\t// If an input data type is floating-point, allow accumulation in that data type as overflow/underflow is handled naturally as a built-in feature of that data type...\n\t\tif ( isFloatingPointDataType( idtype1 ) || idtype1 === 'generic' ) { // NOTE: we may want to revisit this in the future for float16/complex32, where the value range is much more limited\n\t\t\treturn idtype1;\n\t\t}\n\t\t// Unless an input data type value range is larger than the default un/signed integer data type, accumulate in the default un/signed integer data type, as accumulating in smaller range integer data types (e.g., `int8`) are at high risk for overflow, especially for ndarrays containing many elements...\n\t\tif ( isUnsignedIntegerDataType( idtype1 ) ) {\n\t\t\treturn promoteDataTypes( [ idtype1, DEFAULT_UNSIGNED_INTEGER_DTYPE ] );\n\t\t}\n\t\tif ( isSignedIntegerDataType( idtype1 ) ) {\n\t\t\treturn promoteDataTypes( [ idtype1, DEFAULT_SIGNED_INTEGER_DTYPE ] );\n\t\t}\n\t\t// For all other input data types, accumulate in the default real-valued floating-point data type...\n\t\treturn DEFAULT_REAL_FLOATING_POINT_DTYPE;\n\t}\n\t// Check for an explicit data type...\n\tif ( isDataType( policy ) ) {\n\t\treturn policy;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a supported casting policy. Value: `%s`.', policy ) );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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 id-length */\n\n'use strict';\n\n// MODULES //\n\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nimport isRealFloatingPointDataType from '@stdlib/ndarray-base-assert-is-real-floating-point-data-type';\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isIntegerDataType from '@stdlib/ndarray-base-assert-is-integer-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport isNumericDataType from '@stdlib/ndarray-base-assert-is-numeric-data-type';\nimport isBooleanDataType from '@stdlib/ndarray-base-assert-is-boolean-data-type';\nimport isIntegerIndexDataType from '@stdlib/ndarray-base-assert-is-integer-index-data-type';\nimport isBooleanIndexDataType from '@stdlib/ndarray-base-assert-is-boolean-index-data-type';\nimport isMaskIndexDataType from '@stdlib/ndarray-base-assert-is-mask-index-data-type';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport promoteDataTypes from '@stdlib/ndarray-base-promote-dtypes';\nimport defaults from '@stdlib/ndarray-defaults';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\nvar DEFAULT_INDEX_DTYPE = defaults.get( 'dtypes.default_index' );\nvar DEFAULT_SIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.signed_integer' );\nvar DEFAULT_UNSIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.unsigned_integer' );\nvar DEFAULT_REAL_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.real_floating_point' );\nvar DEFAULT_COMPLEX_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.complex_floating_point' );\n\n// Table where, for each respective policy, the value is a function which applies the policy to an input data type...\nvar POLICY_TABLE1 = {\n\t'default': defaultPolicy,\n\t'default_index': defaultIndexPolicy,\n\t'same': samePolicy,\n\t'promoted': promotedPolicy,\n\t'accumulation': accumulationPolicy\n};\n\n// Table where, for each respective policy, the value is an array whose first element is an assertion and whose second element is a fallback data type...\nvar POLICY_TABLE2 = {\n\t// Floating-point policies...\n\t'floating_point': [\n\t\tisFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.floating_point' )\n\t],\n\t'floating_point_and_generic': [\n\t\twrap( isFloatingPointDataType ),\n\t\tdefaults.get( 'dtypes.floating_point' )\n\t],\n\t'real_floating_point': [\n\t\tisRealFloatingPointDataType,\n\t\tresolveDefaultRealFloatingPoint\n\t],\n\t'real_floating_point_and_generic': [\n\t\twrap( isRealFloatingPointDataType ),\n\t\tresolveDefaultRealFloatingPoint\n\t],\n\t'complex_floating_point': [\n\t\tisComplexFloatingPointDataType,\n\t\tresolveDefaultComplexFloatingPoint\n\t],\n\t'complex_floating_point_and_generic': [\n\t\twrap( isComplexFloatingPointDataType ),\n\t\tresolveDefaultComplexFloatingPoint\n\t],\n\n\t// Integer policies...\n\t'integer': [\n\t\tisIntegerDataType,\n\t\tdefaults.get( 'dtypes.integer' )\n\t],\n\t'integer_and_generic': [\n\t\twrap( isIntegerDataType ),\n\t\tdefaults.get( 'dtypes.integer' )\n\t],\n\t'signed_integer': [\n\t\tisSignedIntegerDataType,\n\t\tDEFAULT_SIGNED_INTEGER_DTYPE\n\t],\n\t'signed_integer_and_generic': [\n\t\twrap( isSignedIntegerDataType ),\n\t\tDEFAULT_SIGNED_INTEGER_DTYPE\n\t],\n\t'unsigned_integer': [\n\t\tisUnsignedIntegerDataType,\n\t\tDEFAULT_UNSIGNED_INTEGER_DTYPE\n\t],\n\t'unsigned_integer_and_generic': [\n\t\twrap( isUnsignedIntegerDataType ),\n\t\tDEFAULT_UNSIGNED_INTEGER_DTYPE\n\t],\n\n\t// Real-valued number policies...\n\t'real': [\n\t\tisRealDataType,\n\t\tdefaults.get( 'dtypes.real' )\n\t],\n\t'real_and_generic': [\n\t\twrap( isRealDataType ),\n\t\tdefaults.get( 'dtypes.real' )\n\t],\n\n\t// Real- and complex-valued number policies...\n\t'numeric': [\n\t\tisNumericDataType,\n\t\tdefaults.get( 'dtypes.numeric' )\n\t],\n\t'numeric_and_generic': [\n\t\twrap( isNumericDataType ),\n\t\tdefaults.get( 'dtypes.numeric' )\n\t],\n\n\t// Boolean policies...\n\t'boolean': [\n\t\tisBooleanDataType,\n\t\tdefaults.get( 'dtypes.boolean' )\n\t],\n\t'boolean_and_generic': [\n\t\twrap( isBooleanDataType ),\n\t\tdefaults.get( 'dtypes.boolean' )\n\t],\n\n\t// Index policies...\n\t'integer_index': [\n\t\tisIntegerIndexDataType,\n\t\tdefaults.get( 'dtypes.integer_index' )\n\t],\n\t'integer_index_and_generic': [\n\t\twrap( isIntegerIndexDataType ),\n\t\tdefaults.get( 'dtypes.integer_index' )\n\t],\n\t'boolean_index': [\n\t\tisBooleanIndexDataType,\n\t\tdefaults.get( 'dtypes.boolean_index' )\n\t],\n\t'boolean_index_and_generic': [\n\t\twrap( isBooleanIndexDataType ),\n\t\tdefaults.get( 'dtypes.boolean_index' )\n\t],\n\t'mask_index': [\n\t\tisMaskIndexDataType,\n\t\tdefaults.get( 'dtypes.mask_index' )\n\t],\n\t'mask_index_and_generic': [\n\t\twrap( isMaskIndexDataType ),\n\t\tdefaults.get( 'dtypes.mask_index' )\n\t]\n};\n\n// Table mapping complex-valued floating-point data types to real-valued floating-point data types having the same precision:\nvar COMPLEX2FLOAT = {\n\t'complex128': 'float64',\n\t'complex64': 'float32',\n\t'complex32': 'float16'\n};\n\n// Table mapping real-valued floating-point data types to complex-valued floating-point data types having the same precision:\nvar FLOAT2COMPLEX = {\n\t'float64': 'complex128',\n\t'float32': 'complex64',\n\t'float16': 'complex32'\n};\n\n\n// FUNCTIONS //\n\n/**\n* Wraps a data type validation function to also check for a \"generic\" data type.\n*\n* @private\n* @param {Function} fcn - validation function\n* @returns {Function} wrapped validation function\n*/\nfunction wrap( fcn ) {\n\treturn wrapper;\n\n\t/**\n\t* Tests whether a provided data type is either \"generic\" or satisfies a data type validation function.\n\t*\n\t* @private\n\t* @param {*} value - input value\n\t* @returns {boolean} boolean indicating whether a provided value passes a test\n\t*/\n\tfunction wrapper( value ) {\n\t\treturn ( value === 'generic' ) || fcn( value );\n\t}\n}\n\n/**\n* Returns the default data type.\n*\n* @private\n* @returns {string} output ndarray data type\n*/\nfunction defaultPolicy() {\n\t// When the policy is \"default\", the output data type should always be the default data type without consideration for the input data types:\n\treturn DEFAULT_DTYPE;\n}\n\n/**\n* Returns the default index data type.\n*\n* @private\n* @returns {string} output ndarray data type\n*/\nfunction defaultIndexPolicy() {\n\t// When the policy is \"default_index\", the output data type should always be the default index data type without consideration for the input data types:\n\treturn DEFAULT_INDEX_DTYPE;\n}\n\n/**\n* Applies the \"same\" policy by returning the common input data type.\n*\n* @private\n* @param {StringArray} dtypes - input ndarray data types\n* @throws {Error} invalid data types\n* @returns {string} output ndarray data type\n*/\nfunction samePolicy( dtypes ) {\n\tvar dt;\n\tvar i;\n\n\tdt = dtypes[ 0 ];\n\tfor ( i = 1; i < dtypes.length; i++ ) {\n\t\t// When the policy is \"same\", we require that all data types (both input and output) be the same...\n\t\tif ( dtypes[ i ] !== dt ) {\n\t\t\tthrow new Error( format( 'invalid argument. Unable to resolve an output data type. The output data type policy is \"same\" and yet the input data types are not equal. Data types: [%s].', join( dtypes, ', ' ) ) );\n\t\t}\n\t}\n\treturn dt;\n}\n\n/**\n* Applies the \"promoted\" policy by applying type promotion to the list of provided data types.\n*\n* @private\n* @param {StringArray} dtypes - input ndarray data types\n* @throws {Error} must provide data types which can be safely cast to a common data type\n* @returns {string} output ndarray data type\n*/\nfunction promotedPolicy( dtypes ) {\n\tvar dt = promoteDataTypes( dtypes );\n\tif ( dt === null ) {\n\t\tthrow new Error( format( 'invalid argument. Unable to apply type promotion rules when resolving a data type to which the input data types can be safely cast. Data types: [%s].', join( dtypes, ', ' ) ) );\n\t}\n\treturn dt;\n}\n\n/**\n* Applies the \"accumulation\" policy to the list of input data types.\n*\n* @private\n* @param {StringArray} dtypes - input ndarray data types\n* @throws {Error} must provide data types which can be safely cast to a common data type\n* @returns {string} output ndarray data type\n*/\nfunction accumulationPolicy( dtypes ) {\n\tvar dt = promotedPolicy( dtypes );\n\n\t// If the promoted data type is floating-point, allow accumulation in that data type as overflow/underflow is handled naturally as a built-in feature of that data type...\n\tif ( isFloatingPointDataType( dt ) || dt === 'generic' ) { // NOTE: we may want to revisit this in the future for float16/complex32, where the value range is much more limited\n\t\treturn dt;\n\t}\n\t// Unless the promoted data type value range is larger than the default un/signed integer data type, accumulate in the default un/signed integer data type, as accumulating in small range integer data types (e.g., `int8`) is at high risk for overflow, especially for ndarrays containing many elements...\n\tif ( isUnsignedIntegerDataType( dt ) ) {\n\t\treturn promoteDataTypes( [ dt, DEFAULT_UNSIGNED_INTEGER_DTYPE ] );\n\t}\n\tif ( isSignedIntegerDataType( dt ) ) {\n\t\treturn promoteDataTypes( [ dt, DEFAULT_SIGNED_INTEGER_DTYPE ] );\n\t}\n\t// For all other data types, accumulate in the default real-valued floating-point data type...\n\treturn DEFAULT_REAL_FLOATING_POINT_DTYPE;\n}\n\n/**\n* Resolves a default real-valued floating-point data type which preserves floating-point precision.\n*\n* @private\n* @param {string} dtype - input ndarray data type\n* @returns {string} output ndarray data type\n*/\nfunction resolveDefaultRealFloatingPoint( dtype ) {\n\treturn COMPLEX2FLOAT[ dtype ] || DEFAULT_REAL_FLOATING_POINT_DTYPE;\n}\n\n/**\n* Resolves a default complex-valued floating-point data type which preserves floating-point precision.\n*\n* @private\n* @param {string} dtype - input ndarray data type\n* @returns {string} output ndarray data type\n*/\nfunction resolveDefaultComplexFloatingPoint( dtype ) {\n\treturn FLOAT2COMPLEX[ dtype ] || DEFAULT_COMPLEX_FLOATING_POINT_DTYPE;\n}\n\n\n// MAIN //\n\n/**\n* Resolves the output data type from a list of input ndarray data types.\n*\n* @param {StringArray} dtypes - list of input ndarray data types\n* @param {string} policy - output ndarray data type policy\n* @throws {TypeError} second argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} output ndarray data type\n*\n* @example\n* var dt = resolve( [ 'float64' ], 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( dtypes, policy ) {\n\tvar dt;\n\tvar p;\n\n\t// First, check whether the policy mandates that the output data type always be a specific data type...\n\tif ( isDataType( policy ) ) {\n\t\treturn policy;\n\t}\n\t// Next, check whether the policy is one in which we may be able to avoid type promotion...\n\tp = POLICY_TABLE1[ policy ];\n\tif ( p !== void 0 ) {\n\t\treturn p( dtypes );\n\t}\n\t// For all other policies, we always apply type promotion rules...\n\tdt = promotedPolicy( dtypes );\n\n\t// Check whether the policy requires determining the data type \"kind\"...\n\tp = POLICY_TABLE2[ policy ];\n\tif ( p !== void 0 ) {\n\t\t// Check whether the promoted data type belongs to the data type \"kind\"...\n\t\tif ( p[ 0 ]( dt ) ) {\n\t\t\t// If so, we can just return the promoted data type:\n\t\t\treturn dt;\n\t\t}\n\t\t// Otherwise, we need to fallback to a default data type belonging to that \"kind\"...\n\t\tif ( isString( p[ 1 ] ) ) {\n\t\t\treturn p[ 1 ];\n\t\t}\n\t\treturn p[ 1 ]( dt );\n\t}\n\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type policy. Value: `%s`.', policy ) );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a binary function.\n*\n* @param {*} xdtype - first input ndarray data type\n* @param {*} ydtype - second input ndarray data type\n* @param {(string|*)} policy - output ndarray data type policy\n* @throws {TypeError} third argument must be a recognized data type policy\n* @throws {Error} must provide data types amenable to type promotion\n* @returns {DataType} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'float32', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( xdtype, ydtype, policy ) {\n\treturn outputDataType( [ xdtype, ydtype ], policy );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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 the complement of a list of array indices.\n*\n* @param {NonNegativeInteger} N - array length\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {NonNegativeIntegerArray} indices complement\n*\n* @example\n* var idx = indicesComplement( 5, [ 1, 2 ] );\n* // returns [ 0, 3, 4 ]\n*/\nfunction indicesComplement( N, indices ) {\n\tvar hash;\n\tvar out;\n\tvar i;\n\n\thash = {};\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\thash[ indices[ i ] ] = true;\n\t}\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( hash[ i ] === void 0 ) {\n\t\t\tout.push( i );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default indicesComplement;\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* Takes elements from two indexed arrays in a single pass.\n*\n* @param {Collection} x - first input array\n* @param {Collection} y - second input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output arrays\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var y = [ 5, 6, 7, 8 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var out = take2( x, y, indices );\n* // returns [ [ 4, 2, 3, 1 ], [ 8, 6, 7, 5 ] ]\n*/\nfunction take2( x, y, indices ) {\n\tvar o1;\n\tvar o2;\n\tvar i;\n\n\to1 = [];\n\to2 = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\to1.push( x[ indices[ i ] ] ); // use `Array#push` to ensure \"fast\" elements\n\t\to2.push( y[ indices[ i ] ] );\n\t}\n\treturn [ o1, o2 ];\n}\n\n\n// EXPORTS //\n\nexport default take2;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x ) {\n\tvar out;\n\tvar sh;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\t// Copy the shape in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < sh.length; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default shape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {IntegerArray} strides\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x ) {\n\tvar out;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides; // TODO: consider whether we want to support ecosystem libraries, such as scijs/ndarray, which name this property `stride`\n\tif ( !isCollection( st ) ) {\n\t\t// WARNING: if no strides array, try to derive the strides from the shape. Note, however, that there is a lot that can go wrong here, as the only thing we are requiring is that the shape is a collection. The main point of going through the effort to compute strides is to support minimal ndarray-esque objects, where the only essential attributes are `shape` and `dtype` and where other attributes can be computed (e.g., `strides`, `offset`, `ndims`, `order`, etc), assuming single-segment contiguous data stored in row-major order...\n\t\tsh = x.shape;\n\t\tif ( !isCollection( sh ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( !isOrder( ord ) ) {\n\t\t\tord = 'row-major';\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\t// Copy the strides in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < st.length; i++ ) {\n\t\td = st[ i ];\n\t\tif ( !isInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.ndims;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\treturn sh.length;\n}\n\n\n// EXPORTS //\n\nexport default ndims;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nimport strides from '@stdlib/ndarray-strides';\nimport ndims from '@stdlib/ndarray-ndims';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\to = x.order;\n\tif ( isOrder( o ) ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = strides( x );\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( ndims( x ) === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default order;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-dtype';\nimport getShape from '@stdlib/ndarray-shape';\nimport getStrides from '@stdlib/ndarray-strides';\nimport getOffset from '@stdlib/ndarray-offset';\nimport getOrder from '@stdlib/ndarray-order';\nimport getData from '@stdlib/ndarray-data-buffer';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport defaults from '@stdlib/ndarray-defaults';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults( 'order' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an ndarray.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var out = ndarraylike2ndarray( x );\n* // returns \n*/\nfunction ndarraylike2ndarray( x ) {\n\treturn new ndarray( getDType( x ), getData( x ), getShape( x ), getStrides( x ), getOffset( x ), getOrder( x ) || DEFAULT_ORDER ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray having a supported data type\n* @returns {string} data type\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\tvar dt;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tdt = x.dtype;\n\tif ( isDataType( dt ) ) {\n\t\treturn dt;\n\t}\n\t// A data type is essential for interpreting the memory associated with an ndarray object, so no fallbacks or workarounds for data type resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray having a supported data type. Value: `%s`.', dt ) );\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\tvar out;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tout = x.data;\n\tif ( isCollection( out ) ) {\n\t\treturn out;\n\t}\n\t// A data buffer is essential for operating on an ndarray object, so no fallbacks or workarounds for data buffer resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default data;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.offset;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides;\n\tif ( sh.length === 0 || !isCollection( st ) ) {\n\t\treturn 0;\n\t}\n\tn = strides2offset( sh, st );\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default offset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\nimport ctors from '@stdlib/array-typed-ctors';\nimport zeros from '@stdlib/array-base-zeros';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport defaults from '@stdlib/array-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tvar nbytes;\n\tvar offset;\n\tvar dtype;\n\tvar ctor;\n\tvar buf;\n\tvar out;\n\tvar nb;\n\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn zeros( length );\n\t}\n\tnbytes = bytesPerElement( dtype );\n\tif ( nbytes === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type. Value: `%s`.', dtype ) );\n\t}\n\t// Resolve typed array constructor:\n\tctor = ctors( dtype );\n\n\t// Compute the number of bytes to allocate:\n\tnb = nbytes * length;\n\tif ( dtype === 'complex128' ) {\n\t\tnb += 8; // Note: need to allocate additional bytes to ensure alignment\n\t}\n\t// Allocate binary buffer:\n\tbuf = allocUnsafe( nb );\n\n\t// Resolve the byte offset:\n\toffset = buf.byteOffset;\n\tif ( dtype === 'complex128' ) {\n\t\tif ( !isNonNegativeInteger( offset/nbytes ) ) {\n\t\t\toffset += 8; // Note: ensure alignment\n\t\t}\n\t}\n\t// Reinterpret the binary buffer:\n\tout = new ctor( buf.buffer, offset, length );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Int16Array from '@stdlib/array-int16';\nimport Int32Array from '@stdlib/array-int32';\nimport Int8Array from '@stdlib/array-int8';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array,\n\t'bool': BooleanArray\n};\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport ctors from '@stdlib/array-ctors';\nimport gzeros from '@stdlib/array-base-zeros';\nimport defaults from '@stdlib/array-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = zeros( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = zeros( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction zeros( length ) {\n\tvar dtype;\n\tvar ctor;\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn gzeros( length );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new ctor( length ); // WARNING: we assume that, apart from 'generic', the constructors for supported array data types are zero-filled by default\n}\n\n\n// EXPORTS //\n\nexport default zeros;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an uninitialized array having a specified length.\n*\n* @module @stdlib/array-empty\n*\n* @example\n* import empty from '@stdlib/array-empty';\n*\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* import empty from '@stdlib/array-empty';\n*\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\n\n// MODULES //\n\nimport isBufferUint8Array from './is_buffer_uint8array.js';\nimport main from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar empty;\nif ( isBufferUint8Array() ) {\n\tempty = main;\n} else {\n\tempty = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport table from './ctors.js';\n\n\n// MAIN //\n\n/**\n* Returns an array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nexport default ctors;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\nimport isUint8Array from '@stdlib/assert-is-uint8array';\n\n\n// MAIN //\n\n/**\n* Checks whether an environment supports Node.js buffer instances which inherit from `Uint8Array`.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment supports Node.js buffer instances inheriting from `Uint8Array`\n*\n* @example\n* var bool = check();\n* // returns \n*/\nfunction check() {\n\tvar buf = allocUnsafe( 1 );\n\treturn isUint8Array( buf );\n}\n\n\n// EXPORTS //\n\nexport default check;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-zeros';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @private\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tif ( arguments.length > 1 ) {\n\t\treturn zeros( length, arguments[ 1 ] );\n\t}\n\treturn zeros( length );\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction emptyLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar dts;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tdts = resolveStr( dt );\n\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dts === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dts );\n\t}\n\t// FIXME: add support for struct dtypes. Will need to do something similar to `array/empty` in so far as allocating an uninitialized array buffer, performing byte alignment, and creating a StructArray view atop the buffer.\n\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\n}\n\n\n// EXPORTS //\n\nexport default emptyLike;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {*} 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the third element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 2 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default offsets;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpret from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Copies every element from one array to another array, except for the element at a specified index.\n*\n* @private\n* @param {Collection} x - input array\n* @param {integer} index - element index\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* var arr = indexed( x, 0, out, 1, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\nfunction indexed( x, index, out, stride, offset ) {\n\tvar io;\n\tvar i;\n\n\tio = offset;\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\tif ( i === index ) {\n\t\t\tcontinue;\n\t\t}\n\t\tout[ io ] = x[ i ];\n\t\tio += stride;\n\t}\n\treturn out;\n}\n\n/**\n* Copies every element from one accessor array to another accessor array, except for the element at a specified index.\n*\n* @private\n* @param {Object} x - input array object\n* @param {integer} index - element index\n* @param {Object} out - output array object\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {Collection} output array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var out = toAccessorArray( [ 0, 0, 0 ] );\n* var arr = accessors( arraylike2object( x ), 0, arraylike2object( out ), 1, 0 );\n*\n* var v = arr.get( 0 );\n* // returns 2\n*/\nfunction accessors( x, index, out, stride, offset ) {\n\tvar xdata;\n\tvar odata;\n\tvar xget;\n\tvar oset;\n\tvar io;\n\tvar i;\n\n\txdata = x.data;\n\todata = out.data;\n\n\txget = x.accessors[ 0 ];\n\toset = out.accessors[ 1 ];\n\n\tio = offset;\n\tfor ( i = 0; i < xdata.length; i++ ) {\n\t\tif ( i === index ) {\n\t\t\tcontinue;\n\t\t}\n\t\toset( odata, io, xget( xdata, i ) );\n\t\tio += stride;\n\t}\n\treturn odata;\n}\n\n/**\n* Copies every element from one complex array to another complex array, except for the element at a specified index.\n*\n* @private\n* @param {Collection} x - real-valued floating-point input array view\n* @param {integer} index - element index\n* @param {Collection} out - real-valued floating-point output array view\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {Collection} output array view\n*\n* @example\n* import Complex128 from '@stdlib/complex-float64-ctor';\n* import Float64Array from '@stdlib/array-float64';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n*\n* var out = new Float64Array( 2 );\n* var arr = complex( x, 0, out, 1, 0 );\n* // returns [ 3.0, 4.0 ]\n*/\nfunction complex( x, index, out, stride, offset ) {\n\tvar so;\n\tvar io;\n\tvar i;\n\tvar j;\n\n\tso = stride * 2; // multiply by 2, as real-valued array consists of interleaved real and imaginary components\n\tio = offset * 2;\n\tfor ( i = 0; i < x.length/2; i++ ) {\n\t\tif ( i === index ) {\n\t\t\tcontinue;\n\t\t}\n\t\tj = i * 2;\n\t\tout[ io ] = x[ j ];\n\t\tout[ io+1 ] = x[ j+1 ];\n\t\tio += so;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Copies every element from one array to another array, except for the element at a specified index.\n*\n* @param {Collection} x - input array\n* @param {integer} index - element index\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @throws {RangeError} second argument must not exceed array bounds\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* var arr = assign( x, 0, out, 1, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\nfunction assign( x, index, out, stride, offset ) {\n\tvar xo;\n\tvar oo;\n\n\tindex = normalizeIndex( index, x.length-1 );\n\tif ( index < 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%d`.', index ) );\n\t}\n\txo = arraylike2object( x );\n\too = arraylike2object( out );\n\tif ( xo.accessorProtocol || oo.accessorProtocol ) {\n\t\t// Note: we only explicitly support a limited set of dtype-to-dtype pairs, as this function should not be concerned with casting rules, etc. That is left to userland...\n\t\tif (\n\t\t\tisComplexDataType( xo.dtype ) &&\n\t\t\tisComplexDataType( oo.dtype )\n\t\t) {\n\t\t\tcomplex( reinterpret( x, 0 ), index, reinterpret( out, 0 ), stride, offset ); // eslint-disable-line max-len\n\t\t\treturn out;\n\t\t}\n\t\tif (\n\t\t\tisBooleanDataType( xo.dtype ) &&\n\t\t\tisBooleanDataType( oo.dtype )\n\t\t) {\n\t\t\tindexed( reinterpretBoolean( x, 0 ), index, reinterpretBoolean( out, 0 ), stride, offset ); // eslint-disable-line max-len\n\t\t\treturn out;\n\t\t}\n\t\taccessors( xo, index, oo, stride, offset );\n\t\treturn out;\n\t}\n\tindexed( x, index, out, stride, offset );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport zeros from '@stdlib/array-zeros';\nimport dtype from '@stdlib/array-dtype';\nimport format from '@stdlib/string-format';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns a new array containing every element from an input array, except for the element at a specified index.\n*\n* @param {Collection} x - input array\n* @param {integer} index - element index\n* @throws {RangeError} second argument must not exceed array bounds\n* @returns {Collection} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var v = without( x, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* v = without( x, 1 );\n* // returns [ 1, 3, 4 ]\n*\n* v = without( x, -2 );\n* // returns [ 1, 2, 4 ]\n*/\nfunction without( x, index ) {\n\tvar out;\n\n\tindex = normalizeIndex( index, x.length-1 );\n\tif ( index < 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%d`.', index ) );\n\t}\n\tout = zeros( x.length-1, dtype( x ) || 'generic' );\n\tassign( x, index, out, 1, 0 );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default without;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a new array containing every element from an input array, except for the element at a specified index.\n*\n* @module @stdlib/array-base-without\n*\n* @example\n* import without from '@stdlib/array-base-without';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var v = without( x, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* v = without( x, -2 );\n* // returns [ 1, 2, 4 ]\n*\n* @example\n* import without from '@stdlib/array-base-without';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* var arr = without.assign( x, 0, out, 1, 0 );\n* // returns [ 2, 3, 4 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binarynd( gdot, [ x, y, z ], views, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binarynd( fcn, arrays, views, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar len;\n\tvar arr;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar z;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tset( zbuf, io[2], fcn( v, opts ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binarynd( gdot, [ x, y, z ], views, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binarynd( fcn, arrays, views, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar len;\n\tvar arr;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar z;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tzbuf[ io[2] ] = fcn( v, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport anyIsEntryIn from '@stdlib/array-base-any-is-entry-in';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedaccessorbinary2d from './2d_blocked_accessors.js';\nimport blockedaccessorbinary3d from './3d_blocked_accessors.js';\nimport blockedaccessorbinary4d from './4d_blocked_accessors.js';\nimport blockedaccessorbinary5d from './5d_blocked_accessors.js';\nimport blockedaccessorbinary6d from './6d_blocked_accessors.js';\nimport blockedaccessorbinary7d from './7d_blocked_accessors.js';\nimport blockedaccessorbinary8d from './8d_blocked_accessors.js';\nimport blockedaccessorbinary9d from './9d_blocked_accessors.js';\nimport blockedaccessorbinary10d from './10d_blocked_accessors.js';\nimport blockedbinary2d from './2d_blocked.js';\nimport blockedbinary3d from './3d_blocked.js';\nimport blockedbinary4d from './4d_blocked.js';\nimport blockedbinary5d from './5d_blocked.js';\nimport blockedbinary6d from './6d_blocked.js';\nimport blockedbinary7d from './7d_blocked.js';\nimport blockedbinary8d from './8d_blocked.js';\nimport blockedbinary9d from './9d_blocked.js';\nimport blockedbinary10d from './10d_blocked.js';\nimport accessorbinary0d from './0d_accessors.js';\nimport accessorbinary1d from './1d_accessors.js';\nimport accessorbinary2d from './2d_accessors.js';\nimport accessorbinary3d from './3d_accessors.js';\nimport accessorbinary4d from './4d_accessors.js';\nimport accessorbinary5d from './5d_accessors.js';\nimport accessorbinary6d from './6d_accessors.js';\nimport accessorbinary7d from './7d_accessors.js';\nimport accessorbinary8d from './8d_accessors.js';\nimport accessorbinary9d from './9d_accessors.js';\nimport accessorbinary10d from './10d_accessors.js';\nimport accessorbinarynd from './nd_accessors.js';\nimport binary0d from './0d.js';\nimport binary1d from './1d.js';\nimport binary2d from './2d.js';\nimport binary3d from './3d.js';\nimport binary4d from './4d.js';\nimport binary5d from './5d.js';\nimport binary6d from './6d.js';\nimport binary7d from './7d.js';\nimport binary8d from './8d.js';\nimport binary9d from './9d.js';\nimport binary10d from './10d.js';\nimport binarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar BINARY = [\n\tbinary0d,\n\tbinary1d,\n\tbinary2d,\n\tbinary3d,\n\tbinary4d,\n\tbinary5d,\n\tbinary6d,\n\tbinary7d,\n\tbinary8d,\n\tbinary9d,\n\tbinary10d\n];\nvar ACCESSOR_BINARY = [\n\taccessorbinary0d,\n\taccessorbinary1d,\n\taccessorbinary2d,\n\taccessorbinary3d,\n\taccessorbinary4d,\n\taccessorbinary5d,\n\taccessorbinary6d,\n\taccessorbinary7d,\n\taccessorbinary8d,\n\taccessorbinary9d,\n\taccessorbinary10d\n];\nvar BLOCKED_BINARY = [\n\tblockedbinary2d, // 0\n\tblockedbinary3d,\n\tblockedbinary4d,\n\tblockedbinary5d,\n\tblockedbinary6d,\n\tblockedbinary7d,\n\tblockedbinary8d,\n\tblockedbinary9d,\n\tblockedbinary10d // 8\n];\nvar BLOCKED_ACCESSOR_BINARY = [\n\tblockedaccessorbinary2d, // 0\n\tblockedaccessorbinary3d,\n\tblockedaccessorbinary4d,\n\tblockedaccessorbinary5d,\n\tblockedaccessorbinary6d,\n\tblockedaccessorbinary7d,\n\tblockedaccessorbinary8d,\n\tblockedaccessorbinary9d,\n\tblockedaccessorbinary10d // 8\n];\nvar MAX_DIMS = BINARY.length - 1;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if at least one ndarray data buffer implements the accessor protocol.\n*\n* @private\n* @param {ndarrayLike} x - first ndarray\n* @param {ndarrayLike} y - second ndarray\n* @param {ndarrayLike} z - third ndarray\n* @returns {boolean} boolean indicating whether an ndarray data buffer implements the accessor protocol\n*/\nfunction hasAccessors( x, y, z ) {\n\treturn anyIsEntryIn( [ x, y, z ], 'accessorProtocol', true );\n}\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [ 0, 1, 2, 3 ] );\n*\n* var v = z.data;\n* // returns [ 650.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 1.0, 4.0 ], [ 9.0, 16.0 ] ], [ [ 25.0, 36.0 ], [ 49.0, 64.0 ] ], [ [ 81.0, 100.0 ], [ 121.0, 144.0 ] ] ]\n*/\nfunction binaryReduceStrided1d( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\tvar strategyX;\n\tvar strategyY;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar tmpx;\n\tvar tmpy;\n\tvar arr;\n\tvar len;\n\tvar shx;\n\tvar shy;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ioz;\n\tvar scx;\n\tvar scy;\n\tvar slx;\n\tvar sly;\n\tvar sz;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\tz = arr[ 2 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\n\t// Verify that both input arrays have the same shape:\n\tif ( shx.length !== shy.length ) {\n\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.', shx.length, shy.length ) );\n\t}\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shx[ i ] !== shy[ i ] ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same shape. First array shape: [%s]. Second array shape: [%s].', join( shx, ',' ), join( shy, ',' ) ) );\n\t\t}\n\t}\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tif ( z.shape.length !== K ) {\n\t\tthrow new Error( format( 'invalid argument. Output array must have the same number of non-reduced dimensions as input arrays. Input array shape: [%s]. Number of non-reduced dimensions: %d. Output array shape: [%s].', join( shx, ',' ), K, join( z.shape, ',' ) ) );\n\t}\n\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmpx = takeIndexed2( shx, x.strides, ldims );\n\ttmpy = takeIndexed2( shy, y.strides, ldims );\n\tshl = tmpx[ 0 ]; // tmpx[ 0 ] == tmpy[ 0 ]\n\tslx = tmpx[ 1 ];\n\tsly = tmpy[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmpx = takeIndexed2( shx, x.strides, d );\n\ttmpy = takeIndexed2( shy, y.strides, d );\n\tshc = tmpx[ 0 ]; // tmpx[ 0 ] == tmpy[ 0 ]\n\tscx = tmpx[ 1 ];\n\tscy = tmpy[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 2; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': scx,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t},\n\t\t{\n\t\t\t'dtype': y.dtype,\n\t\t\t'data': y.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': scy,\n\t\t\t'offset': y.offset,\n\t\t\t'order': y.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input arrays prior to performing a reduction:\n\tstrategyX = reshapeStrategy( views[ 0 ] );\n\tstrategyY = reshapeStrategy( views[ 1 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ K ]( fcn, arr, strategyX, strategyY, opts );\n\t\t}\n\t\treturn BINARY[ K ]( fcn, arr, strategyX, strategyY, opts );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ K ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BINARY[ K ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\tsz = z.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tz.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tslx = [ slx[i] ];\n\t\tsly = [ sly[i] ];\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ 1 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BINARY[ 1 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\tiox = iterationOrder( slx ); // +/-1\n\tioy = iterationOrder( sly ); // +/-1\n\tioz = iterationOrder( sz ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tordx = strides2order( slx );\n\tordy = strides2order( sly );\n\tordz = strides2order( sz );\n\tif ( iox !== 0 && ioy !== 0 && ioz !== 0 && ordx === ordz && ordy === ordz && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn ACCESSOR_BINARY[ K ]( fcn, arr, views, slx, sly, ordx === 1, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BINARY[ K ]( fcn, arr, views, slx, sly, ordx === 1, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( hasAccessors( x, y, z ) ) {\n\t\t\treturn BLOCKED_ACCESSOR_BINARY[ K-2 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_BINARY[ K-2 ]( fcn, arr, views, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( hasAccessors( x, y, z ) ) {\n\t\treturn accessorbinarynd( fcn, arr, views, strategyX, strategyY, opts );\n\t}\n\tbinarynd( fcn, arr, views, strategyX, strategyY, opts );\n}\n\n\n// EXPORTS //\n\nexport default binaryReduceStrided1d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var zbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [ 2, 2 ];\n* var zsh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary0d( gdot, [ x, y, z ], strategy, strategy, {} );\n*\n* var v = z.data;\n* // returns [ 30.0 ]\n*/\nfunction binary0d( fcn, arrays, strategyX, strategyY, opts ) {\n\tarrays[ 0 ] = strategyX( arrays[ 0 ] );\n\tarrays[ 1 ] = strategyY( arrays[ 1 ] );\n\tarrays[ 2 ].data[ arrays[ 2 ].offset ] = fcn( without( arrays, 2 ), opts );\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary1d( gdot, [ x, y, z ], views, [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binary1d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [\n\t\tstridesX[0],\n\t\tstridesY[0]\n\t];\n\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tzbuf[ iv[2] ] = fcn( v, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction binary2d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[1],\n\t\t\tstridesY[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] ),\n\t\t\tstridesY[0] - ( S0*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray 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( views[ 0 ] );\n\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction binary3d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[2],\n\t\t\tstridesY[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] ),\n\t\t\tstridesY[1] - ( S0*stridesY[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] ),\n\t\t\tstridesY[0] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary3d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction binary4d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[3],\n\t\t\tstridesY[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] ),\n\t\t\tstridesY[2] - ( S0*stridesY[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] ),\n\t\t\tstridesY[1] - ( S1*stridesY[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] ),\n\t\t\tstridesY[0] - ( S2*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary4d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction binary5d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[4],\n\t\t\tstridesY[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] ),\n\t\t\tstridesY[3] - ( S0*stridesY[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] ),\n\t\t\tstridesY[2] - ( S1*stridesY[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] ),\n\t\t\tstridesY[1] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] ),\n\t\t\tstridesY[0] - ( S3*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction binary6d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[5],\n\t\t\tstridesY[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] ),\n\t\t\tstridesY[4] - ( S0*stridesY[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] ),\n\t\t\tstridesY[3] - ( S1*stridesY[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] ),\n\t\t\tstridesY[2] - ( S2*stridesY[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] ),\n\t\t\tstridesY[1] - ( S3*stridesY[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] ),\n\t\t\tstridesY[0] - ( S4*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction binary7d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[6],\n\t\t\tstridesY[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] ),\n\t\t\tstridesY[5] - ( S0*stridesY[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] ),\n\t\t\tstridesY[4] - ( S1*stridesY[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] ),\n\t\t\tstridesY[3] - ( S2*stridesY[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] ),\n\t\t\tstridesY[2] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] ),\n\t\t\tstridesY[1] - ( S4*stridesY[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] ),\n\t\t\tstridesY[0] - ( S5*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary7d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction binary8d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[7],\n\t\t\tstridesY[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] ),\n\t\t\tstridesY[6] - ( S0*stridesY[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] ),\n\t\t\tstridesY[5] - ( S1*stridesY[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] ),\n\t\t\tstridesY[4] - ( S2*stridesY[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] ),\n\t\t\tstridesY[3] - ( S3*stridesY[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] ),\n\t\t\tstridesY[2] - ( S4*stridesY[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] ),\n\t\t\tstridesY[1] - ( S5*stridesY[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] ),\n\t\t\tstridesY[0] - ( S6*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary8d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction binary9d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[8],\n\t\t\tstridesY[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] ),\n\t\t\tstridesY[7] - ( S0*stridesY[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] ),\n\t\t\tstridesY[6] - ( S1*stridesY[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] ),\n\t\t\tstridesY[5] - ( S2*stridesY[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] ),\n\t\t\tstridesY[4] - ( S3*stridesY[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] ),\n\t\t\tstridesY[3] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] ),\n\t\t\tstridesY[2] - ( S5*stridesY[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] ),\n\t\t\tstridesY[1] - ( S6*stridesY[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] ),\n\t\t\tstridesY[0] - ( S7*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t]; // offset increment for innermost loop\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction binary10d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[9],\n\t\t\tstridesY[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] ),\n\t\t\tstridesY[8] - ( S0*stridesY[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] ),\n\t\t\tstridesY[7] - ( S1*stridesY[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] ),\n\t\t\tstridesY[6] - ( S2*stridesY[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] ),\n\t\t\tstridesY[5] - ( S3*stridesY[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] ),\n\t\t\tstridesY[4] - ( S4*stridesY[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] ),\n\t\t\tstridesY[3] - ( S5*stridesY[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] ),\n\t\t\tstridesY[2] - ( S6*stridesY[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] ),\n\t\t\tstridesY[1] - ( S7*stridesY[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] ),\n\t\t\tstridesY[0] - ( S8*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] ),\n\t\t\tstridesY[9] - ( S8*stridesY[8] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default binary10d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [ 2, 2 ];\n* var zsh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary0d( gdot, [ x, y, z ], strategy, strategy, {} );\n*\n* var v = z.data.get( 0 );\n* // returns 30.0\n*/\nfunction binary0d( fcn, arrays, strategyX, strategyY, opts ) {\n\tvar z = arrays[ 2 ];\n\tarrays[ 0 ] = strategyX( arrays[ 0 ] );\n\tarrays[ 1 ] = strategyY( arrays[ 1 ] );\n\tz.accessors[ 1 ]( z.data, z.offset, fcn( without( arrays, 2 ), opts ) );\n}\n\n\n// EXPORTS //\n\nexport default binary0d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n* var zsh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary1d( gdot, [ x, y, z ], views, [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ 30.0, 174.0, 446.0 ]\n*/\nfunction binary1d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [\n\t\tstridesX[0],\n\t\tstridesY[0]\n\t];\n\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\tset( zbuf, iv[2], fcn( v, opts ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary1d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction binary2d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[1],\n\t\t\tstridesY[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] ),\n\t\t\tstridesY[0] - ( S0*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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( views[ 0 ] );\n\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default binary2d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction binary3d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[2],\n\t\t\tstridesY[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] ),\n\t\t\tstridesY[1] - ( S0*stridesY[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] ),\n\t\t\tstridesY[0] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary3d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction binary4d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[3],\n\t\t\tstridesY[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] ),\n\t\t\tstridesY[2] - ( S0*stridesY[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] ),\n\t\t\tstridesY[1] - ( S1*stridesY[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] ),\n\t\t\tstridesY[0] - ( S2*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary4d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction binary5d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[4],\n\t\t\tstridesY[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] ),\n\t\t\tstridesY[3] - ( S0*stridesY[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] ),\n\t\t\tstridesY[2] - ( S1*stridesY[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] ),\n\t\t\tstridesY[1] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] ),\n\t\t\tstridesY[0] - ( S3*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction binary6d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[5],\n\t\t\tstridesY[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] ),\n\t\t\tstridesY[4] - ( S0*stridesY[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] ),\n\t\t\tstridesY[3] - ( S1*stridesY[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] ),\n\t\t\tstridesY[2] - ( S2*stridesY[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] ),\n\t\t\tstridesY[1] - ( S3*stridesY[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] ),\n\t\t\tstridesY[0] - ( S4*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction binary7d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[6],\n\t\t\tstridesY[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] ),\n\t\t\tstridesY[5] - ( S0*stridesY[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] ),\n\t\t\tstridesY[4] - ( S1*stridesY[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] ),\n\t\t\tstridesY[3] - ( S2*stridesY[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] ),\n\t\t\tstridesY[2] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] ),\n\t\t\tstridesY[1] - ( S4*stridesY[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] ),\n\t\t\tstridesY[0] - ( S5*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary7d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction binary8d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[7],\n\t\t\tstridesY[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] ),\n\t\t\tstridesY[6] - ( S0*stridesY[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] ),\n\t\t\tstridesY[5] - ( S1*stridesY[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] ),\n\t\t\tstridesY[4] - ( S2*stridesY[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] ),\n\t\t\tstridesY[3] - ( S3*stridesY[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] ),\n\t\t\tstridesY[2] - ( S4*stridesY[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] ),\n\t\t\tstridesY[1] - ( S5*stridesY[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] ),\n\t\t\tstridesY[0] - ( S6*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary8d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction binary9d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[8],\n\t\t\tstridesY[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] ),\n\t\t\tstridesY[7] - ( S0*stridesY[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] ),\n\t\t\tstridesY[6] - ( S1*stridesY[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] ),\n\t\t\tstridesY[5] - ( S2*stridesY[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] ),\n\t\t\tstridesY[4] - ( S3*stridesY[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] ),\n\t\t\tstridesY[3] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] ),\n\t\t\tstridesY[2] - ( S5*stridesY[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] ),\n\t\t\tstridesY[1] - ( S6*stridesY[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] ),\n\t\t\tstridesY[0] - ( S7*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* binary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction binary10d( fcn, arrays, views, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) {\n\tvar zbuf;\n\tvar set;\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 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 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 z;\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// Resolve the output ndarray and associated shape:\n\tz = arrays[ 2 ];\n\tsh = z.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[9],\n\t\t\tstridesY[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] ),\n\t\t\tstridesY[8] - ( S0*stridesY[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] ),\n\t\t\tstridesY[7] - ( S1*stridesY[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] ),\n\t\t\tstridesY[6] - ( S2*stridesY[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] ),\n\t\t\tstridesY[5] - ( S3*stridesY[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] ),\n\t\t\tstridesY[4] - ( S4*stridesY[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] ),\n\t\t\tstridesY[3] - ( S5*stridesY[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] ),\n\t\t\tstridesY[2] - ( S6*stridesY[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] ),\n\t\t\tstridesY[1] - ( S7*stridesY[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] ),\n\t\t\tstridesY[0] - ( S8*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0],\n\t\t\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] ),\n\t\t\tstridesY[9] - ( S8*stridesY[8] )\n\t\t];\n\t\tfor ( i = 2; 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// Cache a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default binary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction blockedbinary2d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction blockedbinary3d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary3d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction blockedbinary4d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary4d;\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-statements, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction blockedbinary5d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary5d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction blockedbinary6d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary6d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction blockedbinary7d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary8d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary9d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary10d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tzbuf[ iv[2] ] = fcn( v, opts );\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\nexport default blockedbinary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary2d( gdot, [ x, y, z ], views, [ 12, 4 ], [ 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction blockedbinary2d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary3d( gdot, [ x, y, z ], views, [ 12, 12, 4 ], [ 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ 30.0, 174.0, 446.0 ] ] ]\n*/\nfunction blockedbinary3d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary3d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary4d( gdot, [ x, y, z ], views, [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ]\n*/\nfunction blockedbinary4d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary4d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary5d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ]\n*/\nfunction blockedbinary5d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary5d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary6d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ]\n*/\nfunction blockedbinary6d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[1];\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary6d;\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, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary7d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ]\n*/\nfunction blockedbinary7d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary7d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary8d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary8d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary8d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary9d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary9d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary9d;\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, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in two input ndarrays and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} stridesX - loop dimension strides for the first input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the second input ndarray\n* @param {Function} strategyX - first input ndarray reshape strategy\n* @param {Function} strategyY - second input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var zbuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var zsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sz = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedbinary10d( gdot, [ x, y, z ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedbinary10d( fcn, arrays, views, stridesX, stridesY, strategyX, strategyY, opts ) {\n\tvar bsize;\n\tvar zbuf;\n\tvar set;\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 o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar v;\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\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( z.shape, stridesX, stridesY, z.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy, o.sz ];\n\tfor ( k = 3; 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, y.dtype, z.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 a reference to the output ndarray buffer:\n\tzbuf = z.data;\n\n\t// Cache accessors:\n\tset = z.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 1 ] = strategyY( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( zbuf, iv[ 2 ], fcn( v, opts ) );\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\nexport default blockedbinary10d;\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* 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 three ndarray-like objects, which are assumed to be two input ndarrays and one output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 3; 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\nexport default initializeViews;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Tests if a value is an empty collection.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is an empty collection\n*\n* @example\n* var bool = isEmptyCollection( [] );\n* // returns true\n*\n* @example\n* var bool = isEmptyCollection( { 'length': 0 } );\n* // returns true\n*\n* @example\n* var bool = isEmptyCollection( [ 1, 2, 3 ] );\n* // returns false\n*\n* @example\n* var bool = isEmptyCollection( {} );\n* // returns false\n*/\nfunction isEmptyCollection( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.length === 0\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isEmptyCollection;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isInteger from '@stdlib/math-base-assert-is-integer';\nimport MAX_LENGTH from '@stdlib/constants-array-max-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is array-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is array-like\n*\n* @example\n* var bool = isArrayLike( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLike( { 'length': 10 } );\n* // returns true\n*/\nfunction isArrayLike( value ) {\n\treturn (\n\t\tvalue !== void 0 &&\n\t\tvalue !== null &&\n\t\ttypeof value !== 'function' &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length <= MAX_LENGTH\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isArrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLike from '@stdlib/assert-is-array-like';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a function which tests if every element in an array-like object passes a test condition.\n*\n* @param {Function} predicate - function to apply\n* @throws {TypeError} must provide a function\n* @returns {Function} an array-like object function\n*\n* @example\n* import isOdd from '@stdlib/assert-is-odd';\n*\n* var arr1 = [ 1, 3, 5, 7 ];\n* var arr2 = [ 3, 5, 8 ];\n*\n* var validate = arraylikefcn( isOdd );\n*\n* var bool = validate( arr1 );\n* // returns true\n*\n* bool = validate( arr2 );\n* // returns false\n*/\nfunction arraylikefcn( predicate ) {\n\tif ( typeof predicate !== 'function' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a function. Value: `%s`.', predicate ) );\n\t}\n\treturn every;\n\n\t/**\n\t* Tests if every element in an array-like object passes a test condition.\n\t*\n\t* @private\n\t* @param {*} value - value to test\n\t* @returns {boolean} boolean indicating whether a value is an array-like object for which all elements pass a test condition\n\t*/\n\tfunction every( value ) {\n\t\tvar len;\n\t\tvar i;\n\t\tif ( !isArrayLike( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tlen = value.length;\n\t\tif ( len === 0 ) {\n\t\t\treturn false;\n\t\t}\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( predicate( value[ i ] ) === false ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default arraylikefcn;\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* Perform a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-binary-reduce-strided1d\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n* import binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* binaryReduceStrided1d( gdot, [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n* import binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var dot = binaryReduceStrided1d.factory( gdot );\n* // returns \n*\n* // Perform a reduction:\n* dot( [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import gdot from '@stdlib/blas-base-ndarray-gdot';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var zbuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n* var zsh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n*\n* // Create input ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': zsh,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var dot = factory( gdot );\n* // returns \n*\n* // Perform a reduction:\n* dot( [ x, y, z ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );\n* // returns [ [ 30.0, 174.0, 446.0 ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in two input ndarrays via a one-dimensional strided array binary reduction function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array-like object containing only functions.\n*\n* @module @stdlib/assert-is-function-array\n*\n* @example\n* import isFunctionArray from '@stdlib/assert-is-function-array';\n*\n* function beep() {}\n*\n* function boop() {}\n*\n* var bool = isFunctionArray( [ beep, boop ] );\n* // returns true\n*\n* bool = isFunctionArray( [ {}, beep ] );\n* // returns false\n*\n* bool = isFunctionArray( [] );\n* // returns false\n*/\n\n// MODULES //\n\nimport arrayfun from '@stdlib/assert-tools-array-like-function';\nimport isFunction from '@stdlib/assert-is-function';\n\n\n// MAIN //\n\nvar isFunctionArray = arrayfun( isFunction );\n\n\n// EXPORTS //\n\nexport default isFunctionArray;\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\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\n\n\n// MAIN //\n\n/**\n* Resolves a list of data type enumeration constants.\n*\n* ## Notes\n*\n* - If the function is unable to resolve an enumeration constant for a provided data type, the corresponding element in the returned array will be `null`.\n*\n* @param {Array} dtypes - list of data types\n* @returns {Array} results\n*\n* @example\n* var out = dtypes2enums( [ 'float32', 'float64' ] );\n* // returns [...]\n*\n* @example\n* var out = dtypes2enums( [ 'foo', 'bar' ] );\n* // returns [ null, null ]\n*/\nfunction dtypes2enums( dtypes ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tout.push( resolveEnum( dtypes[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2enums;\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\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\n\n\n// MAIN //\n\n/**\n* Resolves a list of data type strings.\n*\n* ## Notes\n*\n* - If the function is unable to resolve a data type string for a provided data type, the corresponding element in the returned array will be `null`.\n*\n* @param {Array} dtypes - list of data types\n* @returns {Array} results\n*\n* @example\n* var out = dtypes2strings( [ 'float32', 'float64' ] );\n* // returns [...]\n*\n* @example\n* var out = dtypes2strings( [ 'foo', 'bar' ] );\n* // returns [ null, null ]\n*/\nfunction dtypes2strings( dtypes ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < dtypes.length; i++ ) {\n\t\tout.push( resolveStr( dtypes[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2strings;\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\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport isSortedAscending from '@stdlib/array-base-assert-is-sorted-ascending';\nimport toNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport ones from '@stdlib/array-base-ones';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Expands the shape of an array to a specified dimensionality by spreading its dimensions to specified dimension indices and inserting dimensions of size one for the remaining dimensions.\n*\n* ## Notes\n*\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`. If provided a negative dimension index, the position at which to place a respective dimension is computed as `ndims + index`.\n* - Provided dimension indices must resolve to normalized dimension indices arranged in ascending order.\n*\n* @param {NonNegativeInteger} ndims - number of dimensions in the output array\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices at which to spread array dimensions\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} first argument must be greater than or equal to the number of dimensions in the input array\n* @throws {RangeError} must provide the same number of dimension indices as the number of dimensions in the input array\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @throws {Error} dimension indices must resolve to normalized dimension indices arranged in ascending order\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = spreadDimensions( 5, x, [ 1, 3 ], false );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 1, 2, 1, 2, 1 ]\n*\n* var v = y.get( 0, 0, 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 0, 1, 0 );\n* // returns 2\n*\n* v = y.get( 0, 1, 0, 0, 0 );\n* // returns 3\n*\n* v = y.get( 0, 1, 0, 1, 0 );\n* // returns 4\n*/\nfunction spreadDimensions( ndims, x, dims, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar isrm;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar S;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\tisrm = isRowMajor( ord );\n\n\tif ( sh.length > ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. First argument must be greater than or equal to the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `%d`.', sh.length, ndims ) );\n\t}\n\t// Resolve dimension indices...\n\td = toNormalizedIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', ndims, ndims-1, dims.join( ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', dims.join( ', ' ) ) );\n\t}\n\tif ( d.length !== sh.length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Must provide the same number of dimension indices as the number of dimensions in the input ndarray. Number of dimensions: %d. Value: `[%s]`.', sh.length, dims.join( ', ' ) ) );\n\t}\n\tif ( d.length && !isSortedAscending( d ) ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide dimension indices which resolve to nonnegative indices arranged in ascending order. Value: `[%s]`.', dims.join( ', ' ) ) );\n\t}\n\t// When provided a zero-dimensional array, every expanded dimension is a singleton dimension having zero stride...\n\tif ( sh.length === 0 ) {\n\t\tshape = ones( ndims );\n\t\tstrides = zeros( ndims );\n\t} else {\n\t\t// Interweave singleton dimensions...\n\t\tstrides = [];\n\t\tshape = [];\n\t\tj = 0;\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( i === d[ j ] ) {\n\t\t\t\t// If we have a match, we can move on to inserting singleton dimensions before the next dimension index...\n\t\t\t\tS = sh[ j ];\n\t\t\t\ts = st[ j ];\n\t\t\t\tj += 1;\n\t\t\t} else if ( j === sh.length ) { // append\n\t\t\t\t// We should only get here after exhausting all the dimension indices...\n\t\t\t\tS = 1;\n\t\t\t\ts = st[ j-1 ];\n\t\t\t\tif ( !isrm ) {\n\t\t\t\t\ts *= sh[ j-1 ];\n\t\t\t\t}\n\t\t\t} else { // insert before\n\t\t\t\t// We have yet to reach the next specified dimension index so we insert a singleton dimension...\n\t\t\t\tS = 1;\n\t\t\t\ts = st[ j ];\n\t\t\t\tif ( isrm ) {\n\t\t\t\t\ts *= sh[ j ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tshape.push( S );\n\t\t\tstrides.push( s );\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default spreadDimensions;\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\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorGetter from '@stdlib/array-base-accessor-getter';\nimport getter from '@stdlib/array-base-getter';\nimport dtype from '@stdlib/array-dtype';\n\n\n// MAIN //\n\n/**\n* Tests if an array is sorted in ascending order.\n*\n* @param {Collection} x - input array\n* @returns {boolean} boolean indicating if an array is sorted in ascending order\n*\n* @example\n* var out = isSortedAscending( [ 1, 2, 3 ] );\n* // returns true\n*\n* @example\n* var out = isSortedAscending( [ 3, 2, 1 ] );\n* // returns false\n*\n* @example\n* var out = isSortedAscending( [ 3, 3, 3 ] );\n* // returns true\n*\n* @example\n* var out = isSortedAscending( [ 3 ] );\n* // returns true\n*\n* @example\n* var out = isSortedAscending( [] );\n* // returns false\n*\n* @example\n* var out = isSortedAscending( [ 1, 3, 2 ] );\n* // returns false\n*/\nfunction isSortedAscending( x ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar v1;\n\tvar v2;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Check for an empty array:\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Loop over the elements...\n\tv1 = get( x, 0 );\n\tfor ( i = 1; i < len; i++ ) {\n\t\tv2 = get( x, i );\n\t\tif ( v1 > v2 ) {\n\t\t\treturn false;\n\t\t}\n\t\tv1 = v2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default isSortedAscending;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport numel from '@stdlib/ndarray-base-numel';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = empty( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = getShape( arr );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction empty( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar dt;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tdt = resolveStr( dtype );\n\tif ( dt === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dt );\n\t}\n\t// FIXME: add support for struct dtypes. Will need to do something similar to `array/empty` in so far as allocating an uninitialized array buffer, performing byte alignment, and creating a StructArray view atop the buffer.\n\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array-like object containing only nonnegative integers.\n*\n* @module @stdlib/assert-is-nonnegative-integer-array\n*\n* @example\n* import isNonNegativeIntegerArray from '@stdlib/assert-is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 3.0, new Number(3.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isNonNegativeIntegerArray } from '@stdlib/assert-is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 3.0, new Number(1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isNonNegativeIntegerArray } from '@stdlib/assert-is-nonnegative-integer-array';\n*\n* var bool = isNonNegativeIntegerArray( [ new Number(3.0), new Number(1.0) ] );\n* // returns true\n*\n* bool = isNonNegativeIntegerArray( [ 1.0, 0.0, 10.0 ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isNonNegativeInteger from '@stdlib/assert-is-nonnegative-integer';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isNonNegativeInteger.isPrimitive );\nvar isObjectArray = arrayfun( isNonNegativeInteger.isObject );\n\n\n// MAIN //\n\nvar isNonNegativeIntegerArray = arrayfun( isNonNegativeInteger );\nsetReadOnly( isNonNegativeIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isNonNegativeIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isNonNegativeIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if a value is an array-like object containing only integers.\n*\n* @module @stdlib/assert-is-integer-array\n*\n* @example\n* import isIntegerArray from '@stdlib/assert-is-integer-array';\n*\n* var bool = isIntegerArray( [ -3.0, new Number(0.0), 2.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, '3.0' ] );\n* // returns false\n*\n* @example\n* import { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\n*\n* var bool = isIntegerArray( [ -1.0, 10.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 5.0 ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -3.0, new Number(-1.0) ] );\n* // returns false\n*\n* @example\n* import { objects as isIntegerArray } from '@stdlib/assert-is-integer-array';\n*\n* var bool = isIntegerArray( [ new Number(1.0), new Number(3.0) ] );\n* // returns true\n*\n* bool = isIntegerArray( [ -1.0, 0.0, 3.0 ] );\n* // returns false\n*\n* bool = isIntegerArray( [ 3.0, new Number(-1.0) ] );\n* // returns false\n*/\n\n// MODULES //\n\nimport isInteger from '@stdlib/assert-is-integer';\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport arrayfun from '@stdlib/assert-tools-array-like-function';\n\n\n// VARIABLES //\n\nvar isPrimitiveArray = arrayfun( isInteger.isPrimitive );\nvar isObjectArray = arrayfun( isInteger.isObject );\n\n\n// MAIN //\n\nvar isIntegerArray = arrayfun( isInteger );\nsetReadOnly( isIntegerArray, 'primitives', isPrimitiveArray );\nsetReadOnly( isIntegerArray, 'objects', isObjectArray );\n\n\n// EXPORTS //\n\nexport default isIntegerArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Tests that a value is a valid constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {(Error|null)} error object or null\n*\n* @example\n* var ctor = function ctor() {};\n*\n* var err = validate( ctor );\n* // returns null\n*\n* err = validate( null );\n* // returns \n*/\nfunction validate( value ) {\n\tvar type = typeof value;\n\tif (\n\t\tvalue === null ||\n\t\t(type !== 'object' && type !== 'function')\n\t) {\n\t\treturn new TypeError( format( 'invalid argument. A provided constructor must be either an object (except null) or a function. Value: `%s`.', value ) );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// EXPORTS //\n\nexport default Object.create;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Dummy constructor.\n*\n* @private\n*/\nfunction Ctor() {\n\t// Empty...\n}\n\n\n// MAIN //\n\n/**\n* An `Object.create` shim for older JavaScript engines.\n*\n* @private\n* @param {Object} proto - prototype\n* @returns {Object} created object\n*\n* @example\n* var obj = createObject( Object.prototype );\n* // returns {}\n*/\nfunction createObject( proto ) {\n\tCtor.prototype = proto;\n\treturn new Ctor();\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport builtin from './native.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar createObject;\nif ( typeof builtin === 'function' ) {\n\tcreateObject = builtin;\n} else {\n\tcreateObject = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default createObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Restricts an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 5\n*/\nfunction clampIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\treturn 0;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default clampIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Wraps an index on the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 13, 10 );\n* // returns 2\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 6\n*/\nfunction wrapIndex( idx, max ) {\n\tvar mp1 = max + 1;\n\tif ( idx < 0 ) {\n\t\tidx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1\n\t\tif ( idx < 0 ) {\n\t\t\tidx %= mp1;\n\t\t\tif ( idx !== 0 ) {\n\t\t\t\tidx += mp1;\n\t\t\t}\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\tidx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)\n\t\tif ( idx > max ) {\n\t\t\tidx %= mp1;\n\t\t}\n\t\treturn idx;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default wrapIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport clampIndex from '@stdlib/ndarray-base-clamp-index';\nimport wrapIndex from '@stdlib/ndarray-base-wrap-index';\nimport normalize from '@stdlib/ndarray-base-normalize-index';\nimport isIndexMode from '@stdlib/ndarray-base-assert-is-index-mode';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'wrap': wrapIndex,\n\t'clamp': clampIndex,\n\t'normalize': normalizeIndex,\n\t'throw': throwIfOutOfBounds\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an index if within bounds and throw an error otherwise.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = throwIfOutOfBounds( 2, 9 );\n* // returns 2\n*\n* idx = throwIfOutOfBounds( 10, 9 );\n* // throws \n*\n* idx = throwIfOutOfBounds( -1, 9 );\n* // throws \n*/\nfunction throwIfOutOfBounds( idx, max ) {\n\tif ( idx < 0 || idx > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn idx;\n}\n\n/**\n* Normalizes an index before performing a strict bounds check.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( 1, 10 );\n* // returns 1\n*\n* idx = normalizeIndex( -4, 10 );\n* // returns 7\n*\n* idx = normalizeIndex( -100, 10 );\n* // throws \n*/\nfunction normalizeIndex( idx, max ) {\n\tvar index = normalize( idx, max );\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// MAIN //\n\n/**\n* Returns a function for returning an index according to a provided index mode.\n*\n* @param {string} mode - specifies how to handle an out-of-bounds index\n* @throws {TypeError} first argument must be a recognized index mode\n* @returns {Function} function for returning an index\n*\n* @example\n* var ind = factory( 'clamp' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 9\n*\n* idx = ind( -1, 9 );\n* // returns 0\n*\n* @example\n* var ind = factory( 'wrap' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 0\n*\n* idx = ind( -1, 9 );\n* // returns 9\n*\n* @example\n* var ind = factory( 'throw' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // throws \n*\n* idx = ind( -1, 9 );\n* // throws \n*\n* @example\n* var ind = factory( 'normalize' );\n*\n* var idx = ind( 1, 10 );\n* // returns 1\n*\n* idx = ind( -4, 10 );\n* // returns 7\n*\n* idx = ind( -100, 10 );\n* // throws \n*/\nfunction factory( mode ) {\n\tif ( !isIndexMode( mode ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized index mode. Value: `%s`.', mode ) );\n\t}\n\treturn TABLE[ mode ];\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport clampIndex from '@stdlib/ndarray-base-clamp-index';\nimport wrapIndex from '@stdlib/ndarray-base-wrap-index';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an index given an index mode.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @param {string} mode - specifies how to handle an index outside the interval `[0,max]`\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = ind( 2, 9, 'clamp' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'clamp' );\n* // returns 9\n*\n* idx = ind( -1, 9, 'clamp' );\n* // returns 0\n*\n* @example\n* var idx = ind( 2, 9, 'wrap' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'wrap' );\n* // returns 0\n*\n* idx = ind( -1, 9, 'wrap' );\n* // returns 9\n*\n* @example\n* var idx = ind( 2, 9, 'throw' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'throw' );\n* // throws \n*\n* idx = ind( -1, 9, 'throw' );\n* // throws \n*\n* @example\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*/\nfunction ind( idx, max, mode ) {\n\tvar index;\n\tif ( mode === 'clamp' ) {\n\t\treturn clampIndex( idx, max );\n\t}\n\tif ( mode === 'wrap' ) {\n\t\treturn wrapIndex( idx, max );\n\t}\n\tindex = idx;\n\tif ( mode === 'normalize' ) {\n\t\tindex = normalizeIndex( index, max );\n\t}\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// EXPORTS //\n\nexport default ind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an index given an index mode.\n*\n* @module @stdlib/ndarray-base-ind\n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( -1, 10, 'wrap' );\n* // returns 10\n*\n* idx = ind( 14, 10, 'wrap' );\n* // returns 3\n*\n* idx = ind( 6, 10, 'wrap' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( -1, 10, 'clamp' );\n* // returns 0\n*\n* idx = ind( 14, 10, 'clamp' );\n* // returns 10\n*\n* idx = ind( 6, 10, 'clamp' );\n* // returns 6\n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( 1, 10, 'throw' );\n* // returns 1\n*\n* idx = ind( 14, 10, 'throw' );\n* // throws \n*\n* idx = ind( -1, 10, 'throw' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*\n* @example\n* import ind from '@stdlib/ndarray-base-ind';\n*\n* var fcn = ind.factory( 'clamp' );\n*\n* var idx = fcn( -1, 10 );\n* // returns 0\n*\n* idx = fcn( 14, 10 );\n* // returns 10\n*\n* idx = fcn( 6, 10 );\n* // returns 6\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport parent from '@stdlib/ndarray-base-ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iget;\n\n\n// MAIN //\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\treturn base.call( this, idx );\n\t}\n\treturn base.call( this );\n}\n\n\n// EXPORTS //\n\nexport default iget;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// METHODS //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport parent from '@stdlib/ndarray-base-ctor'; // eslint-disable-line stdlib/no-redeclare\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iset;\n\n\n// MAIN //\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\tbase.call( this, idx, v );\n\t} else {\n\t\tbase.call( this, idx );\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default iset;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies the contents of array-like value to a new array.\n*\n* @private\n* @param {ArrayLike} arr - input array\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0 ];\n*\n* var out = copy( arr, arr.length );\n* // returns [ 1.0, 2.0, 3.0 ]\n*\n* var bool = ( arr === out );\n* // returns false\n*/\nfunction copy( arr, len ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport isCollection from '@stdlib/assert-is-collection';\nimport { primitives as isNonNegativeIntegerArray } from '@stdlib/assert-is-nonnegative-integer-array';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isFunction from '@stdlib/assert-is-function';\nimport isOrder from '@stdlib/ndarray-base-assert-is-order';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isBufferLengthCompatible from '@stdlib/ndarray-base-assert-is-buffer-length-compatible';\nimport numel from '@stdlib/ndarray-base-numel';\nimport parent from '@stdlib/ndarray-base-ctor'; // eslint-disable-line stdlib/no-redeclare\nimport defaults from '@stdlib/ndarray-defaults';\nimport inherit from '@stdlib/utils-inherit';\nimport format from '@stdlib/string-format';\nimport iget from './iget.js';\nimport iset from './iset.js';\nimport get from './get.js';\nimport set from './set.js';\nimport copy from './copy_array.js';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\n/*\n* See the following references:\n*\n* - https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept\n* - https://bugs.webkit.org/show_bug.cgi?id=80797\n* - https://github.com/numpy/numpy/issues/5744\n*\n* Note that the maximum number of function arguments can vary from engine to engine. Here, we choose something of a lowest common denominator which may **not** be valid everywhere.\n*/\nvar MAX_DIMS = 32767|0;\n\nvar INDEX_MODE = defaults.get( 'index_mode' );\nvar READONLY = false;\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar ndims;\n\tvar opts;\n\tvar err;\n\tvar sh;\n\tvar st;\n\n\tif ( !(this instanceof ndarray) ) {\n\t\tif ( arguments.length < 7 ) {\n\t\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order, options ); // eslint-disable-line max-len\n\t}\n\tif ( !isDataType( dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a supported ndarray data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( !isCollection( buffer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object, typed-array-like, or a Buffer. Value: `%s`.', buffer ) );\n\t} else if ( buffer.get && buffer.set && ( !isFunction( buffer.get ) || !isFunction( buffer.set ) ) ) { // eslint-disable-line max-len\n\t\tthrow new TypeError( format( 'invalid argument. Second argument `get` and `set` properties must be functions. Value: `%s`.', buffer ) );\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tif ( !isCollection( shape) || shape.length > 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t}\n\tndims = shape.length;\n\tif ( ndims > MAX_DIMS ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.', MAX_DIMS, ndims ) );\n\t}\n\tif ( !isIntegerArray( strides ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.', strides ) );\n\t}\n\tif ( ndims > 0 ) {\n\t\tif ( strides.length !== ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.', ndims, strides.length ) );\n\t\t}\n\t} else if ( strides.length !== 1 ) {\n\t\tthrow new RangeError( 'invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.' );\n\t} else if ( strides[ 0 ] !== 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.', strides[ 0 ] ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( !isOrder( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a supported order. Value: `%s`.', order ) );\n\t}\n\tif ( ndims > 0 && !isBufferLengthCompatible( buffer.length, shape, strides, offset ) && numel( shape ) > 0 ) { // eslint-disable-line max-len\n\t\tthrow new Error( 'invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.' );\n\t}\n\topts = {};\n\topts.mode = INDEX_MODE;\n\topts.readonly = READONLY;\n\tif ( arguments.length > 6 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tthis._mode = opts.mode;\n\tif ( opts.submode === void 0 ) {\n\t\topts.submode = [ this._mode ];\n\t}\n\tthis._submode = opts.submode;\n\n\t// Copy `shape` and `strides` to prevent external mutation:\n\tsh = copy( shape, ndims );\n\tst = copy( strides, ndims || 1 );\n\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, sh, st, offset, order );\n\tthis._flags.READONLY = opts.readonly;\n\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n// Inherit from the parent constructor:\ninherit( ndarray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', get );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', iget );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', set );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', iset );\n\n\n// EXPORTS //\n\nexport default ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport isIndexMode from '@stdlib/ndarray-base-assert-is-index-mode';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {string} [options.mode] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode] - specifies how to handle subscripts which exceed array dimensions\n* @param {boolean} [options.readonly] - boolean indicating whether an array should be read-only\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'clamp',\n* 'submode': [ 'throw', 'wrap', 'clamp' ]\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\topts.submode = options.submode;\n\t\tif ( !isArrayLikeObject( opts.submode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode ) );\n\t\t}\n\t\tif ( opts.submode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode.join( ',' ) ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.submode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.submode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. Each submode must be a recognized mode. Option: `%s`.', opts.submode[ i ] ) );\n\t\t\t}\n\t\t}\n\t\topts.submode = opts.submode.slice();\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\topts.readonly = options.readonly;\n\t\tif ( !isBoolean( opts.readonly ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', opts.readonly ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport defineProperty from '@stdlib/utils-define-property';\nimport format from '@stdlib/string-format';\nimport validate from './validate.js';\nimport createObject from './detect.js';\n\n\n// MAIN //\n\n/**\n* Implements prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.\n*\n* ## Notes\n*\n* - This implementation is not designed to work with ES2015/ES6 classes. For ES2015/ES6 classes, use `class` with `extends`.\n* - For reference, see [node#3455](https://github.com/nodejs/node/pull/3455), [node#4179](https://github.com/nodejs/node/issues/4179), [node#3452](https://github.com/nodejs/node/issues/3452), and [node commit](https://github.com/nodejs/node/commit/29da8cf8d7ab8f66b9091ab22664067d4468461e#diff-3deb3f32958bb937ae05c6f3e4abbdf5).\n*\n* @param {(Object|Function)} ctor - constructor which will inherit\n* @param {(Object|Function)} superCtor - super (parent) constructor\n* @throws {TypeError} first argument must be either an object or a function which can inherit\n* @throws {TypeError} second argument must be either an object or a function from which a constructor can inherit\n* @throws {TypeError} second argument must have an inheritable prototype\n* @returns {(Object|Function)} child constructor\n*\n* @example\n* function Foo() {\n* return this;\n* }\n* Foo.prototype.beep = function beep() {\n* return 'boop';\n* };\n*\n* function Bar() {\n* Foo.call( this );\n* return this;\n* }\n* inherit( Bar, Foo );\n*\n* var bar = new Bar();\n* var v = bar.beep();\n* // returns 'boop'\n*/\nfunction inherit( ctor, superCtor ) {\n\tvar err = validate( ctor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\terr = validate( superCtor );\n\tif ( err ) {\n\t\tthrow err;\n\t}\n\tif ( typeof superCtor.prototype === 'undefined' ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have a prototype from which another object can inherit. Value: `%s`.', superCtor.prototype ) );\n\t}\n\t// Create a prototype which inherits from the parent prototype:\n\tctor.prototype = createObject( superCtor.prototype );\n\n\t// Set the constructor to refer to the child constructor:\n\tdefineProperty( ctor.prototype, 'constructor', {\n\t\t'configurable': true,\n\t\t'enumerable': false,\n\t\t'writable': true,\n\t\t'value': ctor\n\t});\n\n\treturn ctor;\n}\n\n\n// EXPORTS //\n\nexport default inherit;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {*} array element\n*/\nfunction get() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( arguments.length !== this._ndims ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nexport default get;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport getIndex from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( arguments.length !== this._ndims+1 ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%i`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nexport default set;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isPlainObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport isArrayLike from '@stdlib/assert-is-array-like';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\nimport numel from '@stdlib/ndarray-base-numel';\nimport ndarray from '@stdlib/ndarray-ctor';\nimport defaults from '@stdlib/ndarray-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DTYPE = defaults.get( 'dtypes.default' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} shape - array shape\n* @param {Options} [options] - options\n* @param {string} [options.dtype='float64'] - data type\n* @param {string} [options.order='row-major'] - array order\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @throws {TypeError} first argument must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @throws {TypeError} `order` option must be a recognized array order\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = empty( [ 2, 2 ] );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float64'\n*/\nfunction empty( shape ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = DTYPE;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = ORDER;\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t} else {\n\t\tdtype = DTYPE;\n\t\torder = ORDER;\n\t}\n\tif ( isNumber( shape ) ) {\n\t\tsh = [ shape ];\n\t} else if ( isArrayLike( shape ) ) {\n\t\tsh = shape;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tif ( len !== len || len < 0 ) {\n\t\t\t// We should only get here if we've been provided an invalid shape (e.g., an array containing negative integers, etc)...\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\n\n\n// MAIN //\n\n/**\n* Copies the elements of an array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar get;\n\tvar i;\n\n\t// Resolve an accessor for retrieving input array elements:\n\tget = resolveGetter( x );\n\n\t// Get the number of elements to copy:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( get( x, i ) ); // ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\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* Inserts an element into an array.\n*\n* @param {Array} x - input array\n* @param {integer} index - element index\n* @param {*} value - value to insert\n* @returns {Array} mutated input array\n*\n* @example\n* var x = [ 1, 1, 2, 3, 3 ];\n*\n* var y = insertAt( x, -3, 4 );\n* // returns [ 1, 1, 4, 2, 3, 3 ]\n*\n* var bool = ( x === y );\n* // returns true\n*\n* @example\n* var x = [ 1, 1, 2, 3, 3 ];\n*\n* var y = insertAt( x, -1, 4 );\n* // returns [ 1, 1, 2, 3, 4, 3 ]\n*\n* var bool = ( x === y );\n* // returns true\n*\n* @example\n* var x = [ 1, 1, 2, 3, 3 ];\n*\n* var y = insertAt( x, x.length, 4 );\n* // returns [ 1, 1, 2, 3, 3, 4 ]\n*\n* var bool = ( x === y );\n* // returns true\n*/\nfunction insertAt( x, index, value ) {\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t\tif ( index < 0 ) {\n\t\t\tindex = 0;\n\t\t}\n\t} else if ( index > len ) {\n\t\tindex = len;\n\t}\n\tx.push( x[ len-1 ] );\n\tfor ( i = len-2; i >= index; i-- ) {\n\t\tx[ i+1 ] = x[ i ];\n\t}\n\tx[ index ] = value;\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default insertAt;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an object has a specified method.\n*\n* @private\n* @param {Object} obj - input object\n* @param {string} method - method name\n* @returns {boolean} boolean indicating whether an object has a specified method\n*\n* @example\n* var bool = hasMethod( [], 'every' );\n* // returns true\n*\n* @example\n* var bool = hasMethod( [], 'beep' );\n* // returns false\n*/\nfunction hasMethod( obj, method ) {\n\treturn ( typeof obj[ method ] === 'function' );\n}\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @private\n* @param {Collection} x - input array\n* @param {Function} predicate - test function\n* @param {*} thisArg - execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function isPositive( v ) {\n* return v > 0;\n* }\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = internal( x, isPositive );\n* // returns true\n*/\nfunction internal( x, predicate, thisArg ) {\n\tvar i;\n\tfor ( i = 0; i < x.length; i++ ) {\n\t\tif ( !predicate.call( thisArg, x[ i ], i, x ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Function} predicate - test function\n* @param {*} thisArg - execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* function isPositive( v ) {\n* return v > 0;\n* }\n*\n* var x = arraylike2object( toAccessorArray( [ 1, 2, 3, 4 ] ) );\n*\n* var out = accessors( x, isPositive );\n* // returns true\n*/\nfunction accessors( x, predicate, thisArg ) {\n\tvar data;\n\tvar get;\n\tvar i;\n\n\tdata = x.data;\n\tget = x.accessors[ 0 ];\n\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tif ( !predicate.call( thisArg, get( data, i ), i, data ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @param {Collection} x - input array\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function isPositive( v ) {\n* return v > 0;\n* }\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = everyBy( x, isPositive );\n* // returns true\n*/\nfunction everyBy( x, predicate, thisArg ) {\n\tvar obj;\n\tif ( hasMethod( x, 'every' ) ) {\n\t\treturn x.every( predicate, thisArg );\n\t}\n\tobj = arraylike2object( x );\n\tif ( obj.accessorProtocol ) {\n\t\treturn accessors( obj, predicate, thisArg );\n\t}\n\treturn internal( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default everyBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport DATA from './data.json';\n\n\n// MAIN //\n\n/**\n* Returns a list of BLAS memory layouts.\n*\n* @returns {StringArray} list of memory layouts\n*\n* @example\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\nfunction layouts() {\n\treturn DATA.slice();\n}\n\n\n// EXPORTS //\n\nexport default layouts;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of BLAS memory layouts.\n*\n* @module @stdlib/blas-base-layouts\n*\n* @example\n* import layouts from '@stdlib/blas-base-layouts';\n*\n* var list = layouts();\n* // e.g., returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported layouts to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 101`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of array objects.\n*\n* @returns {Object} object mapping supported layouts to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `layouts.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 101,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 102\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumerated;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport layouts from '@stdlib/blas-base-layouts';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a BLAS memory layout.\n*\n* @name isLayout\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a memory layout\n*\n* @example\n* var bool = isLayout( 'row-major' );\n* // returns true\n*\n* bool = isLayout( 'column-major' );\n* // returns true\n*\n* bool = isLayout( 'foo' );\n* // returns false\n*/\nvar isLayout = contains( layouts() );\n\n\n// EXPORTS //\n\nexport default isLayout;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the maximum value.\n*\n* @param {number} x - first number\n* @param {number} y - second number\n* @returns {number} maximum value\n*\n* @example\n* var v = max( 3.14, 4.2 );\n* // returns 4.2\n*\n* @example\n* var v = max( 3.14, NaN );\n* // returns NaN\n*\n* @example\n* var v = max( NaN, 3.14 );\n* // returns 3.14\n*\n* @example\n* var v = max( -0.0, +0.0 );\n* // returns +0.0\n*\n* @example\n* var v = max( +0.0, -0.0 );\n* // returns -0.0\n*/\nfunction max( x, y ) {\n\tif ( x > y ) {\n\t\treturn x;\n\t}\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default max;\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\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport ones from '@stdlib/array-base-ones';\nimport accessors from './accessors.js';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* ## Notes\n*\n* - If the function is provided an empty matrix or if the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @private\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Collection} A - input matrix\n* @param {integer} strideA1 - stride of the first dimension of `A`\n* @param {integer} strideA2 - stride of the second dimension of `A`\n* @param {NonNegativeInteger} offsetA - index offset for `A`\n* @param {Collection} x - search vector\n* @param {integer} strideX - stride length for `x`\n* @param {NonNegativeInteger} offsetX - index offset for `x`\n* @returns {integer} row index\n*\n* @example\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 2, 1, 0, x, 1, 0 );\n* // returns 1\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns 1\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 1.0, 2.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns 0\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 0.0, 0.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns 2\n*\n* @example\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ -3.0, -4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 1, 3, 0, x, 1, 0 );\n* // returns -1\n*/\nfunction gindexOfRow( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-len\n\tvar matches;\n\tvar da0;\n\tvar da1;\n\tvar S0;\n\tvar S1;\n\tvar ia;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar oa;\n\tvar ox;\n\n\t// Check whether the matrix is an empty matrix...\n\tif ( M <= 0 || N <= 0 ) {\n\t\treturn -1;\n\t}\n\toa = arraylike2object( A );\n\tox = arraylike2object( x );\n\tif ( oa.accessorProtocol || ox.accessorProtocol ) {\n\t\treturn accessors( M, N, oa, strideA1, strideA2, offsetA, ox, strideX, offsetX ); // eslint-disable-line max-len\n\t}\n\t// Search for the first row matching the search vector...\n\tif ( isRowMajor( [ strideA1, strideA2 ] ) ) {\n\t\tS0 = N;\n\t\tS1 = M;\n\n\t\t// Scan a row-major linear buffer from the first indexed element to the last indexed element, always moving in the same direction when both strides are the same sign, thus ensuring cache optimal traversal...\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tia = offsetA + ( i1*strideA1 );\n\t\t\tix = offsetX;\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( A[ ia ] !== x[ ix ] ) {\n\t\t\t\t\t// We found an element which is not in the search vector...\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tia += strideA2;\n\t\t\t\tix += strideX;\n\t\t\t}\n\t\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\t\tif ( i0 === S0 ) {\n\t\t\t\treturn i1;\n\t\t\t}\n\t\t}\n\t\t// If we've made it here, then no rows match the search vector:\n\t\treturn -1;\n\t}\n\t// Column-major...\n\tS0 = M;\n\tS1 = N;\n\n\t// Resolve loop offset (pointer) increments:\n\tda0 = strideA1;\n\tda1 = strideA2 - ( S0*strideA1 );\n\n\t// Create an array for tracking which rows contain matching elements:\n\tmatches = ones( M );\n\n\t// Finding the first matching row when a matrix is stored in column-major order requires effectively performing a full linear scan. In order to ensure cache-efficient traversal, scan down each column (otherwise, if we went row-by-row, we'd hop around linear memory, resulting in poor cache behavior)...\n\tia = offsetA;\n\tix = offsetX;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t// Scan down the rows in a column looking for a matching element...\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( A[ ia ] !== x[ ix ] ) {\n\t\t\t\t// We found a non-matching element, which means we can exclude this row from the list of row candidates...\n\t\t\t\tmatches[ i0 ] = 0;\n\t\t\t}\n\t\t\tia += da0;\n\t\t}\n\t\tia += da1;\n\t\tix += strideX;\n\t}\n\t// Search for the first matching row...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( matches[ i0 ] === 1 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn ( i0 === S0 ) ? -1 : i0;\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major';\nimport ones from '@stdlib/array-base-ones';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* ## Notes\n*\n* - If the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @private\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Object} A - input matrix object\n* @param {Collection} A.data - input matrix data\n* @param {Array} A.accessors - matrix element accessors\n* @param {integer} strideA1 - stride of the first dimension of `A`\n* @param {integer} strideA2 - stride of the second dimension of `A`\n* @param {NonNegativeInteger} offsetA - index offset for `A`\n* @param {Object} x - search vector object\n* @param {Collection} x.data - search vector data\n* @param {Array} x.accessors - search vector element accessors\n* @param {integer} strideX - stride length for `x`\n* @param {NonNegativeInteger} offsetX - index offset for `x`\n* @returns {integer} row index\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 2, 1, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 1\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 1\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 1.0, 2.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 0\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 0.0, 0.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns 2\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n*\n* var A = [ 1.0, 3.0, 0.0, 2.0, 4.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ -3.0, -4.0 ];\n*\n* var out = gindexOfRow( 3, 2, arraylike2object( toAccessorArray( A ) ), 1, 3, 0, arraylike2object( toAccessorArray( x ) ), 1, 0 );\n* // returns -1\n*/\nfunction gindexOfRow( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-len\n\tvar matches;\n\tvar abuf;\n\tvar xbuf;\n\tvar aget;\n\tvar xget;\n\tvar da0;\n\tvar da1;\n\tvar S0;\n\tvar S1;\n\tvar ia;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Cache references to array data:\n\tabuf = A.data;\n\txbuf = x.data;\n\n\t// Cache references to the element accessors:\n\taget = A.accessors[ 0 ];\n\txget = x.accessors[ 0 ];\n\n\t// Search for the first row matching the search vector...\n\tif ( isRowMajor( [ strideA1, strideA2 ] ) ) {\n\t\tS0 = N;\n\t\tS1 = M;\n\n\t\t// Scan a row-major linear buffer from the first indexed element to the last indexed element, always moving in the same direction when both strides are the same sign, thus ensuring cache optimal traversal...\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tia = offsetA + ( i1*strideA1 );\n\t\t\tix = offsetX;\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( aget( abuf, ia ) !== xget( xbuf, ix ) ) {\n\t\t\t\t\t// We found an element which is not in the search vector...\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tia += strideA2;\n\t\t\t\tix += strideX;\n\t\t\t}\n\t\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\t\tif ( i0 === S0 ) {\n\t\t\t\treturn i1;\n\t\t\t}\n\t\t}\n\t\t// If we've made it here, then no rows match the search vector:\n\t\treturn -1;\n\t}\n\t// Column-major...\n\tS0 = M;\n\tS1 = N;\n\n\t// Resolve loop offset (pointer) increments:\n\tda0 = strideA1;\n\tda1 = strideA2 - ( S0*strideA1 );\n\n\t// Create an array for tracking which rows contain matching elements:\n\tmatches = ones( M );\n\n\t// Finding the first matching row when a matrix is stored in column-major order requires effectively performing a full linear scan. In order to ensure cache-efficient traversal, scan down each column (otherwise, if we went row-by-row, we'd hop around linear memory, resulting in poor cache behavior)...\n\tia = offsetA;\n\tix = offsetX;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t// Scan down the rows in a column looking for a matching element...\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( aget( abuf, ia ) !== xget( xbuf, ix ) ) {\n\t\t\t\t// We found a non-matching element, which means we can exclude this row from the list of row candidates...\n\t\t\t\tmatches[ i0 ] = 0;\n\t\t\t}\n\t\t\tia += da0;\n\t\t}\n\t\tia += da1;\n\t\tix += strideX;\n\t}\n\t// Search for the first matching row...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( matches[ i0 ] === 1 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn ( i0 === S0 ) ? -1 : i0;\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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\nimport base from './base.js';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector using alternative indexing semantics.\n*\n* ## Notes\n*\n* - If the function is provided an empty matrix or if the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Collection} A - input matrix\n* @param {integer} strideA1 - stride of the first dimension of `A`\n* @param {integer} strideA2 - stride of the second dimension of `A`\n* @param {NonNegativeInteger} offsetA - index offset for `A`\n* @param {Collection} x - search vector\n* @param {integer} strideX - stride length for `x`\n* @param {NonNegativeInteger} offsetX - index offset for `x`\n* @returns {integer} row index\n*\n* @example\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 3, 2, A, 2, 1, 0, x, 1, 0 );\n* // returns 1\n*/\nfunction gindexOfRow( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX ) { // eslint-disable-line max-len\n\treturn base( M, N, A, strideA1, strideA2, offsetA, x, strideX, offsetX );\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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* Return the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* @module @stdlib/blas-ext-base-gindex-of-row\n*\n* @example\n* import gindexOfRow from '@stdlib/blas-ext-base-gindex-of-row';\n*\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 'row-major', 3, 2, A, 2, x, 1 );\n* // returns 1\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport ndarray from './ndarray.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'ndarray', ndarray );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport isLayout from '@stdlib/blas-base-assert-is-layout';\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport stride2offset from '@stdlib/strided-base-stride2offset';\nimport max from '@stdlib/math-base-special-fast-max';\nimport format from '@stdlib/string-format';\nimport base from './base.js';\n\n\n// MAIN //\n\n/**\n* Returns the index of the first row in an input matrix which has the same elements as a provided search vector.\n*\n* ## Notes\n*\n* - If the function is provided an empty matrix or if the function is unable to find a search vector, the function returns `-1` (i.e., an invalid index).\n*\n* @param {string} order - storage layout\n* @param {PositiveInteger} M - number of rows in `A`\n* @param {PositiveInteger} N - number of columns in `A`\n* @param {Collection} A - input matrix\n* @param {integer} LDA - stride of the first dimension of `A` (a.k.a., leading dimension of the matrix `A`)\n* @param {Collection} x - search vector\n* @param {integer} strideX - stride length for `x`\n* @throws {TypeError} first argument must be a valid order\n* @throws {RangeError} fifth argument must be greater than or equal to max(1,N)\n* @returns {integer} row index\n*\n* @example\n* var A = [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0 ]; // => [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 0.0, 0.0 ] ]\n* var x = [ 3.0, 4.0 ];\n*\n* var out = gindexOfRow( 'row-major', 3, 2, A, 2, x, 1 );\n* // returns 1\n*/\nfunction gindexOfRow( order, M, N, A, LDA, x, strideX ) {\n\tvar sa1;\n\tvar sa2;\n\tvar s;\n\tif ( !isLayout( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a valid order. Value: `%s`.', order ) );\n\t}\n\tif ( isRowMajor( order ) ) {\n\t\ts = N;\n\t} else {\n\t\ts = M;\n\t}\n\tif ( LDA < max( 1, s ) ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fifth argument must be greater than or equal to max(1,%d). Value: `%d`.', s, LDA ) );\n\t}\n\tif ( isColumnMajor( order ) ) {\n\t\tsa1 = 1;\n\t\tsa2 = LDA;\n\t} else { // order === 'row-major'\n\t\tsa1 = LDA;\n\t\tsa2 = 1;\n\t}\n\treturn base( M, N, A, sa1, sa2, 0, x, strideX, stride2offset( N, strideX ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default gindexOfRow;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {*} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = resolveStr( options.dtype );\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), options.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this, max-lines, id-length, no-warning-comments */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport isEqualDataType from '@stdlib/ndarray-base-assert-is-equal-data-type';\nimport contains from '@stdlib/array-base-assert-contains';\nimport binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\nimport binaryOutputDataType from '@stdlib/ndarray-base-binary-output-dtype';\nimport binaryInputCastingDataType from '@stdlib/ndarray-base-binary-input-casting-dtype';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport dtypes2strings from '@stdlib/ndarray-base-dtypes2strings';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from '@stdlib/ndarray-defaults';\nimport DEFAULTS from './defaults.json';\nimport validate from './validate.js';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on two input ndarrays.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {ArrayLikeObject} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each input ndarray argument\n* @param {ArrayLikeObject} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {BinaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = new BinaryStrided1dDispatch( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var z = dot.apply( x, y );\n* // returns [ -5.0 ]\n*/\nfunction BinaryStrided1dDispatch( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof BinaryStrided1dDispatch ) ) {\n\t\treturn new BinaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tidtypes = copy( idtypes );\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t\tidtypes[ i ] = dtypes2strings( dt );\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\todtypes = dtypes2strings( odtypes );\n\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== 2 * this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. Two input ndarray data types must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on two provided input ndarrays.\n*\n* @name apply\n* @memberof BinaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - first input ndarray\n* @param {ndarrayLike} y - second input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {*} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} second argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = new BinaryStrided1dDispatch( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var z = dot.apply( x, y );\n* // returns [ -5.0 ]\n*/\nsetReadOnly( BinaryStrided1dDispatch.prototype, 'apply', function apply( x, y ) {\n\tvar options;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar shz;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar zdt;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar z;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\tif ( !isndarrayLike( y ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', y ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], resolveStr( xdt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\tydt = getDType( y );\n\tif ( !contains( this._idtypes[ 1 ], resolveStr( ydt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 1 ], '\", \"' ), ydt ) );\n\t}\n\targs = [ x, y ];\n\tfor ( i = 2; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], resolveStr( dt ) ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Verify that both input arrays have the same shape:\n\tshx = getShape( x );\n\tshy = getShape( y );\n\tif ( shx.length !== shy.length ) {\n\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.', shx.length, shy.length ) );\n\t}\n\tN = shx.length;\n\tfor ( j = 0; j < N; j++ ) {\n\t\tif ( shx[ j ] !== shy[ j ] ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same shape. First array shape: [%s]. Second array shape: [%s].', join( shx, ',' ), join( shy, ',' ) ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\topts = objectAssign( {}, DEFAULTS );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the input ndarrays across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshz = takeIndexed( shx, idx );\n\n\t// Resolve the output array order:\n\tordx = getOrder( x );\n\tordy = getOrder( y );\n\tif ( ordx === ordy ) {\n\t\tordz = ordx;\n\t} else {\n\t\t// When the orders differ, fall back to the default order:\n\t\tordz = DEFAULT_ORDER;\n\t}\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions:\n\tzdt = opts.dtype || binaryOutputDataType( xdt, ydt, this._policies.output );\n\tz = empty( shz, {\n\t\t'dtype': zdt,\n\t\t'order': ordz\n\t});\n\n\t// Determine whether we need to cast the input ndarrays...\n\tdt = binaryInputCastingDataType( xdt, ydt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( xdt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, ordx );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\tdt = binaryInputCastingDataType( ydt, xdt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( ydt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shy, ordy );\n\t\tassign( [ y, tmp ] );\n\t\targs[ 1 ] = tmp;\n\t\tydt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data types:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tbinaryReduceStrided1d( f, insertAt( args, 2, z ), opts.dims );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\tz = spreadDimensions( N, z, idx, true );\n\t}\n\treturn z;\n});\n\n/**\n* Performs a reduction on two provided input ndarrays and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof BinaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - first input ndarray\n* @param {ndarrayLike} y - second input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} second argument must be an ndarray\n* @throws {TypeError} second argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = new BinaryStrided1dDispatch( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var zbuf = [ 0.0 ];\n* var z = new ndarray( 'generic', zbuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = dot.assign( x, y, z );\n* // returns [ -5.0 ]\n*\n* var bool = ( out === z );\n* // returns true\n*/\nsetReadOnly( BinaryStrided1dDispatch.prototype, 'assign', function assign( x, y ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar shx;\n\tvar shy;\n\tvar xdt;\n\tvar ydt;\n\tvar zdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar z;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\tif ( !isndarrayLike( y ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', y ) );\n\t}\n\t// Validate the input ndarray data types in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], resolveStr( xdt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\tydt = getDType( y );\n\tif ( !contains( this._idtypes[ 1 ], resolveStr( ydt ) ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 1 ], '\", \"' ), ydt ) );\n\t}\n\t// Verify that both input arrays have the same shape:\n\tshx = getShape( x );\n\tshy = getShape( y );\n\tif ( shx.length !== shy.length ) {\n\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same number of dimensions. First array dimensions: %d. Second array dimensions: %d.', shx.length, shy.length ) );\n\t}\n\tN = shx.length;\n\tfor ( j = 0; j < N; j++ ) {\n\t\tif ( shx[ j ] !== shy[ j ] ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input arrays must have the same shape. First array shape: [%s]. Second array shape: [%s].', join( shx, ',' ), join( shy, ',' ) ) );\n\t\t}\n\t}\n\targs = [ x, y ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 2; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 3 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an ndarray-like object. Value: `%s`.', arguments[ 2 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\tz = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 2; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], resolveStr( dt ) ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, DEFAULTS );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the input arrays across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarrays...\n\tzdt = getDType( z );\n\tdt = binaryInputCastingDataType( xdt, ydt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( xdt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\tdt = binaryInputCastingDataType( ydt, xdt, zdt, this._policies.casting );\n\tif ( !isEqualDataType( ydt, dt ) ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shy, getOrder( y ) );\n\t\tassign( [ y, tmp ] );\n\t\targs[ 1 ] = tmp;\n\t\tydt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tbinaryReduceStrided1d( f, insertAt( args, 2, z ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn z;\n});\n\n\n// EXPORTS //\n\nexport default BinaryStrided1dDispatch;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\n\n\n// MAIN //\n\n/**\n* Normalizes a list of indices to the interval `[0,max]`.\n*\n* @param {IntegerArray} indices - indices\n* @param {NonNegativeInteger} max - maximum index\n* @returns {(IntegerArray|null)} normalized indices or null\n*\n* @example\n* var idx = normalizeIndices( [ -2, 5 ], 10 );\n* // returns [ 9, 5 ]\n*\n* idx = normalizeIndices( [ 15 ], 10 );\n* // returns null\n*/\nfunction normalizeIndices( indices, max ) {\n\tvar idx;\n\tvar flg;\n\tvar i;\n\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tidx = normalizeIndex( indices[ i ], max );\n\t\tif ( idx === -1 ) {\n\t\t\tflg = null;\n\t\t}\n\t\tindices[ i ] = idx;\n\t}\n\treturn ( flg === null ) ? flg : indices;\n}\n\n\n// EXPORTS //\n\nexport default normalizeIndices;\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\nimport copy from '@stdlib/array-base-copy';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport normalizeIndices from '@stdlib/ndarray-base-normalize-indices';\nimport join from '@stdlib/array-base-join';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an input ndarray to a target shape while keeping a list of specified dimensions unchanged.\n*\n* ## Notes\n*\n* - The function expects that each index in the list of dimensions is negative in order to ensure that indices correspond to the same relative position in the output ndarray shape. For example, given an input ndarray shape `[2,X1,X2]` and a desired shape `[6,7,2,Y1,Y2]`, a list of negative dimensions `[-2,-1]` correctly maps the unchanged dimensions `X` in the input ndarray to ignored dimensions `Y` in the provided target shape. Nonnegative indices, however, afford no such mapping. For example, the list of dimensions `[1,2]` corresponds to `[X1,X2]` in the input ndarray shape, but to `[7,2]` in the target shape, which is not desired. By expecting negative indices, we avoid confusion and ensure that users always refer to dimensions relative to the last broadcasted dimension.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @param {NegativeIntegerArray} dims - list of dimensions to exclude from broadcasting\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} broadcasted dimensions in the input array and desired shape must be broadcast compatible\n* @throws {RangeError} dimension indices must not exceed desired shape bounds\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import getShape from '@stdlib/ndarray-shape';\n*\n* var x = array( [ [ 1, 2, 3 ] ] );\n* // returns \n*\n* var shx = getShape( x );\n* // returns [ 1, 3 ]\n*\n* var y = broadcastArrayExceptDimensions( x, [ 2, 2, 3 ], [ -2 ] );\n* // returns \n*\n* var shy = getShape( y );\n* // returns [ 2, 1, 3 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 0, 0, 2 );\n* // returns 3\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 2 );\n* // returns 3\n*/\nfunction broadcastArrayExceptDimensions( arr, shape, dims ) { // eslint-disable-line id-length\n\tvar strides;\n\tvar idx;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar dl;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\t// Copy input arguments to avoid unintended mutation:\n\tshape = copy( shape );\n\tidx = copy( dims );\n\n\t// Resolve the shape of the input array:\n\tsh = getShape( arr, false );\n\n\tN = shape.length;\n\tM = sh.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Initialize a strides array:\n\tstrides = zeros( N );\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tdl = idx.length;\n\tidx = normalizeIndices( idx, M-1 );\n\tif ( idx === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\tidx.sort(); // sort in ascending order\n\tif ( idx.length !== dl ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\tk = idx.length - 1;\n\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\t// Moving from right-to-left, resolve an index into the input array shape:\n\t\tj = M - N + i; // M-1, M-2, M-3, ..., M-M, ..., M-N with N >= M\n\n\t\t// For prepended singleton dimensions, the stride is zero...\n\t\tif ( j < 0 ) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Check for a dimension being held constant...\n\t\tif ( k >= 0 && idx[ k ] === j ) {\n\t\t\tshape[ i ] = sh[ j ];\n\t\t\tstrides[ i ] = st[ j ];\n\t\t\tk -= 1;\n\t\t\tcontinue;\n\t\t}\n\t\t// Broadcast the current dimension...\n\t\td = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), shape, strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default broadcastArrayExceptDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Broadcasts array shapes to a single shape.\n*\n* ## Notes\n*\n* - Two respective dimensions in two shape arrays are compatible if\n*\n* 1. the dimensions are equal.\n* 2. one dimension is `1`.\n*\n* - The function returns `null` if provided incompatible shapes (i.e., shapes which cannot be broadcast with one another).\n*\n* @param {Array} shapes - array of shape arrays\n* @returns {(NonNegativeIntegerArray|null)} broadcast shape (or `null`)\n*\n* @example\n* var shapes = [\n* [ 8, 1, 6, 1 ],\n* [ 7, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 4 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 15, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 1, 7, 1, 5 ],\n* [ 8, 4, 1, 6, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 4, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 0 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 1, 1, 6, 0 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 0, 1, 6, 1 ]\n*\n* @example\n* var shapes = [\n* [ 8, 8, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* [ 8, 0, 1, 6, 1 ],\n* [ 8, 8, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [ 3, 2, 1 ],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*\n* @example\n* var shapes = [\n* [],\n* [ 3, 2, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*/\nfunction broadcastShapes( shapes ) {\n\tvar ndims;\n\tvar out;\n\tvar dim;\n\tvar sh;\n\tvar n1;\n\tvar n2;\n\tvar d;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tM = shapes.length;\n\tout = [];\n\tif ( M === 0 ) {\n\t\treturn out;\n\t}\n\tsh = shapes[ 0 ];\n\tN = sh.length;\n\n\t// If provided a single input shape array, then the broadcast shape is input shape...\n\tif ( M === 1 ) {\n\t\t// Need to manually copy to output shape, as shapes could be array-like objects...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( sh[ i ] );\n\t\t}\n\t\treturn out;\n\t}\n\t// Determine the maximum dimensionality...\n\tndims = [ N ];\n\tfor ( i = 1; i < M; i++ ) {\n\t\tndims.push( shapes[ i ].length );\n\t\tif ( ndims[ i ] > N ) {\n\t\t\tN = ndims[ i ];\n\t\t}\n\t}\n\t// Initialize the output array...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( 0 );\n\t}\n\t// Compute the broadcast shape...\n\ti = N - 1;\n\twhile ( i >= 0 ) {\n\t\tn1 = ndims[ 0 ] - N + i;\n\t\tif ( n1 >= 0 ) {\n\t\t\tdim = sh[ n1 ];\n\t\t} else {\n\t\t\tdim = 1;\n\t\t}\n\t\tfor ( j = 1; j < M; j++ ) {\n\t\t\tn2 = ndims[ j ] - N + i;\n\t\t\tif ( n2 >= 0 ) {\n\t\t\t\td = shapes[ j ][ n2 ];\n\t\t\t} else {\n\t\t\t\td = 1;\n\t\t\t}\n\t\t\tif ( dim === 1 ) {\n\t\t\t\tdim = d;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( d === 1 || dim === d ) {\n\t\t\t\t// When either `d` is `1` or `d` equals the current output shape dimension, the current output shape dimension remains the same...\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// The current shape cannot be broadcast against one of the other shapes...\n\t\t\treturn null;\n\t\t}\n\t\tout[ i ] = dim;\n\t\ti -= 1;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default broadcastShapes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from ndarray data buffer constructors to data types...\nvar dtypes = {\n\t'Buffer': 'binary',\n\t'Float16Array': 'float16',\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Object': 'generic',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex32Array': 'complex32',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128',\n\t'BooleanArray': 'bool'\n};\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Float64Array from '@stdlib/array-float64';\nimport Float32Array from '@stdlib/array-float32';\nimport Uint32Array from '@stdlib/array-uint32';\nimport Int32Array from '@stdlib/array-int32';\nimport Uint16Array from '@stdlib/array-uint16';\nimport Int16Array from '@stdlib/array-int16';\nimport Uint8Array from '@stdlib/array-uint8';\nimport Uint8ClampedArray from '@stdlib/array-uint8c';\nimport Int8Array from '@stdlib/array-int8';\nimport Complex64Array from '@stdlib/array-complex64';\nimport Complex128Array from '@stdlib/array-complex128';\nimport BooleanArray from '@stdlib/array-bool';\n\n\n// FUNCTIONS //\n\n/**\n* Throws an error.\n*\n* @private\n* @throws {Error} not implemented\n*/\nfunction notImplemented() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [ // eslint-disable-line vars-on-top\n\tFloat64Array,\n\tFloat32Array,\n\tnotImplemented, // FIXME: replace with `Float16Array` once implemented\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tnotImplemented, // FIXME: replace with `Complex32Array` once implemented\n\tComplex64Array,\n\tComplex128Array,\n\tBooleanArray\n];\n\n\n// EXPORTS //\n\nexport default CTORS;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport objectInverse from '@stdlib/object-inverse';\nimport dtypeChar from '@stdlib/ndarray-base-dtype-char';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a provided single letter abbreviation.\n*\n* @param {string} ch - single letter character abbreviation\n* @returns {(Object|string|null)} data type string\n*\n* @example\n* var obj = char2dtype();\n* // returns {...}\n*\n* @example\n* var out = char2dtype( 'd' );\n* // returns 'float64'\n*\n* out = char2dtype( '(' );\n* // returns null\n*/\nfunction char2dtype( ch ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn objectInverse( dtypeChar() );\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = objectInverse( dtypeChar() );\n\t}\n\treturn TABLE[ ch ] || null;\n}\n\n\n// EXPORTS //\n\nexport default char2dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'float16',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex32',\n\t'complex64',\n\t'complex128',\n\t'bool'\n];\n\n\n// EXPORTS //\n\nexport default DTYPES;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isStructConstructorLike from '@stdlib/assert-is-struct-constructor-like';\nimport isBuffer from '@stdlib/assert-is-buffer';\nimport isArray from '@stdlib/assert-is-array';\nimport constructorName from '@stdlib/utils-constructor-name';\nimport ctor2dtype from './ctor2dtype.js';\nimport CTORS from './ctors.js';\nimport DTYPES from './dtypes.js';\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an ndarray data buffer.\n*\n* @param {*} value - input value\n* @returns {(string|Function|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn 'binary';\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\tif ( value && isStructConstructorLike( value.struct ) ) {\n\t\treturn value.struct;\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeros from '@stdlib/array-base-zeros';\nimport defaults from '@stdlib/ndarray-defaults';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults.get( 'order' );\n\n\n// FUNCTIONS //\n\n/**\n* Resolves a storage layout string from a layout integer.\n*\n* @private\n* @param {NonNegativeInteger} layout - layout integer\n* @returns {string} layout string\n*\n* @example\n* var order = resolveString( 0 );\n* // returns \n*\n* @example\n* var order = resolveString( 1 );\n* // returns 'row-major'\n*\n* @example\n* var order = resolveString( 2 );\n* // returns 'column-major'\n*\n* @example\n* var order = resolveString( 3 );\n* // returns \n*/\nfunction resolveString( layout ) {\n\tif ( layout === 1 ) {\n\t\treturn 'row-major';\n\t}\n\tif ( layout === 2 ) {\n\t\treturn 'column-major';\n\t}\n\t// layout === 0 || layout === 3\n\treturn DEFAULT_ORDER;\n}\n\n\n// MAIN //\n\n/**\n* Resolves the most common underlying storage layout.\n*\n* @param {ArrayLikeObject} strides - list of strides array\n* @returns {string} storage layout\n*\n* @example\n* var strides = [ [ 2, 1 ], [ 4, 1 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns 'row-major'\n*\n* @example\n* var strides = [ [ 1, 2 ], [ 1, 4 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns 'column-major'\n*\n* @example\n* var strides = [ [ 2, 1 ], [ 1, 4 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns \n*\n* @example\n* var strides = [ [ 1, 1 ], [ 1, 1 ] ];\n*\n* var order = consensusOrder( strides );\n* // returns \n*/\nfunction consensusOrder( strides ) {\n\tvar tmp;\n\tvar M;\n\tvar N;\n\tvar i;\n\n\tN = strides.length;\n\n\t// Initialize an array for grouping stride arrays according to memory layout:\n\ttmp = zeros( 4 ); // note: `4` corresponds to the number of possible return values from `strides2order`\n\tM = tmp.length;\n\n\t// Group stride arrays according to memory layout:\n\tfor ( i = 0; i < N; i++ ) {\n\t\ttmp[ strides2order( strides[ i ] ) ] += 1;\n\t}\n\t// Determine which array should be used to determine the consensus order:\n\tif ( tmp[ 0 ] === N ) {\n\t\t// If all arrays are \"disorganized\", then fallback to the default order:\n\t\treturn DEFAULT_ORDER;\n\t}\n\tif ( tmp[ 0 ] === N-1 ) {\n\t\t// If all but one array is \"disorganized\", find the \"organized\" array...\n\t\tfor ( i = 1; i < M; i++ ) {\n\t\t\tif ( tmp[ i ] > 0 ) {\n\t\t\t\treturn resolveString( i );\n\t\t\t}\n\t\t}\n\t}\n\t// We've got at least two \"organized\" arrays; find the layout which is most common...\n\tif ( tmp[ 1 ] > tmp[ 2 ] ) {\n\t\treturn resolveString( 1 );\n\t}\n\tif ( tmp[ 1 ] < tmp[ 2 ] ) {\n\t\treturn resolveString( 2 );\n\t}\n\t// tmp[ 1 ] === tmp[ 2 ]\n\treturn DEFAULT_ORDER;\n}\n\n\n// EXPORTS //\n\nexport default consensusOrder;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsynd( x );\n* // returns 1\n*/\nfunction countFalsynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsynd( x );\n* // returns 1\n*/\nfunction countFalsynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsynd( x );\n* // returns 1\n*/\nfunction countFalsynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorcount2d from './2d_blocked_accessors.js';\nimport blockedaccessorcount3d from './3d_blocked_accessors.js';\nimport blockedaccessorcount4d from './4d_blocked_accessors.js';\nimport blockedaccessorcount5d from './5d_blocked_accessors.js';\nimport blockedaccessorcount6d from './6d_blocked_accessors.js';\nimport blockedaccessorcount7d from './7d_blocked_accessors.js';\nimport blockedaccessorcount8d from './8d_blocked_accessors.js';\nimport blockedaccessorcount9d from './9d_blocked_accessors.js';\nimport blockedaccessorcount10d from './10d_blocked_accessors.js';\nimport blockedcomplexcount2d from './2d_blocked_complex.js';\nimport blockedcomplexcount3d from './3d_blocked_complex.js';\nimport blockedcomplexcount4d from './4d_blocked_complex.js';\nimport blockedcomplexcount5d from './5d_blocked_complex.js';\nimport blockedcomplexcount6d from './6d_blocked_complex.js';\nimport blockedcomplexcount7d from './7d_blocked_complex.js';\nimport blockedcomplexcount8d from './8d_blocked_complex.js';\nimport blockedcomplexcount9d from './9d_blocked_complex.js';\nimport blockedcomplexcount10d from './10d_blocked_complex.js';\nimport blockedcount2d from './2d_blocked.js';\nimport blockedcount3d from './3d_blocked.js';\nimport blockedcount4d from './4d_blocked.js';\nimport blockedcount5d from './5d_blocked.js';\nimport blockedcount6d from './6d_blocked.js';\nimport blockedcount7d from './7d_blocked.js';\nimport blockedcount8d from './8d_blocked.js';\nimport blockedcount9d from './9d_blocked.js';\nimport blockedcount10d from './10d_blocked.js';\nimport accessorcount0d from './0d_accessors.js';\nimport accessorcount1d from './1d_accessors.js';\nimport accessorcount2d from './2d_accessors.js';\nimport accessorcount3d from './3d_accessors.js';\nimport accessorcount4d from './4d_accessors.js';\nimport accessorcount5d from './5d_accessors.js';\nimport accessorcount6d from './6d_accessors.js';\nimport accessorcount7d from './7d_accessors.js';\nimport accessorcount8d from './8d_accessors.js';\nimport accessorcount9d from './9d_accessors.js';\nimport accessorcount10d from './10d_accessors.js';\nimport accessorcountnd from './nd_accessors.js';\nimport complexcount0d from './0d_complex.js';\nimport complexcount1d from './1d_complex.js';\nimport complexcount2d from './2d_complex.js';\nimport complexcount3d from './3d_complex.js';\nimport complexcount4d from './4d_complex.js';\nimport complexcount5d from './5d_complex.js';\nimport complexcount6d from './6d_complex.js';\nimport complexcount7d from './7d_complex.js';\nimport complexcount8d from './8d_complex.js';\nimport complexcount9d from './9d_complex.js';\nimport complexcount10d from './10d_complex.js';\nimport complexcountnd from './nd_complex.js';\nimport count0d from './0d.js';\nimport count1d from './1d.js';\nimport count2d from './2d.js';\nimport count3d from './3d.js';\nimport count4d from './4d.js';\nimport count5d from './5d.js';\nimport count6d from './6d.js';\nimport count7d from './7d.js';\nimport count8d from './8d.js';\nimport count9d from './9d.js';\nimport count10d from './10d.js';\nimport countnd from './nd.js';\n\n\n// VARIABLES //\n\nvar COUNT = [\n\tcount0d,\n\tcount1d,\n\tcount2d,\n\tcount3d,\n\tcount4d,\n\tcount5d,\n\tcount6d,\n\tcount7d,\n\tcount8d,\n\tcount9d,\n\tcount10d\n];\nvar ACCESSOR_COUNT = [\n\taccessorcount0d,\n\taccessorcount1d,\n\taccessorcount2d,\n\taccessorcount3d,\n\taccessorcount4d,\n\taccessorcount5d,\n\taccessorcount6d,\n\taccessorcount7d,\n\taccessorcount8d,\n\taccessorcount9d,\n\taccessorcount10d\n];\nvar COMPLEX_COUNT = [\n\tcomplexcount0d,\n\tcomplexcount1d,\n\tcomplexcount2d,\n\tcomplexcount3d,\n\tcomplexcount4d,\n\tcomplexcount5d,\n\tcomplexcount6d,\n\tcomplexcount7d,\n\tcomplexcount8d,\n\tcomplexcount9d,\n\tcomplexcount10d\n];\nvar BLOCKED_COUNT = [\n\tblockedcount2d, // 0\n\tblockedcount3d,\n\tblockedcount4d,\n\tblockedcount5d,\n\tblockedcount6d,\n\tblockedcount7d,\n\tblockedcount8d,\n\tblockedcount9d,\n\tblockedcount10d // 8\n];\nvar BLOCKED_ACCESSOR_COUNT = [\n\tblockedaccessorcount2d, // 0\n\tblockedaccessorcount3d,\n\tblockedaccessorcount4d,\n\tblockedaccessorcount5d,\n\tblockedaccessorcount6d,\n\tblockedaccessorcount7d,\n\tblockedaccessorcount8d,\n\tblockedaccessorcount9d,\n\tblockedaccessorcount10d // 8\n];\nvar BLOCKED_COMPLEX_COUNT = [\n\tblockedcomplexcount2d, // 0\n\tblockedcomplexcount3d,\n\tblockedcomplexcount4d,\n\tblockedcomplexcount5d,\n\tblockedcomplexcount6d,\n\tblockedcomplexcount7d,\n\tblockedcomplexcount8d,\n\tblockedcomplexcount9d,\n\tblockedcomplexcount10d // 8\n];\nvar MAX_DIMS = COUNT.length - 1;\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy( [ x ] );\n* // returns 1\n*/\nfunction countFalsy( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn 0;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t}\n\t\treturn COUNT[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_COUNT[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorcountnd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexcountnd( x );\n\t}\n\treturn countnd( x );\n}\n\n\n// EXPORTS //\n\nexport default countFalsy;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 0.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy0d( x );\n* // returns 1\n*/\nfunction countFalsy0d( x ) {\n\tif ( !x.data[ x.offset ] ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy0d;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy1d( x );\n* // returns 1\n*/\nfunction countFalsy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy2d( x );\n* // returns 1\n*/\nfunction countFalsy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy3d( x );\n* // returns 1\n*/\nfunction countFalsy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy4d( x );\n* // returns 1\n*/\nfunction countFalsy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy5d( x );\n* // returns 1\n*/\nfunction countFalsy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy6d( x );\n* // returns 1\n*/\nfunction countFalsy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy7d( x );\n* // returns 1\n*/\nfunction countFalsy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy8d( x );\n* // returns 1\n*/\nfunction countFalsy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy9d( x );\n* // returns 1\n*/\nfunction countFalsy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy10d( x );\n* // returns 1\n*/\nfunction countFalsy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy10d;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 0.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy0d( x );\n* // returns 1\n*/\nfunction countFalsy0d( x ) {\n\tif ( !x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy0d;\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* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy1d( x );\n* // returns 1\n*/\nfunction countFalsy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy2d( x );\n* // returns 1\n*/\nfunction countFalsy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy3d( x );\n* // returns 1\n*/\nfunction countFalsy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy4d( x );\n* // returns 1\n*/\nfunction countFalsy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy5d( x );\n* // returns 1\n*/\nfunction countFalsy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy6d( x );\n* // returns 1\n*/\nfunction countFalsy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy7d( x );\n* // returns 1\n*/\nfunction countFalsy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy8d( x );\n* // returns 1\n*/\nfunction countFalsy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy9d( x );\n* // returns 1\n*/\nfunction countFalsy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countFalsy10d( x );\n* // returns 1\n*/\nfunction countFalsy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy10d;\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* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 0.0, 0.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy0d( x );\n* // returns 1\n*/\nfunction countFalsy0d( x ) {\n\tif ( !( x.data[ x.offset ] || x.data[ x.offset+1 ] ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy0d;\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* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy1d( x );\n* // returns 1\n*/\nfunction countFalsy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy2d( x );\n* // returns 1\n*/\nfunction countFalsy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy3d( x );\n* // returns 1\n*/\nfunction countFalsy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy4d( x );\n* // returns 1\n*/\nfunction countFalsy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy5d( x );\n* // returns 1\n*/\nfunction countFalsy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy6d( x );\n* // returns 1\n*/\nfunction countFalsy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy7d( x );\n* // returns 1\n*/\nfunction countFalsy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy8d( x );\n* // returns 1\n*/\nfunction countFalsy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy9d( x );\n* // returns 1\n*/\nfunction countFalsy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countFalsy10d( x );\n* // returns 1\n*/\nfunction countFalsy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countFalsy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy2d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy3d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy4d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy5d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy6d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy7d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy8d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy9d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy10d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy2d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy3d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy4d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy5d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy6d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy7d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy8d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy9d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy10d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy2d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy3d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy4d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy5d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy6d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy7d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy8d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy9d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of falsy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 0.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountFalsy10d( x );\n* // returns 1\n*/\nfunction blockedCountFalsy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountFalsy10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIfnd( x, predicate );\n* // returns 3\n*/\nfunction countIfnd( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIfnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIfnd( x, predicate );\n* // returns 3\n*/\nfunction countIfnd( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIfnd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorcount2d from './2d_blocked_accessors.js';\nimport blockedaccessorcount3d from './3d_blocked_accessors.js';\nimport blockedaccessorcount4d from './4d_blocked_accessors.js';\nimport blockedaccessorcount5d from './5d_blocked_accessors.js';\nimport blockedaccessorcount6d from './6d_blocked_accessors.js';\nimport blockedaccessorcount7d from './7d_blocked_accessors.js';\nimport blockedaccessorcount8d from './8d_blocked_accessors.js';\nimport blockedaccessorcount9d from './9d_blocked_accessors.js';\nimport blockedaccessorcount10d from './10d_blocked_accessors.js';\nimport blockedcount2d from './2d_blocked.js';\nimport blockedcount3d from './3d_blocked.js';\nimport blockedcount4d from './4d_blocked.js';\nimport blockedcount5d from './5d_blocked.js';\nimport blockedcount6d from './6d_blocked.js';\nimport blockedcount7d from './7d_blocked.js';\nimport blockedcount8d from './8d_blocked.js';\nimport blockedcount9d from './9d_blocked.js';\nimport blockedcount10d from './10d_blocked.js';\nimport accessorcount0d from './0d_accessors.js';\nimport accessorcount1d from './1d_accessors.js';\nimport accessorcount2d from './2d_accessors.js';\nimport accessorcount3d from './3d_accessors.js';\nimport accessorcount4d from './4d_accessors.js';\nimport accessorcount5d from './5d_accessors.js';\nimport accessorcount6d from './6d_accessors.js';\nimport accessorcount7d from './7d_accessors.js';\nimport accessorcount8d from './8d_accessors.js';\nimport accessorcount9d from './9d_accessors.js';\nimport accessorcount10d from './10d_accessors.js';\nimport accessorcountnd from './nd_accessors.js';\nimport count0d from './0d.js';\nimport count1d from './1d.js';\nimport count2d from './2d.js';\nimport count3d from './3d.js';\nimport count4d from './4d.js';\nimport count5d from './5d.js';\nimport count6d from './6d.js';\nimport count7d from './7d.js';\nimport count8d from './8d.js';\nimport count9d from './9d.js';\nimport count10d from './10d.js';\nimport countnd from './nd.js';\n\n\n// VARIABLES //\n\nvar COUNT = [\n\tcount0d,\n\tcount1d,\n\tcount2d,\n\tcount3d,\n\tcount4d,\n\tcount5d,\n\tcount6d,\n\tcount7d,\n\tcount8d,\n\tcount9d,\n\tcount10d\n];\nvar ACCESSOR_COUNT = [\n\taccessorcount0d,\n\taccessorcount1d,\n\taccessorcount2d,\n\taccessorcount3d,\n\taccessorcount4d,\n\taccessorcount5d,\n\taccessorcount6d,\n\taccessorcount7d,\n\taccessorcount8d,\n\taccessorcount9d,\n\taccessorcount10d\n];\nvar BLOCKED_COUNT = [\n\tblockedcount2d, // 0\n\tblockedcount3d,\n\tblockedcount4d,\n\tblockedcount5d,\n\tblockedcount6d,\n\tblockedcount7d,\n\tblockedcount8d,\n\tblockedcount9d,\n\tblockedcount10d // 8\n];\nvar BLOCKED_ACCESSOR_COUNT = [\n\tblockedaccessorcount2d, // 0\n\tblockedaccessorcount3d,\n\tblockedaccessorcount4d,\n\tblockedaccessorcount5d,\n\tblockedaccessorcount6d,\n\tblockedaccessorcount7d,\n\tblockedaccessorcount8d,\n\tblockedaccessorcount9d,\n\tblockedaccessorcount10d // 8\n];\nvar MAX_DIMS = COUNT.length - 1;\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf( [ x ], predicate );\n* // returns 5\n*/\nfunction countIf( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn COUNT[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn 0;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn COUNT[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_COUNT[ ndims-2 ]( x, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_COUNT[ ndims-2 ]( x, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorcountnd( x, predicate, thisArg );\n\t}\n\treturn countnd( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default countIf;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf0d( x, predicate );\n* // returns 1\n*/\nfunction countIf0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countIf0d;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf1d( x, predicate );\n* // returns 3\n*/\nfunction countIf1d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf2d( x, predicate );\n* // returns 3\n*/\nfunction countIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf3d( x, predicate );\n* // returns 5\n*/\nfunction countIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf4d( x, predicate );\n* // returns 5\n*/\nfunction countIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf5d( x, predicate );\n* // returns 5\n*/\nfunction countIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf6d( x, predicate );\n* // returns 5\n*/\nfunction countIf6d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf7d( x, predicate );\n* // returns 5\n*/\nfunction countIf7d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf8d( x, predicate );\n* // returns 5\n*/\nfunction countIf8d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf9d( x, predicate );\n* // returns 5\n*/\nfunction countIf9d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countIf10d( x, predicate );\n* // returns 5\n*/\nfunction countIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf10d;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf0d( x, predicate );\n* // returns 1\n*/\nfunction countIf0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countIf0d;\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* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf1d( x, predicate );\n* // returns 3\n*/\nfunction countIf1d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf2d( x, predicate );\n* // returns 3\n*/\nfunction countIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf3d( x, predicate );\n* // returns 7\n*/\nfunction countIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf4d( x, predicate );\n* // returns 7\n*/\nfunction countIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf5d( x, predicate );\n* // returns 7\n*/\nfunction countIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf6d( x, predicate );\n* // returns 7\n*/\nfunction countIf6d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf7d( x, predicate );\n* // returns 7\n*/\nfunction countIf7d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf8d( x, predicate );\n* // returns 7\n*/\nfunction countIf8d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf9d( x, predicate );\n* // returns 7\n*/\nfunction countIf9d( x, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countIf10d( x, predicate );\n* // returns 7\n*/\nfunction countIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countIf10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf2d( x, predicate );\n* // returns 3\n*/\nfunction blockedCountIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf3d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf4d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf5d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf6d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf7d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf8d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf9d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf10d( x, predicate );\n* // returns 5\n*/\nfunction blockedCountIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf2d( x, predicate );\n* // returns 3\n*/\nfunction blockedCountIf2d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf3d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf3d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf4d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf4d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf5d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf5d( x, predicate, thisArg ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf6d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf7d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf8d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf9d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Counts the number of elements in an ndarray which pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {integer} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountIf10d( x, predicate );\n* // returns 7\n*/\nfunction blockedCountIf10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountIf10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthynd( x );\n* // returns 4\n*/\nfunction countTruthynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthynd( x );\n* // returns 4\n*/\nfunction countTruthynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthynd( x );\n* // returns 4\n*/\nfunction countTruthynd( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorcount2d from './2d_blocked_accessors.js';\nimport blockedaccessorcount3d from './3d_blocked_accessors.js';\nimport blockedaccessorcount4d from './4d_blocked_accessors.js';\nimport blockedaccessorcount5d from './5d_blocked_accessors.js';\nimport blockedaccessorcount6d from './6d_blocked_accessors.js';\nimport blockedaccessorcount7d from './7d_blocked_accessors.js';\nimport blockedaccessorcount8d from './8d_blocked_accessors.js';\nimport blockedaccessorcount9d from './9d_blocked_accessors.js';\nimport blockedaccessorcount10d from './10d_blocked_accessors.js';\nimport blockedcomplexcount2d from './2d_blocked_complex.js';\nimport blockedcomplexcount3d from './3d_blocked_complex.js';\nimport blockedcomplexcount4d from './4d_blocked_complex.js';\nimport blockedcomplexcount5d from './5d_blocked_complex.js';\nimport blockedcomplexcount6d from './6d_blocked_complex.js';\nimport blockedcomplexcount7d from './7d_blocked_complex.js';\nimport blockedcomplexcount8d from './8d_blocked_complex.js';\nimport blockedcomplexcount9d from './9d_blocked_complex.js';\nimport blockedcomplexcount10d from './10d_blocked_complex.js';\nimport blockedcount2d from './2d_blocked.js';\nimport blockedcount3d from './3d_blocked.js';\nimport blockedcount4d from './4d_blocked.js';\nimport blockedcount5d from './5d_blocked.js';\nimport blockedcount6d from './6d_blocked.js';\nimport blockedcount7d from './7d_blocked.js';\nimport blockedcount8d from './8d_blocked.js';\nimport blockedcount9d from './9d_blocked.js';\nimport blockedcount10d from './10d_blocked.js';\nimport accessorcount0d from './0d_accessors.js';\nimport accessorcount1d from './1d_accessors.js';\nimport accessorcount2d from './2d_accessors.js';\nimport accessorcount3d from './3d_accessors.js';\nimport accessorcount4d from './4d_accessors.js';\nimport accessorcount5d from './5d_accessors.js';\nimport accessorcount6d from './6d_accessors.js';\nimport accessorcount7d from './7d_accessors.js';\nimport accessorcount8d from './8d_accessors.js';\nimport accessorcount9d from './9d_accessors.js';\nimport accessorcount10d from './10d_accessors.js';\nimport accessorcountnd from './nd_accessors.js';\nimport complexcount0d from './0d_complex.js';\nimport complexcount1d from './1d_complex.js';\nimport complexcount2d from './2d_complex.js';\nimport complexcount3d from './3d_complex.js';\nimport complexcount4d from './4d_complex.js';\nimport complexcount5d from './5d_complex.js';\nimport complexcount6d from './6d_complex.js';\nimport complexcount7d from './7d_complex.js';\nimport complexcount8d from './8d_complex.js';\nimport complexcount9d from './9d_complex.js';\nimport complexcount10d from './10d_complex.js';\nimport complexcountnd from './nd_complex.js';\nimport count0d from './0d.js';\nimport count1d from './1d.js';\nimport count2d from './2d.js';\nimport count3d from './3d.js';\nimport count4d from './4d.js';\nimport count5d from './5d.js';\nimport count6d from './6d.js';\nimport count7d from './7d.js';\nimport count8d from './8d.js';\nimport count9d from './9d.js';\nimport count10d from './10d.js';\nimport countnd from './nd.js';\n\n\n// VARIABLES //\n\nvar COUNT = [\n\tcount0d,\n\tcount1d,\n\tcount2d,\n\tcount3d,\n\tcount4d,\n\tcount5d,\n\tcount6d,\n\tcount7d,\n\tcount8d,\n\tcount9d,\n\tcount10d\n];\nvar ACCESSOR_COUNT = [\n\taccessorcount0d,\n\taccessorcount1d,\n\taccessorcount2d,\n\taccessorcount3d,\n\taccessorcount4d,\n\taccessorcount5d,\n\taccessorcount6d,\n\taccessorcount7d,\n\taccessorcount8d,\n\taccessorcount9d,\n\taccessorcount10d\n];\nvar COMPLEX_COUNT = [\n\tcomplexcount0d,\n\tcomplexcount1d,\n\tcomplexcount2d,\n\tcomplexcount3d,\n\tcomplexcount4d,\n\tcomplexcount5d,\n\tcomplexcount6d,\n\tcomplexcount7d,\n\tcomplexcount8d,\n\tcomplexcount9d,\n\tcomplexcount10d\n];\nvar BLOCKED_COUNT = [\n\tblockedcount2d, // 0\n\tblockedcount3d,\n\tblockedcount4d,\n\tblockedcount5d,\n\tblockedcount6d,\n\tblockedcount7d,\n\tblockedcount8d,\n\tblockedcount9d,\n\tblockedcount10d // 8\n];\nvar BLOCKED_ACCESSOR_COUNT = [\n\tblockedaccessorcount2d, // 0\n\tblockedaccessorcount3d,\n\tblockedaccessorcount4d,\n\tblockedaccessorcount5d,\n\tblockedaccessorcount6d,\n\tblockedaccessorcount7d,\n\tblockedaccessorcount8d,\n\tblockedaccessorcount9d,\n\tblockedaccessorcount10d // 8\n];\nvar BLOCKED_COMPLEX_COUNT = [\n\tblockedcomplexcount2d, // 0\n\tblockedcomplexcount3d,\n\tblockedcomplexcount4d,\n\tblockedcomplexcount5d,\n\tblockedcomplexcount6d,\n\tblockedcomplexcount7d,\n\tblockedcomplexcount8d,\n\tblockedcomplexcount9d,\n\tblockedcomplexcount10d // 8\n];\nvar MAX_DIMS = COUNT.length - 1;\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy( [ x ] );\n* // returns 6\n*/\nfunction countTruthy( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn 0;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t}\n\t\treturn COUNT[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t}\n\t\treturn COUNT[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ 1 ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_COUNT[ ndims ]( x );\n\t\t\t}\n\t\t\treturn COUNT[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_COUNT[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_COUNT[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorcountnd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexcountnd( x );\n\t}\n\treturn countnd( x );\n}\n\n\n// EXPORTS //\n\nexport default countTruthy;\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\nimport dtypeStrings from '@stdlib/ndarray-base-dtype-strings';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\nimport objectAssign from '@stdlib/object-assign';\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Creates an object mapping supported data type strings to data type objects.\n*\n* @private\n* @returns {Object} object mapping supported data type strings to data type objects\n*/\nfunction createTable() {\n\tvar out;\n\tvar dt;\n\tvar i;\n\n\tdt = dtypeStrings();\n\n\tout = {};\n\tfor ( i = 0; i < dt.length; i++ ) {\n\t\tout[ dt[ i ] ] = new DataType( dt[ i ] );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to data type objects.\n*\n* @returns {Object} object mapping supported data type strings to data type objects\n*\n* @example\n* var table = dtypeObjects();\n* // returns {...}\n*/\nfunction dtypeObjects() {\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = createTable(); // lazily create the table\n\t}\n\treturn objectAssign( {}, TABLE );\n}\n\n\n// EXPORTS //\n\nexport default dtypeObjects;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy0d( x );\n* // returns 1\n*/\nfunction countTruthy0d( x ) {\n\tif ( x.data[ x.offset ] ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy0d;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy1d( x );\n* // returns 4\n*/\nfunction countTruthy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy2d( x );\n* // returns 4\n*/\nfunction countTruthy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy3d( x );\n* // returns 6\n*/\nfunction countTruthy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy4d( x );\n* // returns 6\n*/\nfunction countTruthy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy5d( x );\n* // returns 6\n*/\nfunction countTruthy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy6d( x );\n* // returns 6\n*/\nfunction countTruthy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy7d( x );\n* // returns 6\n*/\nfunction countTruthy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy8d( x );\n* // returns 6\n*/\nfunction countTruthy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy9d( x );\n* // returns 6\n*/\nfunction countTruthy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy10d( x );\n* // returns 6\n*/\nfunction countTruthy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy10d;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy0d( x );\n* // returns 1\n*/\nfunction countTruthy0d( x ) {\n\tif ( x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy0d;\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* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy1d( x );\n* // returns 4\n*/\nfunction countTruthy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy2d( x );\n* // returns 4\n*/\nfunction countTruthy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy3d( x );\n* // returns 4\n*/\nfunction countTruthy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy4d( x );\n* // returns 4\n*/\nfunction countTruthy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy5d( x );\n* // returns 4\n*/\nfunction countTruthy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy6d( x );\n* // returns 4\n*/\nfunction countTruthy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy7d( x );\n* // returns 4\n*/\nfunction countTruthy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy8d( x );\n* // returns 4\n*/\nfunction countTruthy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy9d( x );\n* // returns 4\n*/\nfunction countTruthy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = countTruthy10d( x );\n* // returns 4\n*/\nfunction countTruthy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy10d;\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* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy0d( x );\n* // returns 1\n*/\nfunction countTruthy0d( x ) {\n\tif ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy0d;\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* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy1d( x );\n* // returns 4\n*/\nfunction countTruthy1d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\tcount += 1;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy2d( x );\n* // returns 4\n*/\nfunction countTruthy2d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy3d( x );\n* // returns 4\n*/\nfunction countTruthy3d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy4d( x );\n* // returns 4\n*/\nfunction countTruthy4d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy5d( x );\n* // returns 4\n*/\nfunction countTruthy5d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy6d( x );\n* // returns 4\n*/\nfunction countTruthy6d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy7d( x );\n* // returns 4\n*/\nfunction countTruthy7d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy8d( x );\n* // returns 4\n*/\nfunction countTruthy8d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy9d( x );\n* // returns 4\n*/\nfunction countTruthy9d( x ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = countTruthy10d( x );\n* // returns 4\n*/\nfunction countTruthy10d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default countTruthy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy2d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy3d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy4d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy5d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy6d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy7d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy8d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy9d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy10d( x );\n* // returns 6\n*/\nfunction blockedCountTruthy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy2d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy3d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy4d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy5d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy6d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy7d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy8d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy9d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy10d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy2d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy2d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy3d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy3d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy4d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy4d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy5d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy5d( x ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy6d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy6d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy7d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy7d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy8d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy8d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy9d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy9d( x ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Counts the number of truthy elements in a reinterpreted complex number ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {NonNegativeInteger} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = blockedCountTruthy10d( x );\n* // returns 4\n*/\nfunction blockedCountTruthy10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] || xbuf[ ix+1 ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn count;\n}\n\n\n// EXPORTS //\n\nexport default blockedCountTruthy10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isArrayLikeObject from '@stdlib/assert-is-array-like-object';\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Transforms a list of array argument data types into a list of signatures.\n*\n* @param {ArrayLikeObject} dtypes - list of array argument data types\n* @param {NonNegativeInteger} nin - number of input array arguments\n* @param {NonNegativeInteger} nout - number of output array arguments\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {RangeError} first argument must contain at least one element\n* @throws {RangeError} length of the first argument is incompatible with the second and third arguments\n* @returns {StringArray} list of signatures\n*\n* @example\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 1, 1 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\n*/\nfunction dtypes2signatures( dtypes, nin, nout ) {\n\tvar len;\n\tvar out;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar m;\n\n\tif ( !isArrayLikeObject( dtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', dtypes ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tlen = dtypes.length;\n\tif ( len === 0 ) {\n\t\tthrow new RangeError( 'invalid argument. First argument must contain at least one element.' );\n\t}\n\tN = nin + nout;\n\tif ( len%N !== 0 ) {\n\t\tthrow new RangeError( 'invalid arguments. Length of the first argument is incompatible with the second and third arguments.' );\n\t}\n\tout = [];\n\n\t// Create a temporary array for storing signatures...\n\ttmp = [];\n\n\t// [ '(', , ', ', ..., ') => (', , ', ', ..., ')' ] => 1+nin+nin-1+1+nout+nout-1+1 => 1 + (2*nin) + (2*nout) => 1 + (2*(nin+nout))\n\tM = 2 * N;\n\tm = 2 * nin;\n\tfor ( i = 0; i <= M; i++ ) {\n\t\tif ( i === 0 ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( '() => (' );\n\t\t\t} else {\n\t\t\t\ttmp.push( '(' );\n\t\t\t}\n\t\t} else if ( i === M ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( ') => ()' );\n\t\t\t} else {\n\t\t\t\ttmp.push( ')' );\n\t\t\t}\n\t\t} else if ( i === m ) {\n\t\t\ttmp.push( ') => (' );\n\t\t} else if ( i%2 === 1 ) {\n\t\t\ttmp.push( '' );\n\t\t} else {\n\t\t\ttmp.push( ', ' );\n\t\t}\n\t}\n\tfor ( i = 0; i < len; i++ ) {\n\t\tdt = resolve( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\tdt = dtypes[ i ];\n\t\t}\n\t\tm = i % N;\n\t\ttmp[ (2*m)+1 ] = dt;\n\t\tif ( m === N-1 ) {\n\t\t\tout.push( tmp.join( '' ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes2signatures;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = everynd( x );\n* // returns true\n*/\nfunction everynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everynd( x );\n* // returns true\n*/\nfunction everynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everynd( x );\n* // returns true\n*/\nfunction everynd( x ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorevery2d from './2d_blocked_accessors.js';\nimport blockedaccessorevery3d from './3d_blocked_accessors.js';\nimport blockedaccessorevery4d from './4d_blocked_accessors.js';\nimport blockedaccessorevery5d from './5d_blocked_accessors.js';\nimport blockedaccessorevery6d from './6d_blocked_accessors.js';\nimport blockedaccessorevery7d from './7d_blocked_accessors.js';\nimport blockedaccessorevery8d from './8d_blocked_accessors.js';\nimport blockedaccessorevery9d from './9d_blocked_accessors.js';\nimport blockedaccessorevery10d from './10d_blocked_accessors.js';\nimport blockedcomplexevery2d from './2d_blocked_complex.js';\nimport blockedcomplexevery3d from './3d_blocked_complex.js';\nimport blockedcomplexevery4d from './4d_blocked_complex.js';\nimport blockedcomplexevery5d from './5d_blocked_complex.js';\nimport blockedcomplexevery6d from './6d_blocked_complex.js';\nimport blockedcomplexevery7d from './7d_blocked_complex.js';\nimport blockedcomplexevery8d from './8d_blocked_complex.js';\nimport blockedcomplexevery9d from './9d_blocked_complex.js';\nimport blockedcomplexevery10d from './10d_blocked_complex.js';\nimport blockedevery2d from './2d_blocked.js';\nimport blockedevery3d from './3d_blocked.js';\nimport blockedevery4d from './4d_blocked.js';\nimport blockedevery5d from './5d_blocked.js';\nimport blockedevery6d from './6d_blocked.js';\nimport blockedevery7d from './7d_blocked.js';\nimport blockedevery8d from './8d_blocked.js';\nimport blockedevery9d from './9d_blocked.js';\nimport blockedevery10d from './10d_blocked.js';\nimport accessorevery0d from './0d_accessors.js';\nimport accessorevery1d from './1d_accessors.js';\nimport accessorevery2d from './2d_accessors.js';\nimport accessorevery3d from './3d_accessors.js';\nimport accessorevery4d from './4d_accessors.js';\nimport accessorevery5d from './5d_accessors.js';\nimport accessorevery6d from './6d_accessors.js';\nimport accessorevery7d from './7d_accessors.js';\nimport accessorevery8d from './8d_accessors.js';\nimport accessorevery9d from './9d_accessors.js';\nimport accessorevery10d from './10d_accessors.js';\nimport accessoreverynd from './nd_accessors.js';\nimport complexevery0d from './0d_complex.js';\nimport complexevery1d from './1d_complex.js';\nimport complexevery2d from './2d_complex.js';\nimport complexevery3d from './3d_complex.js';\nimport complexevery4d from './4d_complex.js';\nimport complexevery5d from './5d_complex.js';\nimport complexevery6d from './6d_complex.js';\nimport complexevery7d from './7d_complex.js';\nimport complexevery8d from './8d_complex.js';\nimport complexevery9d from './9d_complex.js';\nimport complexevery10d from './10d_complex.js';\nimport complexeverynd from './nd_complex.js';\nimport every0d from './0d.js';\nimport every1d from './1d.js';\nimport every2d from './2d.js';\nimport every3d from './3d.js';\nimport every4d from './4d.js';\nimport every5d from './5d.js';\nimport every6d from './6d.js';\nimport every7d from './7d.js';\nimport every8d from './8d.js';\nimport every9d from './9d.js';\nimport every10d from './10d.js';\nimport everynd from './nd.js';\n\n\n// VARIABLES //\n\nvar EVERY = [\n\tevery0d,\n\tevery1d,\n\tevery2d,\n\tevery3d,\n\tevery4d,\n\tevery5d,\n\tevery6d,\n\tevery7d,\n\tevery8d,\n\tevery9d,\n\tevery10d\n];\nvar ACCESSOR_EVERY = [\n\taccessorevery0d,\n\taccessorevery1d,\n\taccessorevery2d,\n\taccessorevery3d,\n\taccessorevery4d,\n\taccessorevery5d,\n\taccessorevery6d,\n\taccessorevery7d,\n\taccessorevery8d,\n\taccessorevery9d,\n\taccessorevery10d\n];\nvar COMPLEX_EVERY = [\n\tcomplexevery0d,\n\tcomplexevery1d,\n\tcomplexevery2d,\n\tcomplexevery3d,\n\tcomplexevery4d,\n\tcomplexevery5d,\n\tcomplexevery6d,\n\tcomplexevery7d,\n\tcomplexevery8d,\n\tcomplexevery9d,\n\tcomplexevery10d\n];\nvar BLOCKED_EVERY = [\n\tblockedevery2d, // 0\n\tblockedevery3d,\n\tblockedevery4d,\n\tblockedevery5d,\n\tblockedevery6d,\n\tblockedevery7d,\n\tblockedevery8d,\n\tblockedevery9d,\n\tblockedevery10d // 8\n];\nvar BLOCKED_ACCESSOR_EVERY = [\n\tblockedaccessorevery2d, // 0\n\tblockedaccessorevery3d,\n\tblockedaccessorevery4d,\n\tblockedaccessorevery5d,\n\tblockedaccessorevery6d,\n\tblockedaccessorevery7d,\n\tblockedaccessorevery8d,\n\tblockedaccessorevery9d,\n\tblockedaccessorevery10d // 8\n];\nvar BLOCKED_COMPLEX_EVERY = [\n\tblockedcomplexevery2d, // 0\n\tblockedcomplexevery3d,\n\tblockedcomplexevery4d,\n\tblockedcomplexevery5d,\n\tblockedcomplexevery6d,\n\tblockedcomplexevery7d,\n\tblockedcomplexevery8d,\n\tblockedcomplexevery9d,\n\tblockedcomplexevery10d // 8\n];\nvar MAX_DIMS = EVERY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every( [ x ] );\n* // returns true\n*/\nfunction every( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_EVERY[ ndims ]( x );\n\t\t}\n\t\treturn EVERY[ ndims ]( x );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn true;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_EVERY[ ndims ]( x );\n\t\t}\n\t\treturn EVERY[ ndims ]( x );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ 1 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_EVERY[ 1 ]( x );\n\t\t}\n\t\treturn EVERY[ 1 ]( x );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_EVERY[ 1 ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_EVERY[ 1 ]( x );\n\t\t\t}\n\t\t\treturn EVERY[ 1 ]( x );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_EVERY[ ndims ]( x );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_EVERY[ ndims ]( x );\n\t\t\t}\n\t\t\treturn EVERY[ ndims ]( x );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_EVERY[ ndims-2 ]( x );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_EVERY[ ndims-2 ]( x );\n\t\t}\n\t\treturn BLOCKED_EVERY[ ndims-2 ]( x );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoreverynd( x );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexeverynd( x );\n\t}\n\treturn everynd( x );\n}\n\n\n// EXPORTS //\n\nexport default every;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every0d( x );\n* // returns true\n*/\nfunction every0d( x ) {\n\tif ( x.data[ x.offset ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every1d( x );\n* // returns true\n*/\nfunction every1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !xbuf[ ix ] ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every2d( x );\n* // returns true\n*/\nfunction every2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every3d( x );\n* // returns true\n*/\nfunction every3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every4d( x );\n* // returns true\n*/\nfunction every4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every5d( x );\n* // returns true\n*/\nfunction every5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every6d( x );\n* // returns true\n*/\nfunction every6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every7d( x );\n* // returns true\n*/\nfunction every7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every8d( x );\n* // returns true\n*/\nfunction every8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every9d( x );\n* // returns true\n*/\nfunction every9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every10d( x );\n* // returns true\n*/\nfunction every10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every0d( x );\n* // returns true\n*/\nfunction every0d( x ) {\n\tif ( x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every1d( x );\n* // returns true\n*/\nfunction every1d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !get( xbuf, ix ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every2d( x );\n* // returns true\n*/\nfunction every2d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every3d( x );\n* // returns true\n*/\nfunction every3d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every4d( x );\n* // returns true\n*/\nfunction every4d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every5d( x );\n* // returns true\n*/\nfunction every5d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every6d( x );\n* // returns true\n*/\nfunction every6d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every7d( x );\n* // returns true\n*/\nfunction every7d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every8d( x );\n* // returns true\n*/\nfunction every8d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every9d( x );\n* // returns true\n*/\nfunction every9d( x ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every10d( x );\n* // returns true\n*/\nfunction every10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every0d( x );\n* // returns true\n*/\nfunction every0d( x ) {\n\tif ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every1d( x );\n* // returns true\n*/\nfunction every1d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every2d( x );\n* // returns true\n*/\nfunction every2d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every3d( x );\n* // returns true\n*/\nfunction every3d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every4d( x );\n* // returns true\n*/\nfunction every4d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every5d( x );\n* // returns true\n*/\nfunction every5d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every6d( x );\n* // returns true\n*/\nfunction every6d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every7d( x );\n* // returns true\n*/\nfunction every7d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every8d( x );\n* // returns true\n*/\nfunction every8d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every9d( x );\n* // returns true\n*/\nfunction every9d( x ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every10d( x );\n* // returns true\n*/\nfunction every10d( x ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x );\n* // returns true\n*/\nfunction blockedevery2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x );\n* // returns true\n*/\nfunction blockedevery3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x );\n* // returns true\n*/\nfunction blockedevery4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x );\n* // returns true\n*/\nfunction blockedevery5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x );\n* // returns true\n*/\nfunction blockedevery6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x );\n* // returns true\n*/\nfunction blockedevery7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x );\n* // returns true\n*/\nfunction blockedevery8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x );\n* // returns true\n*/\nfunction blockedevery9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x );\n* // returns true\n*/\nfunction blockedevery10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x );\n* // returns true\n*/\nfunction blockedevery2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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 the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x );\n* // returns true\n*/\nfunction blockedevery3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x );\n* // returns true\n*/\nfunction blockedevery4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x );\n* // returns true\n*/\nfunction blockedevery5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x );\n* // returns true\n*/\nfunction blockedevery6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x );\n* // returns true\n*/\nfunction blockedevery7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x );\n* // returns true\n*/\nfunction blockedevery8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x );\n* // returns true\n*/\nfunction blockedevery9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element in an ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x );\n* // returns true\n*/\nfunction blockedevery10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x );\n* // returns true\n*/\nfunction blockedevery2d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x );\n* // returns true\n*/\nfunction blockedevery3d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x );\n* // returns true\n*/\nfunction blockedevery4d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x );\n* // returns true\n*/\nfunction blockedevery5d( x ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x );\n* // returns true\n*/\nfunction blockedevery6d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x );\n* // returns true\n*/\nfunction blockedevery7d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x );\n* // returns true\n*/\nfunction blockedevery8d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x );\n* // returns true\n*/\nfunction blockedevery9d( x ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether every element of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x );\n* // returns true\n*/\nfunction blockedevery10d( x ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = everynd( x, predicate );\n* // returns true\n*/\nfunction everynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everynd( x, predicate );\n* // returns true\n*/\nfunction everynd( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( !predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default everynd;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorevery2d from './2d_blocked_accessors.js';\nimport blockedaccessorevery3d from './3d_blocked_accessors.js';\nimport blockedaccessorevery4d from './4d_blocked_accessors.js';\nimport blockedaccessorevery5d from './5d_blocked_accessors.js';\nimport blockedaccessorevery6d from './6d_blocked_accessors.js';\nimport blockedaccessorevery7d from './7d_blocked_accessors.js';\nimport blockedaccessorevery8d from './8d_blocked_accessors.js';\nimport blockedaccessorevery9d from './9d_blocked_accessors.js';\nimport blockedaccessorevery10d from './10d_blocked_accessors.js';\nimport blockedevery2d from './2d_blocked.js';\nimport blockedevery3d from './3d_blocked.js';\nimport blockedevery4d from './4d_blocked.js';\nimport blockedevery5d from './5d_blocked.js';\nimport blockedevery6d from './6d_blocked.js';\nimport blockedevery7d from './7d_blocked.js';\nimport blockedevery8d from './8d_blocked.js';\nimport blockedevery9d from './9d_blocked.js';\nimport blockedevery10d from './10d_blocked.js';\nimport accessorevery0d from './0d_accessors.js';\nimport accessorevery1d from './1d_accessors.js';\nimport accessorevery2d from './2d_accessors.js';\nimport accessorevery3d from './3d_accessors.js';\nimport accessorevery4d from './4d_accessors.js';\nimport accessorevery5d from './5d_accessors.js';\nimport accessorevery6d from './6d_accessors.js';\nimport accessorevery7d from './7d_accessors.js';\nimport accessorevery8d from './8d_accessors.js';\nimport accessorevery9d from './9d_accessors.js';\nimport accessorevery10d from './10d_accessors.js';\nimport accessoreverynd from './nd_accessors.js';\nimport every0d from './0d.js';\nimport every1d from './1d.js';\nimport every2d from './2d.js';\nimport every3d from './3d.js';\nimport every4d from './4d.js';\nimport every5d from './5d.js';\nimport every6d from './6d.js';\nimport every7d from './7d.js';\nimport every8d from './8d.js';\nimport every9d from './9d.js';\nimport every10d from './10d.js';\nimport everynd from './nd.js';\n\n\n// VARIABLES //\n\nvar EVERY = [\n\tevery0d,\n\tevery1d,\n\tevery2d,\n\tevery3d,\n\tevery4d,\n\tevery5d,\n\tevery6d,\n\tevery7d,\n\tevery8d,\n\tevery9d,\n\tevery10d\n];\nvar ACCESSOR_EVERY = [\n\taccessorevery0d,\n\taccessorevery1d,\n\taccessorevery2d,\n\taccessorevery3d,\n\taccessorevery4d,\n\taccessorevery5d,\n\taccessorevery6d,\n\taccessorevery7d,\n\taccessorevery8d,\n\taccessorevery9d,\n\taccessorevery10d\n];\nvar BLOCKED_EVERY = [\n\tblockedevery2d, // 0\n\tblockedevery3d,\n\tblockedevery4d,\n\tblockedevery5d,\n\tblockedevery6d,\n\tblockedevery7d,\n\tblockedevery8d,\n\tblockedevery9d,\n\tblockedevery10d // 8\n];\nvar BLOCKED_ACCESSOR_EVERY = [\n\tblockedaccessorevery2d, // 0\n\tblockedaccessorevery3d,\n\tblockedaccessorevery4d,\n\tblockedaccessorevery5d,\n\tblockedaccessorevery6d,\n\tblockedaccessorevery7d,\n\tblockedaccessorevery8d,\n\tblockedaccessorevery9d,\n\tblockedaccessorevery10d // 8\n];\nvar MAX_DIMS = EVERY.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = everyBy( [ x ], predicate );\n* // returns true\n*/\nfunction everyBy( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn EVERY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn true;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_EVERY[ ndims ]( x, predicate, thisArg );\n\t\t}\n\t\treturn EVERY[ ndims ]( x, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_EVERY[ ndims-2 ]( x, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_EVERY[ ndims-2 ]( x, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessoreverynd( x, predicate, thisArg );\n\t}\n\treturn everynd( x, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default everyBy;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every0d( x, predicate );\n* // returns true\n*/\nfunction every0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every1d( x, predicate );\n* // returns true\n*/\nfunction every1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every2d( x, predicate );\n* // returns true\n*/\nfunction every2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every3d( x, predicate );\n* // returns true\n*/\nfunction every3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every4d( x, predicate );\n* // returns true\n*/\nfunction every4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every5d( x, predicate );\n* // returns true\n*/\nfunction every5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every6d( x, predicate );\n* // returns true\n*/\nfunction every6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every7d( x, predicate );\n* // returns true\n*/\nfunction every7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every8d( x, predicate );\n* // returns true\n*/\nfunction every8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every9d( x, predicate );\n* // returns true\n*/\nfunction every9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = every10d( x, predicate );\n* // returns true\n*/\nfunction every10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every0d( x, predicate );\n* // returns true\n*/\nfunction every0d( x, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default every0d;\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* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every1d( x, predicate );\n* // returns true\n*/\nfunction every1d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref) ) {\n\t\t\treturn false;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every2d( x, predicate );\n* // returns true\n*/\nfunction every2d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every3d( x, predicate );\n* // returns true\n*/\nfunction every3d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every4d( x, predicate );\n* // returns true\n*/\nfunction every4d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every5d( x, predicate );\n* // returns true\n*/\nfunction every5d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every6d( x, predicate );\n* // returns true\n*/\nfunction every6d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every7d( x, predicate );\n* // returns true\n*/\nfunction every7d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every8d( x, predicate );\n* // returns true\n*/\nfunction every8d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every9d( x, predicate );\n* // returns true\n*/\nfunction every9d( x, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = every10d( x, predicate );\n* // returns true\n*/\nfunction every10d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default every10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x, predicate );\n* // returns true\n*/\nfunction blockedevery2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x, predicate );\n* // returns true\n*/\nfunction blockedevery3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x, predicate );\n* // returns true\n*/\nfunction blockedevery4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x, predicate );\n* // returns true\n*/\nfunction blockedevery5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x, predicate );\n* // returns true\n*/\nfunction blockedevery6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x, predicate );\n* // returns true\n*/\nfunction blockedevery7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x, predicate );\n* // returns true\n*/\nfunction blockedevery8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x, predicate );\n* // returns true\n*/\nfunction blockedevery9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x, predicate );\n* // returns true\n*/\nfunction blockedevery10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery2d( x, predicate );\n* // returns true\n*/\nfunction blockedevery2d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery3d( x, predicate );\n* // returns true\n*/\nfunction blockedevery3d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery4d( x, predicate );\n* // returns true\n*/\nfunction blockedevery4d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery5d( x, predicate );\n* // returns true\n*/\nfunction blockedevery5d( x, predicate, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery6d( x, predicate );\n* // returns true\n*/\nfunction blockedevery6d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery7d( x, predicate );\n* // returns true\n*/\nfunction blockedevery7d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery8d( x, predicate );\n* // returns true\n*/\nfunction blockedevery8d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery9d( x, predicate );\n* // returns true\n*/\nfunction blockedevery9d( x, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether all elements in an ndarray pass a test implemented by a predicate function via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedevery10d( x, predicate );\n* // returns true\n*/\nfunction blockedevery10d( x, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( !predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nexport default blockedevery10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isScalarMostlySafeCompatible from '@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible'; // eslint-disable-line id-length\nimport broadcastScalar from '@stdlib/ndarray-base-broadcast-scalar';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Fills an input ndarray with a specified value.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {*} value - scalar value\n* @throws {TypeError} second argument cannot be safely cast to the input array data type\n* @returns {ndarrayLike} input ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]\n*\n* var out = fill( x, 10.0 );\n* // returns [ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fill( x, value ) {\n\tvar dt;\n\tvar v;\n\n\tdt = getDType( x );\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isScalarMostlySafeCompatible( value, dt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. The second argument cannot be safely cast to the input array data type. Data type: %s. Value: `%s`.', dt, value ) );\n\t}\n\t// Broadcast the fill value to an ndarray of same shape and data type as the input ndarray:\n\tv = broadcastScalar( value, dt, getShape( x ), getOrder( x ) );\n\n\t// Assign the fill value to each element of the input ndarray:\n\tassign( [ v, x ] ); // TODO: consider replacing with ndarray/base/assign-scalar in order to avoid zero-dimensional ndarray creation and subsequent broadcasting\n\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default fill;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an -dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* mapnd( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction mapnd( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), idx, x.ref ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default mapnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* mapnd( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction mapnd( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], idx, x.ref );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default mapnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport format from '@stdlib/string-format';\nimport blockedaccessormap2d from './2d_blocked_accessors.js';\nimport blockedaccessormap3d from './3d_blocked_accessors.js';\nimport blockedaccessormap4d from './4d_blocked_accessors.js';\nimport blockedaccessormap5d from './5d_blocked_accessors.js';\nimport blockedaccessormap6d from './6d_blocked_accessors.js';\nimport blockedaccessormap7d from './7d_blocked_accessors.js';\nimport blockedaccessormap8d from './8d_blocked_accessors.js';\nimport blockedaccessormap9d from './9d_blocked_accessors.js';\nimport blockedaccessormap10d from './10d_blocked_accessors.js';\nimport blockedmap2d from './2d_blocked.js';\nimport blockedmap3d from './3d_blocked.js';\nimport blockedmap4d from './4d_blocked.js';\nimport blockedmap5d from './5d_blocked.js';\nimport blockedmap6d from './6d_blocked.js';\nimport blockedmap7d from './7d_blocked.js';\nimport blockedmap8d from './8d_blocked.js';\nimport blockedmap9d from './9d_blocked.js';\nimport blockedmap10d from './10d_blocked.js';\nimport accessormap0d from './0d_accessors.js';\nimport accessormap1d from './1d_accessors.js';\nimport accessormap2d from './2d_accessors.js';\nimport accessormap3d from './3d_accessors.js';\nimport accessormap4d from './4d_accessors.js';\nimport accessormap5d from './5d_accessors.js';\nimport accessormap6d from './6d_accessors.js';\nimport accessormap7d from './7d_accessors.js';\nimport accessormap8d from './8d_accessors.js';\nimport accessormap9d from './9d_accessors.js';\nimport accessormap10d from './10d_accessors.js';\nimport accessormapnd from './nd_accessors.js';\nimport map0d from './0d.js';\nimport map1d from './1d.js';\nimport map2d from './2d.js';\nimport map3d from './3d.js';\nimport map4d from './4d.js';\nimport map5d from './5d.js';\nimport map6d from './6d.js';\nimport map7d from './7d.js';\nimport map8d from './8d.js';\nimport map9d from './9d.js';\nimport map10d from './10d.js';\nimport mapnd from './nd.js';\n\n\n// VARIABLES //\n\nvar MAP = [\n\tmap0d,\n\tmap1d,\n\tmap2d,\n\tmap3d,\n\tmap4d,\n\tmap5d,\n\tmap6d,\n\tmap7d,\n\tmap8d,\n\tmap9d,\n\tmap10d\n];\nvar ACCESSOR_MAP = [\n\taccessormap0d,\n\taccessormap1d,\n\taccessormap2d,\n\taccessormap3d,\n\taccessormap4d,\n\taccessormap5d,\n\taccessormap6d,\n\taccessormap7d,\n\taccessormap8d,\n\taccessormap9d,\n\taccessormap10d\n];\nvar BLOCKED_MAP = [\n\tblockedmap2d, // 0\n\tblockedmap3d,\n\tblockedmap4d,\n\tblockedmap5d,\n\tblockedmap6d,\n\tblockedmap7d,\n\tblockedmap8d,\n\tblockedmap9d,\n\tblockedmap10d // 8\n];\nvar BLOCKED_ACCESSOR_MAP = [\n\tblockedaccessormap2d, // 0\n\tblockedaccessormap3d,\n\tblockedaccessormap4d,\n\tblockedaccessormap5d,\n\tblockedaccessormap6d,\n\tblockedaccessormap7d,\n\tblockedaccessormap8d,\n\tblockedaccessormap9d,\n\tblockedaccessormap10d // 8\n];\nvar MAX_DIMS = MAP.length -1;\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - callback function\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map( arrays, fcn, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar d;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d.', ndims, shy.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_MAP[ ndims ]( x, y, fcn, thisArg );\n\t\t}\n\t\treturn MAP[ ndims ]( x, y, fcn, thisArg );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_MAP[ ndims ]( x, y, fcn, thisArg );\n\t\t}\n\t\treturn MAP[ ndims ]( x, y, fcn, thisArg );\n\t}\n\t// Determine iteration order:\n\tiox = iterationOrder( x.strides ); // +/-1\n\tioy = iterationOrder( y.strides ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( x.strides );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( y.strides ) ) {\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_MAP[ ndims ]( x, y, ord === 1, fcn, thisArg );\n\t\t\t}\n\t\t\treturn MAP[ ndims ]( x, y, ord === 1, fcn, thisArg );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_MAP[ ndims-2 ]( x, y, fcn, thisArg );\n\t\t}\n\t\treturn BLOCKED_MAP[ ndims-2 ]( x, y, fcn, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessormapnd( x, y, fcn, thisArg );\n\t}\n\tmapnd( x, y, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default map;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ){\n* return z * 10.0;\n* }\n*\n* // Create a data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* }\n*\n* // Apply function:\n* map0d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction map0d( x, y, fcn, thisArg ) {\n\ty.data[ y.offset ] = fcn.call( thisArg, x.data[ x.offset ], [], x.ref );\n}\n\n\n// EXPORTS //\n\nexport default map0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map1d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction map1d( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], [ i0 ], x.ref );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map2d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction map2d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for the outermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for outermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sx[0] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointer to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map3d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map3d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map4d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map4d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map5d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map5d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map6d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map6d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map7d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map7d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map8d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map8d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map9d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map9d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* map10d( x, y, true, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction map10d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map0d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction map0d( x, y, fcn, thisArg ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default map0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 callback function to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map1d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map1d( x, y, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map2d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map2d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for the outermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for outermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for innermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sx[0] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointer to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map3d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map3d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar idx;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map4d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map4d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map5d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map5d( x, y, isRowMajor, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map6d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map6d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map7d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map7d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map8d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map8d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map9d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map9d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* map10d( x, y, true, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction map10d( x, y, isRowMajor, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tidx = zeroTo( sh.length );\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tidx = reverse( idx );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default map10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap2d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedmap2d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + (j0*sx[0]);\n\t\t\tiy = oy1 + (j0*sy[0]);\n\n\t\t\t// Compute the loop offset increments...\n\t\t\tdx1 = sx[1] - (s0*sx[0]);\n\t\t\tdy1 = sy[1] - (s0*sy[0]);\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap3d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap3d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap4d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap4d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\tS3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\tS3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\tS2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\tS2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\tS1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap5d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap5d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\tS4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\tS4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\tS3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\tS3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\tS2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap6d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap6d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\tS5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\tS5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\tS4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\tS4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\tS3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap7d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap7d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\tS6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\tS6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\tS5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\tS5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\tS4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap8d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap8d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\tS7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\tS7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\tS6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\tS6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\tS5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap9d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap9d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\tS8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\tS8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\tS7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\tS7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\tS6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( z ) {\n* return z * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply function:\n* blockedmap10d( x, y, scale, {} );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedmap10d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\tS9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\tS9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\tS8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\tS8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( S8*sx[8] );\n\t\t\tdy9 = sy[9] - ( S8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\tS7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\tS6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap2d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap2d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar idx;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + (j0*sx[0]);\n\t\t\tiy = oy1 + (j0*sy[0]);\n\n\t\t\t// Compute the loop offset increments...\n\t\t\tdx1 = sx[1] - (s0*sx[0]);\n\t\t\tdy1 = sy[1] - (s0*sy[0]);\n\n\t\t\t// Cache accessors:\n\t\t\tget = x.accessors[0];\n\t\t\tset = y.accessors[1];\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap3d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap3d( x, y, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar idx;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap4d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap4d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\tS3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\tS3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\tS2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\tS2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\tS1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t// Cache accessors:\n\t\t\t\t\tget = x.accessors[ 0 ];\n\t\t\t\t\tset = y.accessors[ 1 ];\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap5d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap5d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\tS4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\tS4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\tS3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\tS3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\tS2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap6d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap6d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar set;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\tS5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\tS5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\tS4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\tS4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\tS3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap7d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap7d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\tS6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\tS6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\tS5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\tS5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\tS4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap8d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap8d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\tS7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\tS7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\tS6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\tS6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\tS5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap9d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap9d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\tS8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\tS8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\tS7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\tS7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\tS6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Applies a callback function to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply function:\n* blockedmap10d( x, y, scale, {} );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedmap10d( x, y, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\tS9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\tS9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\tS8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\tS8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( S8*sx[8] );\n\t\t\tdy9 = sy[9] - ( S8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\tS7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\tS7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( S7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( S7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\tS6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tS6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( S6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( S6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\tS5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tS5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( S5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( S5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\tS4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tS4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( S4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( S4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\tS3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tS3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( S3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( S3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\tS2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tS2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( S2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( S2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\tS1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tS1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( S1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( S1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tS0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( S0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( S0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedmap10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = findnd( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction findnd( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tv = get( xbuf, ix );\n\t\tif ( predicate.call( thisArg, v, idx, x.ref ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default findnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = findnd( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction findnd( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\treturn xbuf[ ix ];\n\t\t}\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default findnd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport accessorfind0d from './0d_accessors.js';\nimport accessorfind1d from './1d_accessors.js';\nimport accessorfind2d from './2d_accessors.js';\nimport accessorfind3d from './3d_accessors.js';\nimport accessorfind4d from './4d_accessors.js';\nimport accessorfind5d from './5d_accessors.js';\nimport accessorfind6d from './6d_accessors.js';\nimport accessorfind7d from './7d_accessors.js';\nimport accessorfind8d from './8d_accessors.js';\nimport accessorfind9d from './9d_accessors.js';\nimport accessorfind10d from './10d_accessors.js';\nimport accessorfindnd from './nd_accessors.js';\nimport find0d from './0d.js';\nimport find1d from './1d.js';\nimport find2d from './2d.js';\nimport find3d from './3d.js';\nimport find4d from './4d.js';\nimport find5d from './5d.js';\nimport find6d from './6d.js';\nimport find7d from './7d.js';\nimport find8d from './8d.js';\nimport find9d from './9d.js';\nimport find10d from './10d.js';\nimport findnd from './nd.js';\n\n\n// VARIABLES //\n\nvar FIND = [\n\tfind0d,\n\tfind1d,\n\tfind2d,\n\tfind3d,\n\tfind4d,\n\tfind5d,\n\tfind6d,\n\tfind7d,\n\tfind8d,\n\tfind9d,\n\tfind10d\n];\nvar ACCESSOR_FIND = [\n\taccessorfind0d,\n\taccessorfind1d,\n\taccessorfind2d,\n\taccessorfind3d,\n\taccessorfind4d,\n\taccessorfind5d,\n\taccessorfind6d,\n\taccessorfind7d,\n\taccessorfind8d,\n\taccessorfind9d,\n\taccessorfind10d\n];\nvar MAX_DIMS = FIND.length - 1;\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray containing a sentinel value\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object containing a sentinel value:\n* var sentinelValue = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ NaN ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find( [ x, sentinelValue ], predicate );\n* // returns 2.0\n*/\nfunction find( arrays, predicate, thisArg ) { // eslint-disable-line stdlib/no-redeclare\n\tvar ndims;\n\tvar shx;\n\tvar sv;\n\tvar x;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tsv = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the sentinel value:\n\tsv = sv.accessors[ 0 ]( sv.data, sv.offset );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FIND[ ndims ]( x, sv, predicate, thisArg );\n\t\t}\n\t\treturn FIND[ ndims ]( x, sv, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn sv;\n\t}\n\t// Determine whether we can avoid linear view iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops; however, for mixed signed strides, iteration will not be cache-optimal, but we don't have much of a choice as loop tiling could lead to different results than cache-optimal iteration, so we just use normal nested loops for all iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FIND[ ndims ]( x, sv, predicate, thisArg );\n\t\t}\n\t\treturn FIND[ ndims ]( x, sv, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorfindnd( x, sv, predicate, thisArg );\n\t}\n\treturn findnd( x, sv, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default find;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find0d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find0d( x, sentinelValue, predicate, thisArg ) {\n\tif ( predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn x.data[ x.offset ];\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find0d;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find1d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find1d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\treturn xbuf[ ix ];\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find2d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find2d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn xbuf[ ix ];\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find3d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find3d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find4d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find4d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find5d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find5d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find6d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find6d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find7d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find7d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find8d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find8d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find9d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find9d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform operation:\n* var out = find10d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find10d( x, sentinelValue, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find10d;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find0d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find0d( x, sentinelValue, predicate, thisArg ) {\n\tvar v = x.accessors[ 0 ]( x.data, x.offset );\n\tif ( predicate.call( thisArg, v, [], x.ref ) ) {\n\t\treturn v;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find0d;\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 the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find1d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find1d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = get( xbuf, ix );\n\t\tif ( predicate.call( thisArg, v, [ i0 ], x.ref ) ) {\n\t\t\treturn v;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find2d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find2d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = get( xbuf, ix );\n\t\t\tif ( predicate.call( thisArg, v, take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\treturn v;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find3d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find3d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = get( xbuf, ix );\n\t\t\t\tif ( predicate.call( thisArg, v, take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find4d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find4d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn v;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find5d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find5d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find6d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find6d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find7d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find7d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find8d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find8d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find9d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find9d( x, sentinelValue, predicate, thisArg ) {\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the first element in an ndarray which passes a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} sentinelValue - sentinel value\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {*} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value % 2.0 === 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform operation:\n* var out = find10d( x, NaN, predicate, {} );\n* // returns 2.0\n*/\nfunction find10d( x, sentinelValue, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = get( xbuf, ix );\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, v, take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\treturn v;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn sentinelValue;\n}\n\n\n// EXPORTS //\n\nexport default find10d;\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\nimport min from '@stdlib/math-base-special-fast-min';\n\n\n// MAIN //\n\n/**\n* Flattens a shape to a specified depth and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} depth - maximum depth to flatten\n* @param {Collection} out - output object\n* @returns {Collection} array shape\n*\n* @example\n* var sh = [ 0, 0 ];\n*\n* var out = flattenShape( [ 3, 2 ], 1, sh );\n* // returns [ 6 ]\n*\n* var bool = ( out === sh );\n* // returns true\n*/\nfunction flattenShape( shape, depth, out ) {\n\tvar ndims;\n\tvar d;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tndims = shape.length;\n\td = min( ndims-1, depth );\n\ts = 1;\n\tj = 0;\n\tfor ( i = 0; i < ndims; i++ ) { // e.g., shape=[2,3,4,5], depth=2 => shape=[24,5]\n\t\tif ( i <= d ) {\n\t\t\ts *= shape[ i ];\n\t\t\tif ( i === d ) {\n\t\t\t\tout[ j ] = s;\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tout[ j ] = shape[ i ];\n\t\t\tj += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShape;\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\nimport min from '@stdlib/math-base-special-fast-min';\nimport max from '@stdlib/math-base-special-fast-max';\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Flattens a shape to a specified depth.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} depth - maximum depth to flatten\n* @returns {NonNegativeIntegerArray} flattened shape\n*\n* @example\n* var sh = flattenShape( [ 3, 2 ], 1 );\n* // returns [ 6 ]\n*\n* sh = flattenShape( [ 3, 2, 1 ], 1 );\n* // returns [ 6, 1 ]\n*\n* sh = flattenShape( [ 3 ], 0 );\n* // returns [ 3 ]\n*\n* sh = flattenShape( [ 3, 2 ], 0 );\n* // returns [ 3, 2 ]\n*\n* sh = flattenShape( [ 3 ], 1 );\n* // returns [ 3 ]\n*\n* sh = flattenShape( [], 1 );\n* // returns []\n*/\nfunction flattenShape( shape, depth ) {\n\tvar ndims = shape.length;\n\tvar out = zeros( ndims-max( min( ndims-1, depth ), 0 ) );\n\tassign( shape, depth, out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShape;\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* Flattens a shape starting from a specified dimension and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to start flattening from\n* @param {Collection} out - output object\n* @returns {Collection} array shape\n*\n* @example\n* var sh = [ 0, 0 ];\n*\n* var out = flattenShapeFrom( [ 3, 3, 2 ], 1, sh );\n* // returns [ 3, 6 ]\n*\n* var bool = ( out === sh );\n* // returns true\n*\n* @example\n* var sh = [ 0, 0 ];\n*\n* var out = flattenShapeFrom( [ 3, 3, 2 ], -2, sh );\n* // returns [ 3, 6 ]\n*\n* var bool = ( out === sh );\n* // returns true\n*/\nfunction flattenShapeFrom( shape, dim, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tndims = shape.length;\n\n\t// Normalize the dimension index...\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\tdim = 0;\n\t\t}\n\t}\n\ts = 1;\n\tj = 0;\n\tfor ( i = 0; i < ndims; i++ ) { // e.g., shape=[2,3,4,5], dim=2 => shape=[2,3,20]\n\t\tif ( i >= dim ) {\n\t\t\ts *= shape[ i ];\n\t\t\tif ( i === ndims-1 ) {\n\t\t\t\tout[ j ] = s;\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tout[ j ] = shape[ i ];\n\t\t\tj += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShapeFrom;\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\nimport min from '@stdlib/math-base-special-fast-min';\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Flattens a shape starting from a specified dimension.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to start flattening from\n* @returns {NonNegativeIntegerArray} flattened shape\n*\n* @example\n* var sh = flattenShapeFrom( [ 3, 3, 2 ], 1 );\n* // returns [ 3, 6 ]\n*\n* sh = flattenShapeFrom( [ 3, 2, 1 ], 1 );\n* // returns [ 3, 2 ]\n*\n* sh = flattenShapeFrom( [ 3 ], 0 );\n* // returns [ 3 ]\n*\n* sh = flattenShapeFrom( [ 3, 2 ], 0 );\n* // returns [ 6 ]\n*\n* sh = flattenShapeFrom( [], 0 );\n* // returns []\n*\n* @example\n* var sh = flattenShapeFrom( [ 3, 3, 2 ], -2 );\n* // returns [ 3, 6 ]\n*\n* sh = flattenShapeFrom( [ 3, 2, 1 ], -2 );\n* // returns [ 3, 2 ]\n*\n* sh = flattenShapeFrom( [ 3 ], -1 );\n* // returns [ 3 ]\n*\n* sh = flattenShapeFrom( [ 3, 2 ], -2 );\n* // returns [ 6 ]\n*\n* sh = flattenShapeFrom( [], -1 );\n* // returns []\n*/\nfunction flattenShapeFrom( shape, dim ) {\n\tvar ndims;\n\tvar out;\n\tvar d;\n\n\tndims = shape.length;\n\n\t// Normalize the dimension index...\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\tdim = 0;\n\t\t}\n\t}\n\td = min( ndims-1, dim );\n\tout = zeros( d+1 );\n\tassign( shape, d, out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default flattenShapeFrom;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is `null`.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is null\n*\n* @example\n* var bool = isNull( null );\n* // returns true\n*\n* bool = isNull( true );\n* // returns false\n*/\nfunction isNull( value ) {\n\treturn value === null;\n}\n\n\n// EXPORTS //\n\nexport default isNull;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Tests if a value is `undefined`.\n*\n* ## Notes\n*\n* - In older browsers, `undefined` is a global which can be overridden. `void`, however, is an operator which **cannot** be overridden. Consequently, better to use `void` to check for `undefined`. See [Stack Overflow][1].\n*\n* [1]: http://stackoverflow.com/a/19369078/2225624\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether value is undefined\n*\n* @example\n* var bool = isUndefined( undefined );\n* // returns true\n*\n* bool = isUndefined( null );\n* // returns false\n*/\nfunction isUndefined( value ) {\n\treturn value === void 0;\n}\n\n\n// EXPORTS //\n\nexport default isUndefined;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isNull from '@stdlib/assert-is-null';\nimport isUndefined from '@stdlib/assert-is-undefined';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an input argument is valid.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether the argument is valid\n*\n* @example\n* var bool = isValid( 3 );\n* // returns true\n*\n* bool = isValid( null );\n* // returns true\n*\n* bool = isValid( void 0 );\n* // returns true\n*\n* bool = isValid( '3' );\n* // returns false\n*/\nfunction isValid( value ) {\n\treturn ( isInteger( value ) || isNull( value ) || isUndefined( value ) );\n}\n\n\n// MAIN //\n\n/**\n* Slice constructor.\n*\n* @constructor\n* @param {(integer|null|void)} [start] - starting index (inclusive)\n* @param {(integer|null|void)} stop - ending index (exclusive)\n* @param {(integer|null|void)} [step] - index increment\n* @throws {TypeError} first argument must be an integer, null, or undefined\n* @throws {TypeError} second argument must be an integer, null, or undefined\n* @throws {TypeError} third argument must be an integer, null, or undefined\n* @throws {RangeError} third argument cannot be zero\n* @returns {Slice} Slice instance\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var start = s.start;\n* // returns null\n*\n* var stop = s.stop;\n* // returns 10\n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*\n* var stop = s.stop;\n* // returns 10\n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*\n* var stop = s.stop;\n* // returns 10\n*\n* var step = s.step;\n* // returns 2\n*/\nfunction Slice() {\n\tvar nargs;\n\tvar start;\n\tvar stop;\n\tvar step;\n\n\tnargs = arguments.length;\n\tif ( nargs === 0 ) {\n\t\tstart = null;\n\t\tstop = null;\n\t\tstep = null;\n\t} else if ( nargs === 1 ) {\n\t\tstart = null;\n\t\tstop = arguments[ 0 ];\n\t\tstep = null;\n\t} else if ( nargs === 2 ) {\n\t\tstart = arguments[ 0 ];\n\t\tstop = arguments[ 1 ];\n\t\tstep = null;\n\t} else {\n\t\tstart = arguments[ 0 ];\n\t\tstop = arguments[ 1 ];\n\t\tstep = arguments[ 2 ];\n\t}\n\tif ( !( this instanceof Slice ) ) {\n\t\treturn new Slice( start, stop, step );\n\t}\n\tif ( !isValid( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer, null, or undefined. Value: `%s`.', start ) );\n\t}\n\tif ( !isValid( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer, null, or undefined. Value: `%s`.', stop ) );\n\t}\n\tif ( !isValid( step ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer, null, or undefined. Value: `%s`.', step ) );\n\t} else if ( step === 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument cannot be zero. Value: `%s`.', step ) );\n\t}\n\tthis._start = ( start === void 0 ) ? null : start;\n\tthis._stop = ( stop === void 0 ) ? null : stop;\n\tthis._step = ( step === void 0 ) ? null : step;\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Slice\n* @readonly\n* @type {string}\n* @default 'Slice'\n*\n* @example\n* var str = Slice.name;\n* // returns 'Slice'\n*/\nsetReadOnly( Slice, 'name', 'Slice' );\n\n/**\n* Returns the slice's starting index.\n*\n* @name start\n* @memberof Slice.prototype\n* @readonly\n* @type {(integer|null)}\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var start = s.start;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var start = s.start;\n* // returns 3\n*/\nsetReadOnlyAccessor( Slice.prototype, 'start', function get() {\n\treturn this._start;\n});\n\n/**\n* Returns the slice's ending index.\n*\n* @name stop\n* @memberof Slice.prototype\n* @readonly\n* @type {(integer|null)}\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var stop = s.stop;\n* // returns 10\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var stop = s.stop;\n* // returns 10\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var stop = s.stop;\n* // returns 10\n*/\nsetReadOnlyAccessor( Slice.prototype, 'stop', function get() {\n\treturn this._stop;\n});\n\n/**\n* Returns the slice's index increment.\n*\n* @name step\n* @memberof Slice.prototype\n* @readonly\n* @type {(integer|null)}\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var step = s.step;\n* // returns null\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var step = s.step;\n* // returns 2\n*/\nsetReadOnlyAccessor( Slice.prototype, 'step', function get() {\n\treturn this._step;\n});\n\n/**\n* Serializes a slice to a string.\n*\n* @name toString\n* @memberof Slice.prototype\n* @type {Function}\n* @returns {string} serialized Slice\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var str = s.toString();\n* // returns 'Slice(null,10,null)'\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var str = s.toString();\n* // returns 'Slice(3,10,null)'\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var str = s.toString();\n* // returns 'Slice(3,10,2)'\n*/\nsetReadOnly( Slice.prototype, 'toString', function toString() {\n\treturn 'Slice('+this._start+','+this._stop+','+this.step+')';\n});\n\n/**\n* Serializes a slice as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `Slice` instance.\n*\n* @name toJSON\n* @memberof Slice.prototype\n* @type {Function}\n* @returns {Object} serialized Slice\n*\n* @example\n* var s = new Slice( 10 );\n* // returns \n*\n* var o = s.toJSON();\n* // returns { 'type': 'Slice', 'data': [ null, 10, null ] }\n*\n* @example\n* var s = new Slice( 3, 10 );\n* // returns \n*\n* var o = s.toJSON();\n* // returns { 'type': 'Slice', 'data': [ 3, 10, null ] }\n*\n* @example\n* var s = new Slice( 3, 10, 2 );\n* // returns \n*\n* var o = s.toJSON();\n* // returns { 'type': 'Slice', 'data': [ 3, 10, 2 ] }\n*/\nsetReadOnly( Slice.prototype, 'toJSON', function toJSON() {\n\treturn {\n\t\t'type': 'Slice',\n\t\t'data': [\n\t\t\tthis._start,\n\t\t\tthis._stop,\n\t\t\tthis._step\n\t\t]\n\t};\n});\n\n\n// EXPORTS //\n\nexport default Slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport isNull from '@stdlib/assert-is-null';\nimport isUndefined from '@stdlib/assert-is-undefined';\nimport isSlice from '@stdlib/assert-is-slice';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an input argument is valid.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether the argument is valid\n*\n* @example\n* var bool = isValid( 3 );\n* // returns true\n*\n* bool = isValid( null );\n* // returns true\n*\n* bool = isValid( void 0 );\n* // returns true\n*\n* bool = isValid( '3' );\n* // returns false\n*/\nfunction isValid( value ) {\n\treturn (\n\t\tisInteger( value ) ||\n\t\tisNull( value ) ||\n\t\tisUndefined( value ) ||\n\t\tisSlice( value )\n\t);\n}\n\n\n// MAIN //\n\n/**\n* Multi-slice constructor.\n*\n* @constructor\n* @param {...(Slice|integer|null)} slice - slice\n* @throws {TypeError} a provided argument must be either a Slice, integer, null, or undefined\n* @returns {MultiSlice} MultiSlice instance\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*/\nfunction MultiSlice() {\n\tvar nargs;\n\tvar proxy;\n\tvar args;\n\tvar v;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !( this instanceof MultiSlice ) ) {\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ] );\n\t\t}\n\t\tif ( nargs === 3 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ] ); // eslint-disable-line max-len\n\t\t}\n\t\tif ( nargs === 4 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ], arguments[ 3 ] ); // eslint-disable-line max-len\n\t\t}\n\t\tif ( nargs === 5 ) {\n\t\t\treturn new MultiSlice( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ], arguments[ 3 ], arguments[ 4 ] ); // eslint-disable-line max-len\n\t\t}\n\t\targs = [];\n\t\tfor ( i = 0; i < nargs; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\t// Use a workaround for being unable to combine `.apply` with the `new` operator:\n\t\tproxy = Object.create( MultiSlice.prototype );\n\t\treturn MultiSlice.apply( proxy, args );\n\t}\n\tthis._data = [];\n\tfor ( i = 0; i < nargs; i++ ) {\n\t\tv = arguments[ i ];\n\t\tif ( !isValid( v ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Provided arguments must be either a Slice, integer, null, or undefined. Argument: `%d`. Value: `%s`.', i, String( v ) ) );\n\t\t}\n\t\tthis._data.push( ( v === void 0 ) ? null : v );\n\t}\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof MultiSlice\n* @readonly\n* @type {string}\n* @default 'MultiSlice'\n*\n* @example\n* var str = MultiSlice.name;\n* // returns 'MultiSlice'\n*/\nsetReadOnly( MultiSlice, 'name', 'MultiSlice' );\n\n/**\n* Returns the number of slice dimensions.\n*\n* @name ndims\n* @memberof MultiSlice.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var ndims = ms.ndims;\n* // returns 4\n*/\nsetReadOnlyAccessor( MultiSlice.prototype, 'ndims', function get() {\n\treturn this._data.length;\n});\n\n/**\n* Returns multi-slice data.\n*\n* @name data\n* @memberof MultiSlice.prototype\n* @readonly\n* @type {Array}\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var data = ms.data;\n* // returns [...]\n*\n* var v = data[ 0 ];\n* // returns null\n*\n* v = data[ 1 ];\n* // returns \n*\n* v = data[ 2 ];\n* // returns \n*\n* v = data[ 3 ];\n* // returns 2\n*/\nsetReadOnlyAccessor( MultiSlice.prototype, 'data', function get() {\n\treturn this._data.slice();\n});\n\n/**\n* Serializes a multi-slice to a string.\n*\n* @name toString\n* @memberof MultiSlice.prototype\n* @type {Function}\n* @returns {string} serialized MultiSlice\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var str = ms.toString();\n* // returns 'MultiSlice(null,Slice(0,10,1),Slice(2,12,2),2)'\n*/\nsetReadOnly( MultiSlice.prototype, 'toString', function toString() {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tdata = this._data;\n\tout = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.push( String( data[ i ] ) );\n\t}\n\treturn 'MultiSlice('+out.join( ',' )+')';\n});\n\n/**\n* Serializes a multi-slice as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying a `MultiSlice` instance.\n*\n* @name toJSON\n* @memberof MultiSlice.prototype\n* @type {Function}\n* @returns {Object} serialized MultiSlice\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s1 = new Slice( 0, 10, 1 );\n* var s2 = new Slice( 2, 12, 2 );\n*\n* var ms = new MultiSlice( null, s1, s2, 2 );\n* // returns \n*\n* var o = ms.toJSON();\n* // returns { 'type': 'MultiSlice', 'data': [ null, { 'type': 'Slice', 'data': [ 0, 10, 1 ] }, { 'type': 'Slice', 'data': [ 2, 12, 2 ] }, 2 ] }\n*/\nsetReadOnly( MultiSlice.prototype, 'toJSON', function toJSON() {\n\tvar data;\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tdata = this._data;\n\tout = {\n\t\t'type': 'MultiSlice',\n\t\t'data': []\n\t};\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tv = data[ i ];\n\t\tout.data.push( ( v && typeof v.toJSON === 'function' ) ? v.toJSON() : v );\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default MultiSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Slice from '@stdlib/slice-ctor';\nimport constructorName from '@stdlib/utils-constructor-name';\n\n\n// MAIN //\n\n/**\n* Tests if a value is a Slice object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a Slice object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = new Slice( 0, 10, 2 );\n*\n* var bool = isSlice( s );\n* // returns true\n*/\nfunction isSlice( value ) {\n\treturn (\n\t\tvalue instanceof Slice ||\n\t\tconstructorName( value ) === 'Slice'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport MultiSlice from '@stdlib/slice-multi';\n\n\n// MAIN //\n\n/**\n* Creates a MultiSlice object from a list of MultiSlice constructor arguments.\n*\n* @param {(Slice|integer|null|void)} args - constructor arguments\n* @returns {MultiSlice} MultiSlice object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ void 0, new Slice( 0, 10, 1 ) ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ null, ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ new Slice( 0, 10, 1 ), void 0 ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ , null ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ new Slice( 0, 10, 1 ), void 0, void 0, new Slice( 0, 10, 1 ) ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ , null, null, ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = args2multislice( [ void 0, new Slice( 0, 10, 1 ), null, void 0, new Slice( 2, 9, 2 ), null, void 0 ] );\n* // returns \n*\n* var data = s.data;\n* // returns [ null, , null, null, , null, null ]\n*/\nfunction args2multislice( args ) {\n\tswitch ( args.length ) {\n\tcase 0:\n\t\treturn new MultiSlice();\n\tcase 1:\n\t\treturn new MultiSlice( args[ 0 ] );\n\tcase 2:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ] );\n\tcase 3:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ] );\n\tcase 4:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ] );\n\tcase 5:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ] );\n\tcase 6:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ] );\n\tcase 7:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ] );\n\tcase 8:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ], args[ 7 ] );\n\tcase 9:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ], args[ 7 ], args[ 8 ] );\n\tcase 10:\n\t\treturn new MultiSlice( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ], args[ 5 ], args[ 6 ], args[ 7 ], args[ 8 ], args[ 9 ] );\n\tdefault:\n\t\treturn MultiSlice.apply( null, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default args2multislice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport normalizeSlice from '@stdlib/slice-base-normalize-slice';\nimport int2slice from '@stdlib/slice-base-int2slice';\n\n\n// FUNCTIONS //\n\n/**\n* Normalizes an individual MultiSlice element.\n*\n* @private\n* @param {(Slice|integer|null)} value - input slice\n* @param {NonNegativeInteger} len - maximum number of elements which are allowed in a slice\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {Slice} slice object\n*/\nfunction normalize( value, len, strict ) {\n\t// Case: null\n\tif ( value === null ) {\n\t\t// Create a slice with default extents and a default increment:\n\t\treturn new Slice( 0, len, 1 );\n\t}\n\t// Case: integer\n\tif ( typeof value === 'number' ) {\n\t\treturn int2slice( value, len, strict );\n\t}\n\t// Case: slice\n\treturn normalizeSlice( value, len, strict );\n}\n\n\n// MAIN //\n\n/**\n* Returns a normalized MultiSlice object.\n*\n* @param {MultiSlice} slice - input slice\n* @param {NonNegativeIntegerArray} shape - maximum allowed slice shape\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {(MultiSlice|ErrorObject)} multi-slice object or an error object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n*\n* var shape = [ 10, 10, 10 ];\n*\n* var s1 = new MultiSlice( new Slice( 2, null, 2 ), null, -4 );\n* var s2 = normalizeMultiSlice( s1, shape, false );\n* // returns \n*\n* var d = s2.data;\n* // returns [ , , ]\n*\n* var v = d[ 0 ];\n* // returns \n*\n* var start = v.start;\n* // returns 2\n*\n* var stop = v.stop;\n* // returns 10\n*\n* var step = v.step;\n* // returns 2\n*\n* v = d[ 1 ];\n* // returns \n*\n* start = v.start;\n* // returns 0\n*\n* stop = v.stop;\n* // returns 10\n*\n* step = v.step;\n* // returns 1\n*\n* v = d[ 2 ];\n* // returns \n*\n* start = v.start;\n* // returns 6\n*\n* stop = v.stop;\n* // returns 7\n*\n* step = v.step;\n* // returns 1\n*/\nfunction normalizeMultiSlice( slice, shape, strict ) {\n\tvar data;\n\tvar args;\n\tvar s;\n\tvar i;\n\n\tdata = slice.data;\n\targs = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\ts = normalize( data[ i ], shape[ i ], strict );\n\t\tif ( s.code !== void 0 ) {\n\t\t\treturn s;\n\t\t}\n\t\targs.push( s );\n\t}\n\n\t// Return a normalized slice:\n\treturn args2multislice( args );\n}\n\n\n// EXPORTS //\n\nexport default normalizeMultiSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Slice from '@stdlib/slice-ctor';\nimport eOutOfBounds from './error_out_of_bounds.js';\n\n\n// MAIN //\n\n/**\n* Converts an integer to a Slice object.\n*\n* @param {integer} value - input value\n* @param {NonNegativeInteger} max - index upper bound\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {(Slice|Object)} Slice object or an error object\n*\n* @example\n* var s = int2slice( -4, 10, false );\n* // returns \n*\n* var start = s.start;\n* // returns 6\n*\n* var stop = s.stop;\n* // returns 7\n*\n* var step = s.step;\n* // returns 1\n*/\nfunction int2slice( value, max, strict ) {\n\t// If a value exceeds the last possible index, create an \"empty\" slice...\n\tif ( value >= max ) {\n\t\tif ( strict ) {\n\t\t\treturn eOutOfBounds();\n\t\t}\n\t\treturn new Slice( max, max, 1 );\n\t}\n\t// Check whether we need to resolve a slice relative to the last possible index...\n\tif ( value < 0 ) {\n\t\tvalue = max + value;\n\n\t\t// If a value exceeds the first index, create an \"empty\" slice...\n\t\tif ( value < 0 ) {\n\t\t\tif ( strict ) {\n\t\t\t\treturn eOutOfBounds();\n\t\t\t}\n\t\t\treturn new Slice( 0, 0, 1 );\n\t\t}\n\t\treturn new Slice( value, value+1, 1 ); // e.g., Slice( 2, 3, 1 ), which is the slice equivalent of only selecting the second row\n\t}\n\t// 0 <= s < N\n\treturn new Slice( value, value+1, 1 );\n}\n\n\n// EXPORTS //\n\nexport default int2slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an error object for a slice which exceeds index bounds.\n*\n* @private\n* @returns {Object} error object\n*/\nfunction error() {\n\treturn {\n\t\t'code': 'ERR_SLICE_OUT_OF_BOUNDS'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default error;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Slice from '@stdlib/slice-ctor';\nimport eOutOfBounds from './error_out_of_bounds.js';\n\n\n// MAIN //\n\n/**\n* Returns a normalized Slice object.\n*\n* @param {Slice} slice - input slice\n* @param {NonNegativeInteger} len - maximum number of elements allowed in a slice\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @returns {(Slice|ErrorObject)} slice object or an error object\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice(), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 0\n*\n* v = s.stop;\n* // returns 10\n*\n* v = s.step;\n* // returns 1\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice( null, 20, 2 ), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 0\n*\n* v = s.stop;\n* // returns 10\n*\n* v = s.step;\n* // returns 2\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice( -5, -1, 1 ), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 5\n*\n* v = s.stop;\n* // returns 9\n*\n* v = s.step;\n* // returns 1\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = normalizeSlice( new Slice( -5, null, -1 ), 10, false );\n* // returns \n*\n* var v = s.start;\n* // returns 5\n*\n* v = s.stop;\n* // returns null\n*\n* v = s.step;\n* // returns -1\n*/\nfunction normalizeSlice( slice, len, strict ) {\n\tvar start;\n\tvar stop;\n\tvar step;\n\n\tstart = slice.start;\n\tstop = slice.stop;\n\tstep = slice.step;\n\n\t// If necessary, set the default increment...\n\tif ( step === null ) {\n\t\tstep = 1;\n\t}\n\n\t// Case: start is not specified\n\tif ( start === null ) {\n\t\t// If the step is positive, we default to the first index...\n\t\tif ( step > 0 ) {\n\t\t\tstart = 0;\n\t\t}\n\t\t// If the step is negative, we default to the last index (inclusive)...\n\t\telse {\n\t\t\tstart = len - 1;\n\t\t}\n\t}\n\t// Case: start is negative and should be resolved relative to the last index\n\telse if ( start < 0 ) {\n\t\tstart = len + start;\n\n\t\t// Check whether start still exceeds the index bounds...\n\t\tif ( start < 0 ) {\n\t\t\tif ( strict ) {\n\t\t\t\treturn eOutOfBounds();\n\t\t\t}\n\t\t\t// Clamp to the first index (inclusive):\n\t\t\tstart = 0;\n\t\t}\n\t}\n\t// Case: start exceeds index bounds\n\telse if ( start >= len ) {\n\t\tif ( strict ) {\n\t\t\treturn eOutOfBounds();\n\t\t}\n\t\t// If the increment is negative, clamp to the last index (inclusive)...\n\t\tif ( step < 0 ) {\n\t\t\tstart = len - 1;\n\t\t}\n\t\t// If the increment is positive, clamp to the \"index\" following the last index...\n\t\telse {\n\t\t\tstart = len;\n\t\t}\n\t}\n\n\t// Case: stop is not specified\n\tif ( stop === null ) {\n\t\t// If the step is positive, we default to just beyond the last index, as the stopping index is exclusive...\n\t\tif ( step > 0 ) {\n\t\t\tstop = len;\n\t\t}\n\t\t// If the step is negative, we default to a sentinel value indicating that one should iterate through the first index when decrementing...\n\t\telse {\n\t\t\tstop = null;\n\t\t}\n\t}\n\t// Case: stop is negative and should be resolved relative to the last index\n\telse if ( stop < 0 ) {\n\t\tstop = len + stop;\n\n\t\t// Check whether stop still exceeds the index bounds...\n\t\tif ( stop < 0 ) {\n\t\t\t// If the step is positive, we should clamp to the first index, as Slice(x,0,step) is an empty slice regardless of `x`...\n\t\t\tif ( step > 0 ) {\n\t\t\t\tif ( strict ) {\n\t\t\t\t\treturn eOutOfBounds();\n\t\t\t\t}\n\t\t\t\tstop = 0;\n\t\t\t}\n\t\t\t// If the step is negative, we default to just beyond the first index (using a sentinel value), as the stopping index is exclusive, thus indicating to iterate through the first index when decrementing...\n\t\t\telse {\n\t\t\t\tif ( strict && stop < -1 ) {\n\t\t\t\t\treturn eOutOfBounds();\n\t\t\t\t}\n\t\t\t\tstop = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Case: stop exceeds index bounds\n\telse if ( stop > len ) {\n\t\tif ( strict ) {\n\t\t\treturn eOutOfBounds();\n\t\t}\n\t\t// Clamp to just beyond the last index, as the stopping index is exclusive:\n\t\tstop = len;\n\t}\n\n\t// Return a normalized slice:\n\treturn new Slice( start, stop, step );\n}\n\n\n// EXPORTS //\n\nexport default normalizeSlice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an error object for a slice which exceeds index bounds.\n*\n* @private\n* @returns {Object} error object\n*/\nfunction error() {\n\treturn {\n\t\t'code': 'ERR_SLICE_OUT_OF_BOUNDS'\n\t};\n}\n\n\n// EXPORTS //\n\nexport default error;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ceil from '@stdlib/math-base-special-ceil';\n\n\n// MAIN //\n\n/**\n* Returns the number of elements in a normalized slice.\n*\n* @param {Slice} slice - normalized Slice object\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 2, null, 1 );\n* // returns \n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 8\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 9\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 3\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 2, null, 2 );\n* // returns \n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 4\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 5\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 2\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( -1, null, -2 );\n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 5\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 6\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 3\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 3, 5, -1 );\n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 0\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import normalizeSlice from '@stdlib/slice-base-normalize-slice';\n*\n* var s = new Slice( 5, 3, 1 );\n*\n* var v = sliceLength( normalizeSlice( s, 10, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 11, false ) );\n* // returns 0\n*\n* v = sliceLength( normalizeSlice( s, 5, false ) );\n* // returns 0\n*/\nfunction sliceLength( slice ) {\n\tvar inc;\n\tvar x1;\n\tvar x2;\n\n\tx1 = slice.start;\n\tx2 = slice.stop;\n\tinc = slice.step;\n\n\t// For a normalized slice, stop should only be `null` when the increment is negative...\n\tif ( x2 === null ) {\n\t\tx2 = -1; // set to -1 to ensure that the first element is included\n\t}\n\tif (\n\t\t// If the increment is positive, the slice is empty whenever the starting index is greater than or equal to the stopping index:\n\t\t( inc > 0 && x1 >= x2 ) ||\n\n\t\t// If the increment is negative, the slice is empty whenever the starting index is less than or equal to the stopping index:\n\t\t( inc < 0 && x1 <= x2 )\n\t) {\n\t\treturn 0;\n\t}\n\treturn ceil( ( x2 - x1 ) / inc );\n}\n\n\n// EXPORTS //\n\nexport default sliceLength;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport sliceLength from '@stdlib/slice-base-length';\n\n\n// MAIN //\n\n/**\n* Returns the shape of a normalized multi-slice.\n*\n* @param {MultiSlice} slice - normalized MultiSlice object\n* @returns {NonNegativeIntegerArray} slice shape\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\n*\n* var s = new MultiSlice( new Slice( 2, null, 1 ), null, 10 );\n*\n* var v = sliceShape( normalizeMultiSlice( s, [ 10, 5, 20 ], false ) );\n* // returns [ 8, 5, 1 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 11, 3, 12 ], false ) );\n* // returns [ 9, 3, 1 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 5, 10, 15 ], false ) );\n* // returns [ 3, 10, 1 ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\n*\n* var s = new MultiSlice( null, new Slice( -1, 3, -2 ) );\n*\n* var v = sliceShape( normalizeMultiSlice( s, [ 10, 5 ], false ) );\n* // returns [ 10, 1 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 11, 10 ], false ) );\n* // returns [ 11, 3 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 5, 15 ], false ) );\n* // returns [ 5, 6 ]\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\n*\n* var s = new MultiSlice( 1, new Slice( 0, 0, 1 ) );\n*\n* var v = sliceShape( normalizeMultiSlice( s, [ 10, 5 ], false ) );\n* // returns [ 1, 0 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 11, 10 ], false ) );\n* // returns [ 1, 0 ]\n*\n* v = sliceShape( normalizeMultiSlice( s, [ 5, 15 ], false ) );\n* // returns [ 1, 0 ]\n*/\nfunction sliceShape( slice ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.push( sliceLength( data[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default sliceShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeMultiSlice from '@stdlib/slice-base-normalize-multi-slice';\nimport nonreducedDimensions from '@stdlib/slice-base-nonreduced-dimensions';\nimport sliceShape from '@stdlib/slice-base-shape';\nimport take from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport format from '@stdlib/string-format';\nimport sliceStart from './slice_start.js';\nimport slice2strides from './slice_strides.js';\nimport empty from './empty.js';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {MultiSlice} s - multi-slice object\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction slice( x, s, strict, writable ) {\n\tvar strides;\n\tvar offset;\n\tvar dtype;\n\tvar shape;\n\tvar order;\n\tvar sdims;\n\tvar ndims;\n\tvar ctor;\n\tvar sh;\n\tvar ns;\n\n\t// Retrieve array meta data:\n\tdtype = getDType( x );\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\toffset = getOffset( x );\n\torder = getOrder( x );\n\tndims = shape.length;\n\n\t// Ensure that the number of array dimensions matches the number of slices:\n\tif ( s.ndims !== ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', shape.join( ',' ), s.ndims ) );\n\t}\n\t// Resolve the output array constructor:\n\tctor = x.constructor;\n\n\t// If provided a zero-dimensional input array, return a zero-dimensional array view...\n\tif ( ndims === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), shape, strides, offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Resolve the indices of the non-reduced dimensions:\n\tsdims = nonreducedDimensions( s );\n\n\t// Normalize the slice object based on the array shape:\n\tns = normalizeMultiSlice( s, shape, true );\n\n\t// Check whether the slice exceeds array bounds...\n\tif ( ns.code ) {\n\t\tif ( strict ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t}\n\t\t// Normalize again, this time allowing for out-of-bounds indices:\n\t\tns = normalizeMultiSlice( s, shape, false );\n\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\n\t\t// If the non-reduced dimensions contain elements, this means that at least one reduced dimension exceeded array bounds; in which case, we generate a shape containing zeros:\n\t\tif ( numel( take( sh, sdims ) ) > 0 ) {\n\t\t\tsh = zeros( sh.length );\n\t\t}\n\t} else {\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\t}\n\t// If the slice does not contain any elements, return an empty array...\n\tif ( numel( sh ) === 0 ) {\n\t\treturn empty( ctor, dtype, take( sh, sdims ), order, !writable );\n\t}\n\t// Resolve the index offset of the first element indexed by the slice:\n\toffset = sliceStart( ns, strides, offset ); // TODO: @stdlib/ndarray/base/sind2bind\n\n\t// Remove reduced dimensions from the slice shape:\n\tsh = take( sh, sdims );\n\n\t// If all dimensions were reduced, return a zero-dimensional array...\n\tif ( sh.length === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), [], [ 0 ], offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Update strides according to slice steps:\n\tstrides = slice2strides( ns, strides, sdims ); // TODO: @stdlib/ndarray/base/slice2strides???\n\n\t// Return a slice view:\n\treturn new ctor( dtype, getData( x ), sh, strides, offset, order, {\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default slice;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a list of non-reduced dimensions in an un-normalized multi-slice.\n*\n* @param {MultiSlice} slice - input slice\n* @returns {NonNegativeIntegerArray} list of non-reduced dimensions\n*\n* @example\n* import MultiSlice from '@stdlib/slice-multi';\n* import Slice from '@stdlib/slice-ctor';\n*\n* var s = new MultiSlice( 1, null, 2, void 0, new Slice( 0, 10, 1 ) );\n* // returns \n*\n* var indices = nonreducedDimensions( s );\n* // returns [ 1, 3, 4 ]\n*/\nfunction nonreducedDimensions( slice ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tif ( typeof data[ i ] !== 'number' ) {\n\t\t\tout.push( i );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default nonreducedDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport zeros from '@stdlib/array-base-zeros';\n\n\n// MAIN //\n\n/**\n* Returns an empty n-dimensional ndarray.\n*\n* @private\n* @param {Function} ctor - ndarray constructor\n* @param {string} dtype - array data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - layout order\n* @param {boolean} readonly - boolean indicating whether a returned array should be read-only\n* @returns {ndarray} empty ndarray\n*/\nfunction empty( ctor, dtype, shape, order, readonly ) {\n\tvar strides;\n\tvar ndims;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\tstrides = [ 0 ];\n\t} else {\n\t\tstrides = zeros( ndims );\n\t}\n\treturn new ctor( dtype, buffer( dtype, 0 ), shape, strides, 0, order, {\n\t\t'readonly': readonly\n\t});\n}\n\n\n// EXPORTS //\n\nexport default empty;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Resolves the index offset of the first element indexed by a normalized multi-slice.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - array index offset\n* @returns {NonNegativeInteger} index offset of the first element indexed by a normalized multi-slice object\n*/\nfunction sliceStart( slice, strides, offset ) {\n\tvar data;\n\tvar idx;\n\tvar i;\n\n\tdata = slice.data;\n\tidx = offset;\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tidx += strides[ i ] * data[ i ].start;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default sliceStart;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Resolves slice strides for a provided normalized multi-slice object.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeIntegerArray} rdims - indices of non-reduced dimensions\n* @returns {IntegerArray} slice strides\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n*\n* var s = new MultiSlice( new Slice( 2, 3, 1 ), new Slice( 10, null, -2 ) );\n* // returns \n*\n* var strides = slice2strides( s, [ 8, 2 ], [ 1 ] );\n* // returns [ -4 ]\n*/\nfunction slice2strides( slice, strides, rdims ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\tvar j;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < rdims.length; i++ ) {\n\t\tj = rdims[ i ];\n\t\tout.push( strides[j] * data[j].step );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default slice2strides;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport filled from '@stdlib/array-base-filled';\n\n\n// MAIN //\n\n/**\n* Returns a \"generic\" array filled with null values.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = nulls( 3 );\n* // returns [ null, null, null ]\n*/\nfunction nulls( len ) {\n\treturn filled( null, len );\n}\n\n\n// EXPORTS //\n\nexport default nulls;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport slice from '@stdlib/ndarray-base-slice';\nimport nulls from '@stdlib/array-base-nulls';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along a specified dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to reverse\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimension( x, 0, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction reverseDimension( x, dim, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve the number of array dimensions:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index...\n\td = dim;\n\tif ( d < 0 ) {\n\t\td += N;\n\t\tif ( d < 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t\t}\n\t} else if ( d >= N ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = nulls( N );\n\targs[ d ] = new Slice( null, null, -1 );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nexport default reverseDimension;\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* Flatten a shape to a specified depth.\n*\n* @module @stdlib/ndarray-base-flatten-shape\n*\n* @example\n* import flattenShape from '@stdlib/ndarray-base-flatten-shape';\n*\n* var sh = flattenShape( [ 3, 2 ], 1 );\n* // returns [ 6 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\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* Flatten a shape starting from a specified dimension.\n*\n* @module @stdlib/ndarray-base-flatten-shape-from\n*\n* @example\n* import flattenShapeFrom from '@stdlib/ndarray-base-flatten-shape-from';\n*\n* var sh = flattenShapeFrom( [ 3, 3, 2 ], 1 );\n* // returns [ 3, 6 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEachnd( x, fcn, {} );\n*/\nfunction forEachnd( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tfcn.call( thisArg, get( xbuf, ix ), idx, x.ref );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEachnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEachnd( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEachnd( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar idx;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tfcn.call( thisArg, xbuf[ ix ], idx, x.ref );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEachnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorForEach2d from './2d_blocked_accessors.js';\nimport blockedaccessorForEach3d from './3d_blocked_accessors.js';\nimport blockedaccessorForEach4d from './4d_blocked_accessors.js';\nimport blockedaccessorForEach5d from './5d_blocked_accessors.js';\nimport blockedaccessorForEach6d from './6d_blocked_accessors.js';\nimport blockedaccessorForEach7d from './7d_blocked_accessors.js';\nimport blockedaccessorForEach8d from './8d_blocked_accessors.js';\nimport blockedaccessorForEach9d from './9d_blocked_accessors.js';\nimport blockedaccessorForEach10d from './10d_blocked_accessors.js';\nimport blockedForEach2d from './2d_blocked.js';\nimport blockedForEach3d from './3d_blocked.js';\nimport blockedForEach4d from './4d_blocked.js';\nimport blockedForEach5d from './5d_blocked.js';\nimport blockedForEach6d from './6d_blocked.js';\nimport blockedForEach7d from './7d_blocked.js';\nimport blockedForEach8d from './8d_blocked.js';\nimport blockedForEach9d from './9d_blocked.js';\nimport blockedForEach10d from './10d_blocked.js';\nimport accessorForEach0d from './0d_accessors.js';\nimport accessorForEach1d from './1d_accessors.js';\nimport accessorForEach2d from './2d_accessors.js';\nimport accessorForEach3d from './3d_accessors.js';\nimport accessorForEach4d from './4d_accessors.js';\nimport accessorForEach5d from './5d_accessors.js';\nimport accessorForEach6d from './6d_accessors.js';\nimport accessorForEach7d from './7d_accessors.js';\nimport accessorForEach8d from './8d_accessors.js';\nimport accessorForEach9d from './9d_accessors.js';\nimport accessorForEach10d from './10d_accessors.js';\nimport accessorForEachnd from './nd_accessors.js';\nimport forEach0d from './0d.js';\nimport forEach1d from './1d.js';\nimport forEach2d from './2d.js';\nimport forEach3d from './3d.js';\nimport forEach4d from './4d.js';\nimport forEach5d from './5d.js';\nimport forEach6d from './6d.js';\nimport forEach7d from './7d.js';\nimport forEach8d from './8d.js';\nimport forEach9d from './9d.js';\nimport forEach10d from './10d.js';\nimport forEachnd from './nd.js';\n\n\n// VARIABLES //\n\nvar FOR_EACH = [\n\tforEach0d,\n\tforEach1d,\n\tforEach2d,\n\tforEach3d,\n\tforEach4d,\n\tforEach5d,\n\tforEach6d,\n\tforEach7d,\n\tforEach8d,\n\tforEach9d,\n\tforEach10d\n];\nvar ACCESSOR_FOR_EACH = [\n\taccessorForEach0d,\n\taccessorForEach1d,\n\taccessorForEach2d,\n\taccessorForEach3d,\n\taccessorForEach4d,\n\taccessorForEach5d,\n\taccessorForEach6d,\n\taccessorForEach7d,\n\taccessorForEach8d,\n\taccessorForEach9d,\n\taccessorForEach10d\n];\nvar BLOCKED_FOR_EACH = [\n\tblockedForEach2d, // 0\n\tblockedForEach3d,\n\tblockedForEach4d,\n\tblockedForEach5d,\n\tblockedForEach6d,\n\tblockedForEach7d,\n\tblockedForEach8d,\n\tblockedForEach9d,\n\tblockedForEach10d // 8\n];\nvar BLOCKED_ACCESSOR_FOR_EACH = [\n\tblockedaccessorForEach2d, // 0\n\tblockedaccessorForEach3d,\n\tblockedaccessorForEach4d,\n\tblockedaccessorForEach5d,\n\tblockedaccessorForEach6d,\n\tblockedaccessorForEach7d,\n\tblockedaccessorForEach8d,\n\tblockedaccessorForEach9d,\n\tblockedaccessorForEach10d // 8\n];\nvar MAX_DIMS = FOR_EACH.length - 1;\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {Callback} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach( [ x ], naryFunction( log, 1 ) );\n*/\nfunction forEach( arrays, fcn, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t\t}\n\t\treturn FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t\t}\n\t\treturn FOR_EACH[ ndims ]( x, fcn, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_FOR_EACH[ ndims-2 ]( x, fcn, thisArg );\n\t\t}\n\t\treturn BLOCKED_FOR_EACH[ ndims-2 ]( x, fcn, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorForEachnd( x, fcn, thisArg );\n\t}\n\tforEachnd( x, fcn, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default forEach;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 2 );\n*\n* // Define the shape of the array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach0d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach0d( x, fcn, thisArg ) {\n\tfcn.call( thisArg, x.data[ x.offset ], [], x.ref );\n}\n\n\n// EXPORTS //\n\nexport default forEach0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach1d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach1d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tfcn.call( thisArg, xbuf[ ix ], [ i0 ], x.ref );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach2d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach2d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref );\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach3d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach3d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach4d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach4d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach5d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach5d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach6d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach6d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach7d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach7d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach8d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach8d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach9d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach9d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* forEach10d( x, naryFunction( log, 1 ), {} );\n*/\nfunction forEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 4 );\n*\n* // Define the shape of the array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach0d( x, fcn, {} );\n*/\nfunction forEach0d( x, fcn, thisArg ) {\n\tfcn.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref );\n}\n\n\n// EXPORTS //\n\nexport default forEach0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach1d( x, fcn, {} );\n*/\nfunction forEach1d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tfcn.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach2d( x, fcn, {} );\n*/\nfunction forEach2d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach3d( x, fcn, {} );\n*/\nfunction forEach3d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach4d( x, fcn, {} );\n*/\nfunction forEach4d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach5d( x, fcn, {} );\n*/\nfunction forEach5d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach6d( x, fcn, {} );\n*/\nfunction forEach6d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach7d( x, fcn, {} );\n*/\nfunction forEach7d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach8d( x, fcn, {} );\n*/\nfunction forEach8d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach9d( x, fcn, {} );\n*/\nfunction forEach9d( x, fcn, thisArg ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* forEach10d( x, fcn, {} );\n*/\nfunction forEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar idx;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default forEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach2d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach2d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach3d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach3d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach4d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach4d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach5d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach5d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach6d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach6d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach7d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach7d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach8d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach8d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach9d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach9d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import naryFunction from '@stdlib/utils-nary-function';\n* import log from '@stdlib/console-log';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the callback function:\n* blockedforEach10d( x, naryFunction( log, 1 ), {} );\n*/\nfunction blockedforEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach2d( x, fcn, {} );\n*/\nfunction blockedforEach2d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach3d( x, fcn, {} );\n*/\nfunction blockedforEach3d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach4d( x, fcn, {} );\n*/\nfunction blockedforEach4d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach5d( x, fcn, {} );\n*/\nfunction blockedforEach5d( x, fcn, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach6d( x, fcn, {} );\n*/\nfunction blockedforEach6d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach7d( x, fcn, {} );\n*/\nfunction blockedforEach7d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach8d( x, fcn, {} );\n*/\nfunction blockedforEach8d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach9d( x, fcn, {} );\n*/\nfunction blockedforEach9d( x, fcn, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Invokes a callback function once for each element in an ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {*} x.dtype- data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import log from '@stdlib/console-log';\n*\n* function fcn( value ) {\n* log( '%s', value.toString() );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the callback function:\n* blockedforEach10d( x, fcn, {} );\n*/\nfunction blockedforEach10d( x, fcn, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar idx;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedforEach10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @param {*} dtype - output array data type\n* @param {string} order - memory layout (either 'row-major' or 'column-major')\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = scalar2ndarray( 1.0, 'float64', 'row-major' );\n* // returns \n*\n* var sh = getShape( x );\n* // returns []\n*\n* var dt = String( getDType( x ) );\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*/\nfunction scalar2ndarray( value, dtype, order ) {\n\tvar buf;\n\tvar set;\n\tvar dt;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tdt = resolveStr( dtype );\n\tif ( isComplexDataType( dt ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, value );\n\treturn new ndarray( dtype, buf, [], [ 0 ], 0, order );\n}\n\n\n// EXPORTS //\n\nexport default scalar2ndarray;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includesnd( x, 6.0 );\n* // returns true\n*\n* out = includesnd( x, 100.0 );\n* // returns false\n*/\nfunction includesnd( x, value ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includesnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includesnd( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includesnd( x, v );\n* // returns false\n*/\nfunction includesnd( x, value ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includesnd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includesnd( x, 6.0 );\n* // returns true\n*\n* out = includesnd( x, 100.0 );\n* // returns false\n*/\nfunction includesnd( x, value ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includesnd;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport isComplexLike from '@stdlib/assert-is-complex-like';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport real from '@stdlib/complex-float64-real';\nimport imag from '@stdlib/complex-float64-imag';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorincludes2d from './2d_blocked_accessors.js';\nimport blockedaccessorincludes3d from './3d_blocked_accessors.js';\nimport blockedaccessorincludes4d from './4d_blocked_accessors.js';\nimport blockedaccessorincludes5d from './5d_blocked_accessors.js';\nimport blockedaccessorincludes6d from './6d_blocked_accessors.js';\nimport blockedaccessorincludes7d from './7d_blocked_accessors.js';\nimport blockedaccessorincludes8d from './8d_blocked_accessors.js';\nimport blockedaccessorincludes9d from './9d_blocked_accessors.js';\nimport blockedaccessorincludes10d from './10d_blocked_accessors.js'; // eslint-disable-line id-length\nimport blockedcomplexincludes2d from './2d_blocked_complex.js';\nimport blockedcomplexincludes3d from './3d_blocked_complex.js';\nimport blockedcomplexincludes4d from './4d_blocked_complex.js';\nimport blockedcomplexincludes5d from './5d_blocked_complex.js';\nimport blockedcomplexincludes6d from './6d_blocked_complex.js';\nimport blockedcomplexincludes7d from './7d_blocked_complex.js';\nimport blockedcomplexincludes8d from './8d_blocked_complex.js';\nimport blockedcomplexincludes9d from './9d_blocked_complex.js';\nimport blockedcomplexincludes10d from './10d_blocked_complex.js';\nimport blockedincludes2d from './2d_blocked.js';\nimport blockedincludes3d from './3d_blocked.js';\nimport blockedincludes4d from './4d_blocked.js';\nimport blockedincludes5d from './5d_blocked.js';\nimport blockedincludes6d from './6d_blocked.js';\nimport blockedincludes7d from './7d_blocked.js';\nimport blockedincludes8d from './8d_blocked.js';\nimport blockedincludes9d from './9d_blocked.js';\nimport blockedincludes10d from './10d_blocked.js';\nimport accessorincludes0d from './0d_accessors.js';\nimport accessorincludes1d from './1d_accessors.js';\nimport accessorincludes2d from './2d_accessors.js';\nimport accessorincludes3d from './3d_accessors.js';\nimport accessorincludes4d from './4d_accessors.js';\nimport accessorincludes5d from './5d_accessors.js';\nimport accessorincludes6d from './6d_accessors.js';\nimport accessorincludes7d from './7d_accessors.js';\nimport accessorincludes8d from './8d_accessors.js';\nimport accessorincludes9d from './9d_accessors.js';\nimport accessorincludes10d from './10d_accessors.js';\nimport accessorincludesnd from './nd_accessors.js';\nimport complexincludes0d from './0d_complex.js';\nimport complexincludes1d from './1d_complex.js';\nimport complexincludes2d from './2d_complex.js';\nimport complexincludes3d from './3d_complex.js';\nimport complexincludes4d from './4d_complex.js';\nimport complexincludes5d from './5d_complex.js';\nimport complexincludes6d from './6d_complex.js';\nimport complexincludes7d from './7d_complex.js';\nimport complexincludes8d from './8d_complex.js';\nimport complexincludes9d from './9d_complex.js';\nimport complexincludes10d from './10d_complex.js';\nimport complexincludesnd from './nd_complex.js';\nimport includes0d from './0d.js';\nimport includes1d from './1d.js';\nimport includes2d from './2d.js';\nimport includes3d from './3d.js';\nimport includes4d from './4d.js';\nimport includes5d from './5d.js';\nimport includes6d from './6d.js';\nimport includes7d from './7d.js';\nimport includes8d from './8d.js';\nimport includes9d from './9d.js';\nimport includes10d from './10d.js';\nimport includesnd from './nd.js';\n\n\n// VARIABLES //\n\nvar INCLUDES = [\n\tincludes0d,\n\tincludes1d,\n\tincludes2d,\n\tincludes3d,\n\tincludes4d,\n\tincludes5d,\n\tincludes6d,\n\tincludes7d,\n\tincludes8d,\n\tincludes9d,\n\tincludes10d\n];\nvar ACCESSOR_INCLUDES = [\n\taccessorincludes0d,\n\taccessorincludes1d,\n\taccessorincludes2d,\n\taccessorincludes3d,\n\taccessorincludes4d,\n\taccessorincludes5d,\n\taccessorincludes6d,\n\taccessorincludes7d,\n\taccessorincludes8d,\n\taccessorincludes9d,\n\taccessorincludes10d\n];\nvar COMPLEX_INCLUDES = [\n\tcomplexincludes0d,\n\tcomplexincludes1d,\n\tcomplexincludes2d,\n\tcomplexincludes3d,\n\tcomplexincludes4d,\n\tcomplexincludes5d,\n\tcomplexincludes6d,\n\tcomplexincludes7d,\n\tcomplexincludes8d,\n\tcomplexincludes9d,\n\tcomplexincludes10d\n];\nvar BLOCKED_INCLUDES = [\n\tblockedincludes2d, // 0\n\tblockedincludes3d,\n\tblockedincludes4d,\n\tblockedincludes5d,\n\tblockedincludes6d,\n\tblockedincludes7d,\n\tblockedincludes8d,\n\tblockedincludes9d,\n\tblockedincludes10d // 8\n];\nvar BLOCKED_ACCESSOR_INCLUDES = [\n\tblockedaccessorincludes2d, // 0\n\tblockedaccessorincludes3d,\n\tblockedaccessorincludes4d,\n\tblockedaccessorincludes5d,\n\tblockedaccessorincludes6d,\n\tblockedaccessorincludes7d,\n\tblockedaccessorincludes8d,\n\tblockedaccessorincludes9d,\n\tblockedaccessorincludes10d // 8\n];\nvar BLOCKED_COMPLEX_INCLUDES = [\n\tblockedcomplexincludes2d, // 0\n\tblockedcomplexincludes3d,\n\tblockedcomplexincludes4d,\n\tblockedcomplexincludes5d,\n\tblockedcomplexincludes6d,\n\tblockedcomplexincludes7d,\n\tblockedcomplexincludes8d,\n\tblockedcomplexincludes9d,\n\tblockedcomplexincludes10d // 8\n];\nvar MAX_DIMS = INCLUDES.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and a zero-dimensional search element array\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create the search element ndarray-like object:\n* var searchElement = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 2.0 ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes( [ x, searchElement ] );\n* // returns true\n*/\nfunction includes( arrays ) {\n\tvar isCmplx;\n\tvar value;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tvalue = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the search element as a scalar:\n\tvalue = value.accessors[ 0 ]( value.data, value.offset );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tif ( !isBoolean( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tif ( !isComplexLike( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\t// TODO: consider adding something like `complex/base/complex2object` where we normalize a user-provided complex-like object to a standardized object shape\n\t\tvalue = {\n\t\t\t're': real( value ),\n\t\t\t'im': imag( value )\n\t\t};\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\treturn INCLUDES[ ndims ]( x, value );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\t// An empty array is a trivial case in which an array does not contain a search element:\n\t\treturn false;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\treturn INCLUDES[ ndims ]( x, value );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_INCLUDES[ 1 ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_INCLUDES[ 1 ]( x, value );\n\t\t}\n\t\treturn INCLUDES[ 1 ]( x, value );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_INCLUDES[ 1 ]( x, value );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_INCLUDES[ 1 ]( x, value );\n\t\t\t}\n\t\t\treturn INCLUDES[ 1 ]( x, value );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_INCLUDES[ ndims ]( x, value );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_INCLUDES[ ndims ]( x, value );\n\t\t\t}\n\t\t\treturn INCLUDES[ ndims ]( x, value );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_INCLUDES[ ndims-2 ]( x, value );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_INCLUDES[ ndims-2 ]( x, value );\n\t\t}\n\t\treturn BLOCKED_INCLUDES[ ndims-2 ]( x, value );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorincludesnd( x, value );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexincludesnd( x, value );\n\t}\n\treturn includesnd( x, value );\n}\n\n\n// EXPORTS //\n\nexport default includes;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes0d( x, 2.0 );\n* // returns true\n*\n* out = includes0d( x, 100.0 );\n* // returns false\n*/\nfunction includes0d( x, value ) {\n\treturn ( x.data[ x.offset ] === value );\n}\n\n\n// EXPORTS //\n\nexport default includes0d;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes1d( x, 6.0 );\n* // returns true\n*\n* out = includes1d( x, 100.0 );\n* // returns false\n*/\nfunction includes1d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] === value ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes2d( x, 6.0 );\n* // returns true\n*\n* out = includes2d( x, 100.0 );\n* // returns false\n*/\nfunction includes2d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes3d( x, 6.0 );\n* // returns true\n*\n* out = includes3d( x, 100.0 );\n* // returns false\n*/\nfunction includes3d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes4d( x, 6.0 );\n* // returns true\n*\n* out = includes4d( x, 100.0 );\n* // returns false\n*/\nfunction includes4d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes5d( x, 6.0 );\n* // returns true\n*\n* out = includes5d( x, 100.0 );\n* // returns false\n*/\nfunction includes5d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes6d( x, 6.0 );\n* // returns true\n*\n* out = includes6d( x, 100.0 );\n* // returns false\n*/\nfunction includes6d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes7d( x, 6.0 );\n* // returns true\n*\n* out = includes7d( x, 100.0 );\n* // returns false\n*/\nfunction includes7d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes8d( x, 6.0 );\n* // returns true\n*\n* out = includes8d( x, 100.0 );\n* // returns false\n*/\nfunction includes8d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes9d( x, 6.0 );\n* // returns true\n*\n* out = includes9d( x, 100.0 );\n* // returns false\n*/\nfunction includes9d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = includes10d( x, 6.0 );\n* // returns true\n*\n* out = includes10d( x, 100.0 );\n* // returns false\n*/\nfunction includes10d( x, value ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes10d;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes0d( x, 2.0 );\n* // returns true\n*\n* out = includes0d( x, 100.0 );\n* // returns false\n*/\nfunction includes0d( x, value ) {\n\treturn ( x.accessors[ 0 ]( x.data, x.offset ) === value );\n}\n\n\n// EXPORTS //\n\nexport default includes0d;\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* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes1d( x, 6.0 );\n* // returns true\n*\n* out = includes1d( x, 100.0 );\n* // returns false\n*/\nfunction includes1d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes2d( x, 6.0 );\n* // returns true\n*\n* out = includes2d( x, 100.0 );\n* // returns false\n*/\nfunction includes2d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes3d( x, 6.0 );\n* // returns true\n*\n* out = includes3d( x, 100.0 );\n* // returns false\n*/\nfunction includes3d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes4d( x, 6.0 );\n* // returns true\n*\n* out = includes4d( x, 100.0 );\n* // returns false\n*/\nfunction includes4d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes5d( x, 6.0 );\n* // returns true\n*\n* out = includes5d( x, 100.0 );\n* // returns false\n*/\nfunction includes5d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes6d( x, 6.0 );\n* // returns true\n*\n* out = includes6d( x, 100.0 );\n* // returns false\n*/\nfunction includes6d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes7d( x, 6.0 );\n* // returns true\n*\n* out = includes7d( x, 100.0 );\n* // returns false\n*/\nfunction includes7d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes8d( x, 6.0 );\n* // returns true\n*\n* out = includes8d( x, 100.0 );\n* // returns false\n*/\nfunction includes8d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes9d( x, 6.0 );\n* // returns true\n*\n* out = includes9d( x, 100.0 );\n* // returns false\n*/\nfunction includes9d( x, value ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = includes10d( x, 6.0 );\n* // returns true\n*\n* out = includes10d( x, 100.0 );\n* // returns false\n*/\nfunction includes10d( x, value ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes10d;\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* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 1.0,\n* 'im': 2.0\n* };\n* var out = includes0d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes0d( x, v );\n* // returns false\n*/\nfunction includes0d( x, value ) {\n\treturn ( x.data[ x.offset ] === value.re && x.data[ x.offset+1 ] === value.im ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default includes0d;\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* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes1d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes1d( x, v );\n* // returns false\n*/\nfunction includes1d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\treturn true;\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes2d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes2d( x, v );\n* // returns false\n*/\nfunction includes2d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes3d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes3d( x, v );\n* // returns false\n*/\nfunction includes3d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes3d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes4d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes4d( x, v );\n* // returns false\n*/\nfunction includes4d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes5d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes5d( x, v );\n* // returns false\n*/\nfunction includes5d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes6d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes6d( x, v );\n* // returns false\n*/\nfunction includes6d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes7d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes7d( x, v );\n* // returns false\n*/\nfunction includes7d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes8d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes8d( x, v );\n* // returns false\n*/\nfunction includes8d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes9d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes9d( x, v );\n* // returns false\n*/\nfunction includes9d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = includes10d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = includes10d( x, v );\n* // returns false\n*/\nfunction includes10d( x, value ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default includes10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes2d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes2d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes2d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes3d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes3d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes3d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes4d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes4d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes4d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes5d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes5d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes5d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes6d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes6d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes6d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes7d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes7d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes7d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes8d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes8d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes8d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes9d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes9d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes9d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes10d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes10d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes10d( x, value ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes2d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes2d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes2d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes3d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes3d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes3d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes4d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes4d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes4d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes5d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes5d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes5d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes6d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes6d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes6d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes7d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes7d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes7d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes8d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes8d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes8d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes9d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes9d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes9d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether an ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} value - search element\n* @returns {boolean} result\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Perform reduction:\n* var out = blockedincludes10d( x, 6.0 );\n* // returns true\n*\n* out = blockedincludes10d( x, 100.0 );\n* // returns false\n*/\nfunction blockedincludes10d( x, value ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) === value ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes2d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes2d( x, v );\n* // returns false\n*/\nfunction blockedincludes2d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) { // eslint-disable-line max-len\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes3d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes3d( x, v );\n* // returns false\n*/\nfunction blockedincludes3d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes4d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes4d( x, v );\n* // returns false\n*/\nfunction blockedincludes4d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes5d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes5d( x, v );\n* // returns false\n*/\nfunction blockedincludes5d( x, value ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes6d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes6d( x, v );\n* // returns false\n*/\nfunction blockedincludes6d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes7d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes7d( x, v );\n* // returns false\n*/\nfunction blockedincludes7d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes8d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes8d( x, v );\n* // returns false\n*/\nfunction blockedincludes8d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes9d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes9d( x, v );\n* // returns false\n*/\nfunction blockedincludes9d( x, value ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether a reinterpreted complex number ndarray contains a specified value via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {ComplexLike} value - search element\n* @returns {boolean} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Perform reduction:\n* var v = {\n* 're': 3.0,\n* 'im': 4.0\n* };\n* var out = blockedincludes10d( x, v );\n* // returns true\n*\n* v = {\n* 're': -3.0,\n* 'im': -4.0\n* };\n* out = blockedincludes10d( x, v );\n* // returns false\n*/\nfunction blockedincludes10d( x, value ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] === value.re && xbuf[ ix+1 ] === value.im ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedincludes10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcast from '@stdlib/ndarray-base-broadcast-array';\nimport getShape from '@stdlib/ndarray-base-shape';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = maybeBroadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction maybeBroadcastArray( arr, shape ) {\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\n\t// Check whether we need to broadcast the input array...\n\tif ( sh.length === N ) {\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== shape[ i ] ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( arr, shape );\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( arr, shape );\n}\n\n\n// EXPORTS //\n\nexport default maybeBroadcastArray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Canonical double-precision complex floating-point zero.\n*\n* @module @stdlib/constants-complex128-nan\n* @type {Complex128}\n*\n* @example\n* import COMPLEX128_NAN from '@stdlib/constants-complex128-nan';\n* // returns \n*/\n\n// MODULES //\n\nimport Complex128 from '@stdlib/complex-float64-ctor';\n\n\n// MAIN //\n\n/**\n* Canonical double-precision complex floating-point NaN.\n*\n* @constant\n* @type {Complex128}\n*/\nvar COMPLEX128_NAN = new Complex128( NaN, NaN );\n\n\n// EXPORTS //\n\nexport default COMPLEX128_NAN;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the next Cartesian index (row-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction rowmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = ndims-1; i > dim; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i >= 0; i-- ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i -= 1; i >= 0; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Returns the next Cartesian index (column-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction columnmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = 0; i < dim; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i < ndims; i++ ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i += 1; i < ndims; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices) and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object|null)} output array (or null)\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0, [ 0 ] );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var out = [ 0, 0, 0 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1, out );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0, [] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10, [ 0 ] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10, [ 0 ] );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim, out ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn null;\n\t}\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\t// Out-of-bounds:\n\t\t\treturn null;\n\t\t}\n\t} else if ( dim >= ndims ) {\n\t\t// Out-of-bounds:\n\t\treturn null;\n\t}\n\tif ( order === ROW_MAJOR ) {\n\t\treturn rowmajor( ndims, shape, idx, dim, out );\n\t}\n\t// order === 'column-major'\n\treturn columnmajor( ndims, shape, idx, dim, out );\n}\n\n\n// EXPORTS //\n\nexport default nextCartesianIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @returns {(NonNegativeIntegerArray|null)} updated dimension indices\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0 );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10 );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim ) {\n\treturn assign( shape, order, idx, dim, zeros( shape.length ) );\n}\n\n\n// EXPORTS //\n\nexport default nextCartesianIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the next Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* @module @stdlib/ndarray-base-next-cartesian-index\n*\n* @example\n* import nextCartesianIndex from '@stdlib/ndarray-base-next-cartesian-index';\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tset( xbuf, ix, fcn() );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\txbuf[ ix ] = fcn();\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessornullary2d from './2d_blocked_accessors.js';\nimport blockedaccessornullary3d from './3d_blocked_accessors.js';\nimport blockedaccessornullary4d from './4d_blocked_accessors.js';\nimport blockedaccessornullary5d from './5d_blocked_accessors.js';\nimport blockedaccessornullary6d from './6d_blocked_accessors.js';\nimport blockedaccessornullary7d from './7d_blocked_accessors.js';\nimport blockedaccessornullary8d from './8d_blocked_accessors.js';\nimport blockedaccessornullary9d from './9d_blocked_accessors.js';\nimport blockedaccessornullary10d from './10d_blocked_accessors.js';\nimport blockednullary2d from './2d_blocked.js';\nimport blockednullary3d from './3d_blocked.js';\nimport blockednullary4d from './4d_blocked.js';\nimport blockednullary5d from './5d_blocked.js';\nimport blockednullary6d from './6d_blocked.js';\nimport blockednullary7d from './7d_blocked.js';\nimport blockednullary8d from './8d_blocked.js';\nimport blockednullary9d from './9d_blocked.js';\nimport blockednullary10d from './10d_blocked.js';\nimport accessornullary0d from './0d_accessors.js';\nimport accessornullary1d from './1d_accessors.js';\nimport accessornullary2d from './2d_accessors.js';\nimport accessornullary3d from './3d_accessors.js';\nimport accessornullary4d from './4d_accessors.js';\nimport accessornullary5d from './5d_accessors.js';\nimport accessornullary6d from './6d_accessors.js';\nimport accessornullary7d from './7d_accessors.js';\nimport accessornullary8d from './8d_accessors.js';\nimport accessornullary9d from './9d_accessors.js';\nimport accessornullary10d from './10d_accessors.js';\nimport accessornullarynd from './nd_accessors.js';\nimport nullary0d from './0d.js';\nimport nullary1d from './1d.js';\nimport nullary2d from './2d.js';\nimport nullary3d from './3d.js';\nimport nullary4d from './4d.js';\nimport nullary5d from './5d.js';\nimport nullary6d from './6d.js';\nimport nullary7d from './7d.js';\nimport nullary8d from './8d.js';\nimport nullary9d from './9d.js';\nimport nullary10d from './10d.js';\nimport nullarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar NULLARY = [\n\tnullary0d,\n\tnullary1d,\n\tnullary2d,\n\tnullary3d,\n\tnullary4d,\n\tnullary5d,\n\tnullary6d,\n\tnullary7d,\n\tnullary8d,\n\tnullary9d,\n\tnullary10d\n];\nvar ACCESSOR_NULLARY = [\n\taccessornullary0d,\n\taccessornullary1d,\n\taccessornullary2d,\n\taccessornullary3d,\n\taccessornullary4d,\n\taccessornullary5d,\n\taccessornullary6d,\n\taccessornullary7d,\n\taccessornullary8d,\n\taccessornullary9d,\n\taccessornullary10d\n];\nvar BLOCKED_NULLARY = [\n\tblockednullary2d, // 0\n\tblockednullary3d,\n\tblockednullary4d,\n\tblockednullary5d,\n\tblockednullary6d,\n\tblockednullary7d,\n\tblockednullary8d,\n\tblockednullary9d,\n\tblockednullary10d // 8\n];\nvar BLOCKED_ACCESSOR_NULLARY = [\n\tblockedaccessornullary2d, // 0\n\tblockedaccessornullary3d,\n\tblockedaccessornullary4d,\n\tblockedaccessornullary5d,\n\tblockedaccessornullary6d,\n\tblockedaccessornullary7d,\n\tblockedaccessornullary8d,\n\tblockedaccessornullary9d,\n\tblockedaccessornullary10d // 8\n];\nvar MAX_DIMS = NULLARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary( [ x ], fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ 1 ]( x, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_NULLARY[ ndims-2 ]( x, fcn );\n\t\t}\n\t\treturn BLOCKED_NULLARY[ ndims-2 ]( x, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessornullarynd( x, fcn );\n\t}\n\tnullarynd( x, fcn );\n}\n\n\n// EXPORTS //\n\nexport default nullary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 2 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0 ]\n*/\nfunction nullary0d( x, fcn ) {\n\tx.data[ x.offset ] = fcn();\n}\n\n\n// EXPORTS //\n\nexport default nullary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 0.0, 10.0, 0.0, 10.0, 0.0, 10.0 ]\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\txbuf[ ix ] = fcn();\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\txbuf[ ix ] = fcn();\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary10d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 4 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* var v = x.data.get( 1 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary0d( x, fcn ) {\n\tx.accessors[ 1 ]( x.data, x.offset, fcn() );\n}\n\n\n// EXPORTS //\n\nexport default nullary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( xbuf, ix, fcn() );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( xbuf, ix, fcn() );\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary10d( x, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default nullary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockednullary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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\nexport default 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* 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\nexport default 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} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} 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\nexport default 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} 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\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport strategy from './strategy.js';\nimport defaults from './defaults.js';\nimport validate from './validate.js';\nimport blockednullary2d from './2d_blocked.js';\nimport blockednullary3d from './3d_blocked.js';\nimport blockednullary4d from './4d_blocked.js';\nimport blockednullary5d from './5d_blocked.js';\nimport blockednullary6d from './6d_blocked.js';\nimport blockednullary7d from './7d_blocked.js';\nimport blockednullary8d from './8d_blocked.js';\nimport blockednullary9d from './9d_blocked.js';\nimport blockednullary10d from './10d_blocked.js';\nimport nullary0d from './0d.js';\nimport nullary1d from './1d.js';\nimport nullary2d from './2d.js';\nimport nullary3d from './3d.js';\nimport nullary4d from './4d.js';\nimport nullary5d from './5d.js';\nimport nullary6d from './6d.js';\nimport nullary7d from './7d.js';\nimport nullary8d from './8d.js';\nimport nullary9d from './9d.js';\nimport nullary10d from './10d.js';\nimport nullarynd from './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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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} 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\nexport default 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// 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} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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} arrays - ndarrays\n* @param {Array} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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* 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\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@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\nexport default 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* 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} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} 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\nexport default 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\nimport factory from './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} 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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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\nexport default 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/**\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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\n* import nullaryStrided1d from '@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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\n* import nullaryStrided1d from '@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 \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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport isFunction from '@stdlib/assert-is-function';\nimport mainFactory from './main_factory.js';\nimport main from './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* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gsorthp } from '@stdlib/blas-ext-base-gsorthp';\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 \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} 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} 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\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport contains from '@stdlib/array-base-assert-contains';\nimport nullaryStrided1d from '@stdlib/ndarray-base-nullary-strided1d';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for applying a strided function to an ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided functions which are specific to specialized output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported data types\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 an output ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {NullaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/blas-ext-base-ndarray-gsorthp';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = dtypes( 'all' );\n*\n* var table = {\n* 'default': base\n* };\n* var sorthp = new NullaryStrided1dDispatch( table, [ idt ], odt );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var order = scalar2ndarray( 1.0, {\n* 'dtype': 'generic'\n* });\n*\n* sorthp.assign( x, order );\n*\n* var arr = ndarray2array( x );\n* // returns [ -3.0, -1.0, 2.0 ]\n*/\nfunction NullaryStrided1dDispatch( table, idtypes, odtypes, options ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof NullaryStrided1dDispatch ) ) {\n\t\tif ( arguments.length > 3 ) {\n\t\t\treturn new NullaryStrided1dDispatch( table, idtypes, odtypes, options ); // eslint-disable-line max-len\n\t\t}\n\t\treturn new NullaryStrided1dDispatch( table, idtypes, odtypes );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An output ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tif ( arguments.length > 3 ) {\n\t\tthis._apply = nullaryStrided1d.factory( options ); // note: delegate options validation to factory method\n\t} else {\n\t\tthis._apply = nullaryStrided1d;\n\t}\n\treturn this;\n}\n\n/**\n* Applies a strided function and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof NullaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} out - output ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed output ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of output ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/blas-ext-base-ndarray-gsorthp';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = dtypes( 'all' );\n*\n* var table = {\n* 'default': base\n* };\n* var sorthp = new NullaryStrided1dDispatch( table, [ idt ], odt );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var order = scalar2ndarray( 1.0, {\n* 'dtype': 'generic'\n* });\n*\n* var out = sorthp.assign( x, order );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ -3.0, -1.0, 2.0 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nsetReadOnly( NullaryStrided1dDispatch.prototype, 'assign', function assign( out ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar odt;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( out ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', out ) );\n\t}\n\t// Validate the output ndarray data type...\n\todt = getDType( out );\n\tif ( !contains( this._odtypes, odt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._odtypes, '\", \"' ), odt ) );\n\t}\n\targs = [ out ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\tif ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Verify that additional ndarray arguments have expected dtypes...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i-1 ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i-1 ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( out );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, apply the strided function across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the lower-level strided function satisfying the output ndarray data type:\n\tdtypes = [ resolveEnum( odt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform operation:\n\tthis._apply( f, args, opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn out;\n});\n\n\n// EXPORTS //\n\nexport default NullaryStrided1dDispatch;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of ndarray dimensions\n* @param {Options} options - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'dims': [ 0 ]\n* };\n* var err = validate( opts, 3, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, options ) {\n\tvar tmp;\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, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default validate;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getOrder from '@stdlib/ndarray-base-order';\nimport defaults from '@stdlib/ndarray-defaults';\n\n\n// VARIABLES //\n\nvar DEFAULT_ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Resolves the order (i.e. memory layout) of an output ndarray according to a list of input ndarrays.\n*\n* @param {ArrayLikeObject} arrays - list of input ndarrays\n* @returns {string} storage layout\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 2, 2 ] );\n* var y = zeros( [ 2, 2 ] );\n*\n* var order = outputOrder( [ x, y ] );\n* // returns \n*/\nfunction outputOrder( arrays ) {\n\tvar N;\n\tvar o;\n\tvar i;\n\n\tN = arrays.length;\n\tif ( N === 0 ) {\n\t\treturn DEFAULT_ORDER;\n\t}\n\t// Resolve the order of the first ndarray:\n\to = getOrder( arrays[ 0 ] );\n\n\t// If a subsequent input ndarray has a different order, return the default memory layout...\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( getOrder( arrays[ i ] ) !== o ) {\n\t\t\treturn DEFAULT_ORDER;\n\t\t}\n\t}\n\treturn o;\n}\n\n\n// EXPORTS //\n\nexport default outputOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport objectInverse from '@stdlib/object-inverse';\nimport { enum as enumeration } from '@stdlib/ndarray-output-dtype-policies';\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with an output ndarray data type policy enumeration constant.\n*\n* @param {integer} policy - policy enumeration constant\n* @returns {(string|null)} policy string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n*\n* var v = str2enum( 'same' );\n* // returns \n*\n* var policy = enum2str( v );\n* // returns 'same'\n*/\nfunction enum2str( policy ) {\n\tvar v = hash[ policy ];\n\treturn ( isString( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default enum2str;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport { enum as enumeration } from '@stdlib/ndarray-output-dtype-policies';\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an output ndarray data type policy string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} policy - policy string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'same' );\n* // returns \n*/\nfunction str2enum( policy ) {\n\tvar v = ENUM[ policy ];\n\treturn ( isNumber( v ) ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nexport default str2enum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport slice from '@stdlib/ndarray-base-slice';\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} start - starting indices (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 1, null ];\n* var y = sliceFrom( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceFrom( x, start, strict, writable ) {\n\tvar args;\n\tvar sh;\n\tvar s;\n\tvar i;\n\n\tsh = getShape( x );\n\targs = [];\n\tfor ( i = 0; i < start.length; i++ ) {\n\t\ts = start[ i ];\n\t\tif ( isNumber( s ) && s !== 0 ) { // note: a start value equal to 0 is equivalent to `null` (i.e., including all elements along a dimension)\n\t\t\tif ( s === sh[ i ] ) {\n\t\t\t\t// When a starting index is one more than the last index along a dimension, create a slice for returning an empty array...\n\t\t\t\ts -= 1;\n\t\t\t\targs.push( new Slice( s, s ) );\n\t\t\t} else {\n\t\t\t\targs.push( new Slice( s, null ) );\n\t\t\t}\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceFrom;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport slice from '@stdlib/ndarray-base-slice';\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} stop - ending indices (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 2, null ];\n* var y = sliceTo( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceTo( x, stop, strict, writable ) {\n\tvar args;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < stop.length; i++ ) {\n\t\tif ( isNumber( stop[ i ] ) ) {\n\t\t\targs.push( new Slice( stop[ i ] ) );\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceTo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reinterpret from '@stdlib/strided-base-reinterpret-complex128';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport gscal from '@stdlib/blas-base-gscal';\n\n\n// MAIN //\n\n/**\n* Reinterprets a double-precision complex floating-point ndarray as a real-valued double-precision floating-point ndarray containing interleaved real and imaginary components.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} double-precision floating-point ndarray view\n*\n* @example\n* import ones from '@stdlib/ndarray-base-ones';\n*\n* var x = ones( 'complex128', [ 2, 2 ], 'row-major' );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex128( x );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*/\nfunction reinterpretComplex128( x ) {\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\tndims = shape.length;\n\n\tgscal( ndims, 2, strides, 1 );\n\n\t// Append a trailing dimension where each element is the real and imaginary component for a corresponding element in the input ndarray...\n\tshape.push( 2 );\n\n\t// Augment the strides, assuming that real and imaginary components are adjacent in memory...\n\tif ( ndims === 0 ) {\n\t\tstrides[ 0 ] = 1;\n\t} else {\n\t\tstrides.push( 1 );\n\t}\n\treturn ndarray( 'float64', reinterpret( getData( x ), 0 ), shape, strides, getOffset( x ) * 2, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretComplex128;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reinterpret from '@stdlib/strided-base-reinterpret-complex64';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport gscal from '@stdlib/blas-base-gscal';\n\n\n// MAIN //\n\n/**\n* Reinterprets a single-precision complex floating-point ndarray as a real-valued single-precision floating-point ndarray containing interleaved real and imaginary components.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} single-precision floating-point ndarray view\n*\n* @example\n* import ones from '@stdlib/ndarray-base-ones';\n*\n* var x = ones( 'complex64', [ 2, 2 ], 'row-major' );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex64( x );\n* // returns [ [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 1.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*/\nfunction reinterpretComplex64( x ) {\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\tndims = shape.length;\n\n\tgscal( ndims, 2, strides, 1 );\n\n\t// Append a trailing dimension where each element is the real and imaginary component for a corresponding element in the input ndarray...\n\tshape.push( 2 );\n\n\t// Augment the strides, assuming that real and imaginary components are adjacent in memory...\n\tif ( ndims === 0 ) {\n\t\tstrides[ 0 ] = 1;\n\t} else {\n\t\tstrides.push( 1 );\n\t}\n\treturn ndarray( 'float32', reinterpret( getData( x ), 0 ), shape, strides, getOffset( x ) * 2, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretComplex64;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport filled from '@stdlib/array-base-filled';\nimport slice from '@stdlib/ndarray-base-slice';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along each dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverse( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction reverse( x, writable ) {\n\tvar args = filled( new Slice( null, null, -1 ), ndims( x ) );\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nexport default reverse;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport slice from '@stdlib/ndarray-base-slice';\nimport nulls from '@stdlib/array-base-nulls';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along specified dimensions is reversed.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - indices of dimensions to reverse\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimensions( x, [ 0, 1 ], false );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction reverseDimensions( x, dims, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\t// Retrieve the number of array dimensions:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension indices...\n\td = toUniqueNormalizedIndices( dims, N-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', N, N-1, join( dims, ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = nulls( N );\n\tfor ( i = 0; i < d.length; i++ ) {\n\t\targs[ d[ i ] ] = new Slice( null, null, -1 );\n\t}\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nexport default reverseDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Rotates an ndarray 90 degrees in a specified plane.\n*\n* ## Notes\n*\n* - If `k > 0`, the function rotates the plane from the first specified dimension toward the second specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane counterclockwise.\n* - If `k < 0`, the function rotates the plane from the second specified dimension toward the first specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane clockwise.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @param {integer} k - number of times to rotate by 90 degrees\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rot90( x, [ 0, 1 ], 1, false );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction rot90( x, dims, k, writable ) {\n\tvar offset;\n\tvar sd0;\n\tvar sd1;\n\tvar sh;\n\tvar st;\n\tvar d0;\n\tvar d1;\n\tvar M;\n\tvar N;\n\tvar d;\n\n\tif ( dims.length !== 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Must provide exactly two dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\tsh = getShape( x, true );\n\tif ( sh.length < 2 ) {\n\t\tthrow new RangeError( format( 'invalid argument. First argument must be an ndarray having two or more dimensions. Number of dimensions: %d.', sh.length ) );\n\t}\n\tst = getStrides( x, true );\n\toffset = getOffset( x );\n\n\t// Resolve dimension indices...\n\td = toUniqueNormalizedIndices( dims, sh.length-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `[%s]`.', sh.length, sh.length-1, join( dims, ', ' ) ) );\n\t}\n\tif ( d.length !== dims.length ) {\n\t\tthrow new Error( format( 'invalid argument. Must provide unique dimension indices. Value: `[%s]`.', join( dims, ', ' ) ) );\n\t}\n\td0 = d[ 0 ];\n\td1 = d[ 1 ];\n\n\t// Normalize `k` to the interval [0, 3]:\n\tk %= 4;\n\tif ( k < 0 ) {\n\t\tk += 4;\n\t}\n\t// Cache the original shape and stride values for the rotation plane:\n\tM = sh[ d0 ];\n\tN = sh[ d1 ];\n\tsd0 = st[ d0 ];\n\tsd1 = st[ d1 ];\n\n\t// Case: rotate 90 deg counterclockwise\n\tif ( k === 1 ) {\n\t\tsh[ d0 ] = N;\n\t\tsh[ d1 ] = M;\n\t\tst[ d0 ] = -sd1;\n\t\tst[ d1 ] = sd0;\n\t\toffset += ( N - 1 ) * sd1;\n\t}\n\t// Case: rotate 180 deg (i.e., reverse both dimensions in the rotation plane)\n\telse if ( k === 2 ) {\n\t\tst[ d0 ] = -sd0;\n\t\tst[ d1 ] = -sd1;\n\t\toffset += ( ( M - 1 ) * sd0 ) + ( ( N - 1 ) * sd1 );\n\t}\n\t// Case: rotate 270 deg counterclockwise (i.e., 90 deg clockwise)\n\telse if ( k === 3 ) {\n\t\tsh[ d0 ] = N;\n\t\tsh[ d1 ] = M;\n\t\tst[ d0 ] = sd1;\n\t\tst[ d1 ] = -sd0;\n\t\toffset += ( M - 1 ) * sd0;\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, offset, getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default rot90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rot90 from '@stdlib/ndarray-base-rot90';\n\n\n// MAIN //\n\n/**\n* Rotates an ndarray 180 degrees in a specified plane.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rot180( x, [ 0, 1 ], false );\n* // returns [ [ 4, 3 ], [ 2, 1 ] ]\n*/\nfunction rot180( x, dims, writable ) {\n\treturn rot90( x, dims, 2, writable );\n}\n\n\n// EXPORTS //\n\nexport default rot180;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Rotates a matrix (or a stack of matrices) 90 degrees clockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rotr90( x, 1, false );\n* // returns [ [ 3, 1 ], [ 4, 2 ] ]\n*/\nfunction rotr90( x, k, writable ) {\n\tvar offset;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar sn;\n\tvar M;\n\tvar N;\n\tvar d;\n\n\tsh = getShape( x, true );\n\td = sh.length;\n\tst = getStrides( x, true );\n\toffset = getOffset( x );\n\n\tif ( d >= 2 ) {\n\t\t// Normalize `k` to the interval [0, 3]:\n\t\tk %= 4;\n\t\tif ( k < 0 ) {\n\t\t\tk += 4;\n\t\t}\n\t\t// Cache the original shape and stride values for the last two dimensions:\n\t\tM = sh[ d-2 ];\n\t\tN = sh[ d-1 ];\n\t\tsm = st[ d-2 ];\n\t\tsn = st[ d-1 ];\n\n\t\t// Case: rotate 90 deg clockwise\n\t\tif ( k === 1 ) {\n\t\t\tsh[ d-2 ] = N;\n\t\t\tsh[ d-1 ] = M;\n\t\t\tst[ d-2 ] = sn;\n\t\t\tst[ d-1 ] = -sm;\n\t\t\toffset += ( M - 1 ) * sm;\n\t\t}\n\t\t// Case: rotate 180 deg clockwise (i.e., reverse both dimensions)\n\t\telse if ( k === 2 ) {\n\t\t\tst[ d-2 ] = -sm;\n\t\t\tst[ d-1 ] = -sn;\n\t\t\toffset += ( ( M - 1 ) * sm ) + ( ( N - 1 ) * sn );\n\t\t}\n\t\t// Case: rotate 270 deg clockwise\n\t\telse if ( k === 3 ) {\n\t\t\tsh[ d-2 ] = N;\n\t\t\tsh[ d-1 ] = M;\n\t\t\tst[ d-2 ] = -sn;\n\t\t\tst[ d-1 ] = sm;\n\t\t\toffset += ( N - 1 ) * sn;\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, offset, getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default rotr90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport rotr90 from '@stdlib/ndarray-base-rotr90';\n\n\n// MAIN //\n\n/**\n* Rotates a matrix (or a stack of matrices) 90 degrees counterclockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = rotl90( x, 1, false );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction rotl90( x, k, writable ) {\n\treturn rotr90( x, -k, writable );\n}\n\n\n// EXPORTS //\n\nexport default rotl90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport DataView from '@stdlib/array-dataview';\nimport BigInt from '@stdlib/bigint-ctor';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x );\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( getOffset( x )*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default serialize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport IS_LITTLE_ENDIAN from '@stdlib/assert-is-little-endian';\nimport { assign as float64ToInt64Bytes } from '@stdlib/number-float64-base-to-int64-bytes';\nimport ArrayBuffer from '@stdlib/array-buffer';\nimport Uint8Array from '@stdlib/array-uint8';\nimport DataView from '@stdlib/array-dataview';\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nimport dtypes from '@stdlib/ndarray-base-dtype-enums';\nimport { enum as orders } from '@stdlib/ndarray-orders';\nimport { enum as modes } from '@stdlib/ndarray-index-modes';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x);\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( getOffset( x )*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nexport default serialize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Serialize ndarray meta data.\n*\n* @module @stdlib/ndarray-base-serialize-meta-data\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import serialize from '@stdlib/ndarray-base-serialize-meta-data';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\n\n// MODULES //\n\nimport hasBigIntSupport from '@stdlib/assert-has-bigint-support';\nimport builtin from './main.js';\nimport polyfill from './polyfill.js';\n\n\n// MAIN //\n\nvar main;\nif ( hasBigIntSupport() ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\n\n\n// EXPORTS //\n\nexport default main;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = somend( x, 2 );\n* // returns true\n*/\nfunction somend( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = somend( x, 4 );\n* // returns true\n*/\nfunction somend( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = somend( x, 2 );\n* // returns true\n*/\nfunction somend( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport isComplexArray from '@stdlib/array-base-assert-is-complex-typed-array';\nimport isBooleanArray from '@stdlib/array-base-assert-is-booleanarray';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport gscal from '@stdlib/blas-base-gscal';\nimport blockedaccessorsome2d from './2d_blocked_accessors.js';\nimport blockedaccessorsome3d from './3d_blocked_accessors.js';\nimport blockedaccessorsome4d from './4d_blocked_accessors.js';\nimport blockedaccessorsome5d from './5d_blocked_accessors.js';\nimport blockedaccessorsome6d from './6d_blocked_accessors.js';\nimport blockedaccessorsome7d from './7d_blocked_accessors.js';\nimport blockedaccessorsome8d from './8d_blocked_accessors.js';\nimport blockedaccessorsome9d from './9d_blocked_accessors.js';\nimport blockedaccessorsome10d from './10d_blocked_accessors.js';\nimport blockedcomplexsome2d from './2d_blocked_complex.js';\nimport blockedcomplexsome3d from './3d_blocked_complex.js';\nimport blockedcomplexsome4d from './4d_blocked_complex.js';\nimport blockedcomplexsome5d from './5d_blocked_complex.js';\nimport blockedcomplexsome6d from './6d_blocked_complex.js';\nimport blockedcomplexsome7d from './7d_blocked_complex.js';\nimport blockedcomplexsome8d from './8d_blocked_complex.js';\nimport blockedcomplexsome9d from './9d_blocked_complex.js';\nimport blockedcomplexsome10d from './10d_blocked_complex.js';\nimport blockedsome2d from './2d_blocked.js';\nimport blockedsome3d from './3d_blocked.js';\nimport blockedsome4d from './4d_blocked.js';\nimport blockedsome5d from './5d_blocked.js';\nimport blockedsome6d from './6d_blocked.js';\nimport blockedsome7d from './7d_blocked.js';\nimport blockedsome8d from './8d_blocked.js';\nimport blockedsome9d from './9d_blocked.js';\nimport blockedsome10d from './10d_blocked.js';\nimport accessorsome0d from './0d_accessors.js';\nimport accessorsome1d from './1d_accessors.js';\nimport accessorsome2d from './2d_accessors.js';\nimport accessorsome3d from './3d_accessors.js';\nimport accessorsome4d from './4d_accessors.js';\nimport accessorsome5d from './5d_accessors.js';\nimport accessorsome6d from './6d_accessors.js';\nimport accessorsome7d from './7d_accessors.js';\nimport accessorsome8d from './8d_accessors.js';\nimport accessorsome9d from './9d_accessors.js';\nimport accessorsome10d from './10d_accessors.js';\nimport accessorsomend from './nd_accessors.js';\nimport complexsome0d from './0d_complex.js';\nimport complexsome1d from './1d_complex.js';\nimport complexsome2d from './2d_complex.js';\nimport complexsome3d from './3d_complex.js';\nimport complexsome4d from './4d_complex.js';\nimport complexsome5d from './5d_complex.js';\nimport complexsome6d from './6d_complex.js';\nimport complexsome7d from './7d_complex.js';\nimport complexsome8d from './8d_complex.js';\nimport complexsome9d from './9d_complex.js';\nimport complexsome10d from './10d_complex.js';\nimport complexsomend from './nd_complex.js';\nimport some0d from './0d.js';\nimport some1d from './1d.js';\nimport some2d from './2d.js';\nimport some3d from './3d.js';\nimport some4d from './4d.js';\nimport some5d from './5d.js';\nimport some6d from './6d.js';\nimport some7d from './7d.js';\nimport some8d from './8d.js';\nimport some9d from './9d.js';\nimport some10d from './10d.js';\nimport somend from './nd.js';\n\n\n// VARIABLES //\n\nvar SOME = [\n\tsome0d,\n\tsome1d,\n\tsome2d,\n\tsome3d,\n\tsome4d,\n\tsome5d,\n\tsome6d,\n\tsome7d,\n\tsome8d,\n\tsome9d,\n\tsome10d,\n\tsomend\n];\nvar ACCESSOR_SOME = [\n\taccessorsome0d,\n\taccessorsome1d,\n\taccessorsome2d,\n\taccessorsome3d,\n\taccessorsome4d,\n\taccessorsome5d,\n\taccessorsome6d,\n\taccessorsome7d,\n\taccessorsome8d,\n\taccessorsome9d,\n\taccessorsome10d,\n\taccessorsomend\n];\nvar COMPLEX_SOME = [\n\tcomplexsome0d,\n\tcomplexsome1d,\n\tcomplexsome2d,\n\tcomplexsome3d,\n\tcomplexsome4d,\n\tcomplexsome5d,\n\tcomplexsome6d,\n\tcomplexsome7d,\n\tcomplexsome8d,\n\tcomplexsome9d,\n\tcomplexsome10d,\n\tcomplexsomend\n];\nvar BLOCKED_SOME = [\n\tblockedsome2d, // 0\n\tblockedsome3d,\n\tblockedsome4d,\n\tblockedsome5d,\n\tblockedsome6d,\n\tblockedsome7d,\n\tblockedsome8d,\n\tblockedsome9d,\n\tblockedsome10d // 8\n];\nvar BLOCKED_ACCESSOR_SOME = [\n\tblockedaccessorsome2d, // 0\n\tblockedaccessorsome3d,\n\tblockedaccessorsome4d,\n\tblockedaccessorsome5d,\n\tblockedaccessorsome6d,\n\tblockedaccessorsome7d,\n\tblockedaccessorsome8d,\n\tblockedaccessorsome9d,\n\tblockedaccessorsome10d // 8\n];\nvar BLOCKED_COMPLEX_SOME = [\n\tblockedcomplexsome2d, // 0\n\tblockedcomplexsome3d,\n\tblockedcomplexsome4d,\n\tblockedcomplexsome5d,\n\tblockedcomplexsome6d,\n\tblockedcomplexsome7d,\n\tblockedcomplexsome8d,\n\tblockedcomplexsome9d,\n\tblockedcomplexsome10d // 8\n];\nvar MAX_DIMS = SOME.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray specifying the minimum number of elements in the input ndarray that must satisfy the predicate function\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Define the success criterion:\n* var n = scalar2ndarray( 3, {\n* 'dtype': 'generic'\n* });\n*\n* // Test elements:\n* var out = some( [ x, n ] );\n* // returns true\n*/\nfunction some( arrays ) {\n\tvar isCmplx;\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar N;\n\tvar x;\n\tvar n;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tn = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the success criterion:\n\tN = n.accessors[ 0 ]( n.data, n.offset );\n\n\t// Check for known array types which can be reinterpreted for better iteration performance...\n\tif ( isBooleanArray( x.data ) ) {\n\t\tx.data = reinterpretBoolean( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t} else if ( isComplexArray( x.data ) ) {\n\t\tx.data = reinterpretComplex( x.data, 0 );\n\t\tx.accessorProtocol = false;\n\t\tx.strides = gscal( ndims, 2, x.strides, 1 );\n\t\tx.offset *= 2;\n\t\tisCmplx = true;\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_SOME[ ndims ]( x, N );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_SOME[ ndims ]( x, N );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ 1 ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn COMPLEX_SOME[ 1 ]( x, N );\n\t\t}\n\t\treturn SOME[ 1 ]( x, N );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ ( isCmplx ) ? iox*2 : iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_SOME[ 1 ]( x, N );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_SOME[ 1 ]( x, N );\n\t\t\t}\n\t\t\treturn SOME[ 1 ]( x, N );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N );\n\t\t\t}\n\t\t\tif ( isCmplx ) {\n\t\t\t\treturn COMPLEX_SOME[ ndims ]( x, N );\n\t\t\t}\n\t\t\treturn SOME[ ndims ]( x, N );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_SOME[ ndims-2 ]( x, N );\n\t\t}\n\t\tif ( isCmplx ) {\n\t\t\treturn BLOCKED_COMPLEX_SOME[ ndims-2 ]( x, N );\n\t\t}\n\t\treturn BLOCKED_SOME[ ndims-2 ]( x, N );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorsomend( x, N );\n\t}\n\tif ( isCmplx ) {\n\t\treturn complexsomend( x, N );\n\t}\n\treturn somend( x, N );\n}\n\n\n// EXPORTS //\n\nexport default some;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1 );\n* // returns true\n*/\nfunction some0d( x, n ) {\n\tif ( n <= 1 && x.data[ x.offset ] ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4 );\n* // returns true\n*/\nfunction some1d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( xbuf[ ix ] ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4 );\n* // returns true\n*/\nfunction some2d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4 );\n* // returns true\n*/\nfunction some3d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4 );\n* // returns true\n*/\nfunction some4d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4 );\n* // returns true\n*/\nfunction some5d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4 );\n* // returns true\n*/\nfunction some6d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4 );\n* // returns true\n*/\nfunction some7d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4 );\n* // returns true\n*/\nfunction some8d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4 );\n* // returns true\n*/\nfunction some9d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4 );\n* // returns true\n*/\nfunction some10d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1 );\n* // returns true\n*/\nfunction some0d( x, n ) {\n\tif ( n <= 1 && x.accessors[ 0 ]( x.data, x.offset ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4 );\n* // returns true\n*/\nfunction some1d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( get( xbuf, ix ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4 );\n* // returns true\n*/\nfunction some2d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4 );\n* // returns true\n*/\nfunction some3d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4 );\n* // returns true\n*/\nfunction some4d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4 );\n* // returns true\n*/\nfunction some5d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4 );\n* // returns true\n*/\nfunction some6d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4 );\n* // returns true\n*/\nfunction some7d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4 );\n* // returns true\n*/\nfunction some8d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4 );\n* // returns true\n*/\nfunction some9d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4 );\n* // returns true\n*/\nfunction some10d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1 );\n* // returns true\n*/\nfunction some0d( x, n ) {\n\tif ( n <= 1 && ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4 );\n* // returns true\n*/\nfunction some1d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4 );\n* // returns true\n*/\nfunction some2d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4 );\n* // returns true\n*/\nfunction some3d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4 );\n* // returns true\n*/\nfunction some4d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4 );\n* // returns true\n*/\nfunction some5d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4 );\n* // returns true\n*/\nfunction some6d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4 );\n* // returns true\n*/\nfunction some7d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4 );\n* // returns true\n*/\nfunction some8d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4 );\n* // returns true\n*/\nfunction some9d( x, n ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4 );\n* // returns true\n*/\nfunction some10d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4 );\n* // returns true\n*/\nfunction blockedsome2d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4 );\n* // returns true\n*/\nfunction blockedsome3d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4 );\n* // returns true\n*/\nfunction blockedsome4d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4 );\n* // returns true\n*/\nfunction blockedsome5d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4 );\n* // returns true\n*/\nfunction blockedsome6d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4 );\n* // returns true\n*/\nfunction blockedsome7d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4 );\n* // returns true\n*/\nfunction blockedsome8d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4 );\n* // returns true\n*/\nfunction blockedsome9d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4 );\n* // returns true\n*/\nfunction blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( xbuf[ ix ] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4 );\n* // returns true\n*/\nfunction blockedsome2d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4 );\n* // returns true\n*/\nfunction blockedsome3d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4 );\n* // returns true\n*/\nfunction blockedsome4d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4 );\n* // returns true\n*/\nfunction blockedsome5d( x, n ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4 );\n* // returns true\n*/\nfunction blockedsome6d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4 );\n* // returns true\n*/\nfunction blockedsome7d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4 );\n* // returns true\n*/\nfunction blockedsome8d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4 );\n* // returns true\n*/\nfunction blockedsome9d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4 );\n* // returns true\n*/\nfunction blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( get( xbuf, ix ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4 );\n* // returns true\n*/\nfunction blockedsome2d( x, n ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray is truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4 );\n* // returns true\n*/\nfunction blockedsome3d( x, n ) {\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4 );\n* // returns true\n*/\nfunction blockedsome4d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4 );\n* // returns true\n*/\nfunction blockedsome5d( x, n ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4 );\n* // returns true\n*/\nfunction blockedsome6d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4 );\n* // returns true\n*/\nfunction blockedsome7d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4 );\n* // returns true\n*/\nfunction blockedsome8d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4 );\n* // returns true\n*/\nfunction blockedsome9d( x, n ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @returns {boolean} boolean indicating whether at least `n` elements are truthy\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'complex128',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4 );\n* // returns true\n*/\nfunction blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar count;\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = somend( x, 2, predicate, {} );\n* // returns true\n*/\nfunction somend( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar get;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = somend( x, 2, predicate, {} );\n* // returns true\n*/\nfunction somend( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar ordx;\n\tvar idx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tidx = ind2sub( sh, sx, 0, ordx, i, MODE ); // return subscripts from the perspective of the ndarray view\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], idx, x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default somend;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport numel from '@stdlib/ndarray-base-numel';\nimport blockedaccessorsome2d from './2d_blocked_accessors.js';\nimport blockedaccessorsome3d from './3d_blocked_accessors.js';\nimport blockedaccessorsome4d from './4d_blocked_accessors.js';\nimport blockedaccessorsome5d from './5d_blocked_accessors.js';\nimport blockedaccessorsome6d from './6d_blocked_accessors.js';\nimport blockedaccessorsome7d from './7d_blocked_accessors.js';\nimport blockedaccessorsome8d from './8d_blocked_accessors.js';\nimport blockedaccessorsome9d from './9d_blocked_accessors.js';\nimport blockedaccessorsome10d from './10d_blocked_accessors.js';\nimport blockedsome2d from './2d_blocked.js';\nimport blockedsome3d from './3d_blocked.js';\nimport blockedsome4d from './4d_blocked.js';\nimport blockedsome5d from './5d_blocked.js';\nimport blockedsome6d from './6d_blocked.js';\nimport blockedsome7d from './7d_blocked.js';\nimport blockedsome8d from './8d_blocked.js';\nimport blockedsome9d from './9d_blocked.js';\nimport blockedsome10d from './10d_blocked.js';\nimport accessorsome0d from './0d_accessors.js';\nimport accessorsome1d from './1d_accessors.js';\nimport accessorsome2d from './2d_accessors.js';\nimport accessorsome3d from './3d_accessors.js';\nimport accessorsome4d from './4d_accessors.js';\nimport accessorsome5d from './5d_accessors.js';\nimport accessorsome6d from './6d_accessors.js';\nimport accessorsome7d from './7d_accessors.js';\nimport accessorsome8d from './8d_accessors.js';\nimport accessorsome9d from './9d_accessors.js';\nimport accessorsome10d from './10d_accessors.js';\nimport accessorsomend from './nd_accessors.js';\nimport some0d from './0d.js';\nimport some1d from './1d.js';\nimport some2d from './2d.js';\nimport some3d from './3d.js';\nimport some4d from './4d.js';\nimport some5d from './5d.js';\nimport some6d from './6d.js';\nimport some7d from './7d.js';\nimport some8d from './8d.js';\nimport some9d from './9d.js';\nimport some10d from './10d.js';\nimport somend from './nd.js';\n\n\n// VARIABLES //\n\nvar SOME = [\n\tsome0d,\n\tsome1d,\n\tsome2d,\n\tsome3d,\n\tsome4d,\n\tsome5d,\n\tsome6d,\n\tsome7d,\n\tsome8d,\n\tsome9d,\n\tsome10d\n];\nvar ACCESSOR_SOME = [\n\taccessorsome0d,\n\taccessorsome1d,\n\taccessorsome2d,\n\taccessorsome3d,\n\taccessorsome4d,\n\taccessorsome5d,\n\taccessorsome6d,\n\taccessorsome7d,\n\taccessorsome8d,\n\taccessorsome9d,\n\taccessorsome10d\n];\nvar BLOCKED_SOME = [\n\tblockedsome2d, // 0\n\tblockedsome3d,\n\tblockedsome4d,\n\tblockedsome5d,\n\tblockedsome6d,\n\tblockedsome7d,\n\tblockedsome8d,\n\tblockedsome9d,\n\tblockedsome10d // 8\n];\nvar BLOCKED_ACCESSOR_SOME = [\n\tblockedaccessorsome2d, // 0\n\tblockedaccessorsome3d,\n\tblockedaccessorsome4d,\n\tblockedaccessorsome5d,\n\tblockedaccessorsome6d,\n\tblockedaccessorsome7d,\n\tblockedaccessorsome8d,\n\tblockedaccessorsome9d,\n\tblockedaccessorsome10d // 8\n];\nvar MAX_DIMS = SOME.length - 1;\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* ## Notes\n*\n* - A provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray specifying the minimum number of elements in the input ndarray that must satisfy the predicate function\n* @param {Function} predicate - predicate function\n* @param {thisArg} [thisArg] - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Define the success criterion:\n* var n = scalar2ndarray( 3, {\n* 'dtype': 'generic'\n* });\n*\n* // Test elements:\n* var out = someBy( [ x, n ], predicate );\n* // returns true\n*/\nfunction someBy( arrays, predicate, thisArg ) {\n\tvar ndims;\n\tvar shx;\n\tvar x;\n\tvar n;\n\tvar N;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tn = ndarray2object( arrays[ 1 ] );\n\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Resolve the success criterion:\n\tN = n.accessors[ 0 ]( n.data, n.offset );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N, predicate, thisArg );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N, predicate, thisArg );\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( numel( shx ) === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine whether we can avoid blocked iteration...\n\tif ( ndims <= MAX_DIMS && iterationOrder( x.strides ) !== 0 ) {\n\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_SOME[ ndims ]( x, N, predicate, thisArg );\n\t\t}\n\t\treturn SOME[ ndims ]( x, N, predicate, thisArg );\n\t}\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_SOME[ ndims-2 ]( x, N, predicate, thisArg );\n\t\t}\n\t\treturn BLOCKED_SOME[ ndims-2 ]( x, N, predicate, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorsomend( x, N, predicate, thisArg );\n\t}\n\treturn somend( x, N, predicate, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default someBy;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1, predicate, {} );\n* // returns true\n*/\nfunction some0d( x, n, predicate, thisArg ) {\n\tif ( n === 1 && predicate.call( thisArg, x.data[ x.offset ], [], x.ref ) ) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some1d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, xbuf[ ix ], [ i0 ], x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some2d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some3d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some4d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some5d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some6d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some7d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some8d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some9d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some0d( x, 1, predicate, {} );\n* // returns true\n*/\nfunction some0d( x, n, predicate, thisArg ) {\n\tif ( n === 1 && predicate.call( thisArg, x.accessors[ 0 ]( x.data, x.offset ), [], x.ref ) ) { // eslint-disable-line max-len\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some0d;\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* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some1d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some1d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tif ( predicate.call( thisArg, get( xbuf, ix ), [ i0 ], x.ref ) ) {\n\t\t\tcount += 1;\n\t\t\tif ( count >= n ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tix += dx0;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some2d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\tcount += 1;\n\t\t\t\tif ( count >= n ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some3d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\tcount += 1;\n\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some3d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some4d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some5d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some6d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some7d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some8d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some8d;\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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some9d( x, n, predicate, thisArg ) {\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some9d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = some10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction some10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tidx = zeroTo( sh.length );\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tidx = reverse( idx );\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default some10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome2d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome3d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome4d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome5d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome6d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome7d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome8d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome9d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, xbuf[ ix ], take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\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/* eslint-disable max-depth */\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome2d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome2d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 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 the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome3d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome3d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome4d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome4d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\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\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome5d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome5d( x, n, predicate, thisArg ) {\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome6d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome6d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) { // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome7d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome7d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome8d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome8d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome9d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome9d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome9d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\n\n\n// MAIN //\n\n/**\n* Tests whether at least `n` elements in an ndarray pass a test implemented by a predicate function.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {ndarrayLike} x.ref - reference to the original ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {PositiveInteger} n - number of elements\n* @param {Function} predicate - predicate function\n* @param {*} thisArg - predicate function execution context\n* @returns {boolean} boolean indicating whether at least `n` elements pass a test\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n*\n* function predicate( value ) {\n* return value > 0.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = toAccessorArray( [ 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*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'ref': null,\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Test elements:\n* var out = blockedsome10d( x, 4, predicate, {} );\n* // returns true\n*/\nfunction blockedsome10d( x, n, predicate, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar count;\n\tvar xbuf;\n\tvar idx;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tidx = reverse( o.idx );\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tget = x.accessors[0];\n\n\t// Initialize a counter:\n\tcount = 0;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( predicate.call( thisArg, get( xbuf, ix ), take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), x.ref ) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( count >= n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nexport default blockedsome10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: third input ndarray strides sorted in loop order.\n* - **sw**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - third input array stride lengths\n* @param {IntegerArray} sw - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, 4, 12 ]; // column-major\n* var sw = [ 1, -2, 6 ]; // column-major\n*\n* var o = ternaryLoopOrder( sh, sx, sy, sz, sw );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 2, 3, 4 ]\n*\n* var ssx = o.sx;\n* // returns [ 12, 4, 1 ]\n*\n* var ssy = o.sy;\n* // returns [ 24, 8, 1 ]\n*\n* var ssz = o.sz;\n* // returns [ 1, 4, 12 ]\n*\n* var ssw = o.sw;\n* // returns [ 1, -2, 6 ]\n*/\nfunction ternaryLoopOrder( sh, sx, sy, sz, sw ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz, sw ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ],\n\t\t'sw': tmp[ 4 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ternaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - third input array data type\n* @param {*} dtypeW - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = ternaryBlockSize( 'float64', 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction ternaryBlockSize( dtypeX, dtypeY, dtypeZ, dtypeW ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ, dtypeW ] );\n}\n\n\n// EXPORTS //\n\nexport default ternaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport anyIsEntryIn from '@stdlib/array-base-any-is-entry-in';\nimport format from '@stdlib/string-format';\nimport blockedaccessorternary2d from './2d_blocked_accessors.js';\nimport blockedaccessorternary3d from './3d_blocked_accessors.js';\nimport blockedaccessorternary4d from './4d_blocked_accessors.js';\nimport blockedaccessorternary5d from './5d_blocked_accessors.js';\nimport blockedaccessorternary6d from './6d_blocked_accessors.js';\nimport blockedaccessorternary7d from './7d_blocked_accessors.js';\nimport blockedaccessorternary8d from './8d_blocked_accessors.js';\nimport blockedaccessorternary9d from './9d_blocked_accessors.js';\nimport blockedaccessorternary10d from './10d_blocked_accessors.js';\nimport blockedternary2d from './2d_blocked.js';\nimport blockedternary3d from './3d_blocked.js';\nimport blockedternary4d from './4d_blocked.js';\nimport blockedternary5d from './5d_blocked.js';\nimport blockedternary6d from './6d_blocked.js';\nimport blockedternary7d from './7d_blocked.js';\nimport blockedternary8d from './8d_blocked.js';\nimport blockedternary9d from './9d_blocked.js';\nimport blockedternary10d from './10d_blocked.js';\nimport accessorternary0d from './0d_accessors.js';\nimport accessorternary1d from './1d_accessors.js';\nimport accessorternary2d from './2d_accessors.js';\nimport accessorternary3d from './3d_accessors.js';\nimport accessorternary4d from './4d_accessors.js';\nimport accessorternary5d from './5d_accessors.js';\nimport accessorternary6d from './6d_accessors.js';\nimport accessorternary7d from './7d_accessors.js';\nimport accessorternary8d from './8d_accessors.js';\nimport accessorternary9d from './9d_accessors.js';\nimport accessorternary10d from './10d_accessors.js';\nimport accessorternarynd from './nd_accessors.js';\nimport ternary0d from './0d.js';\nimport ternary1d from './1d.js';\nimport ternary2d from './2d.js';\nimport ternary3d from './3d.js';\nimport ternary4d from './4d.js';\nimport ternary5d from './5d.js';\nimport ternary6d from './6d.js';\nimport ternary7d from './7d.js';\nimport ternary8d from './8d.js';\nimport ternary9d from './9d.js';\nimport ternary10d from './10d.js';\nimport ternarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar TERNARY = [\n\tternary0d,\n\tternary1d,\n\tternary2d,\n\tternary3d,\n\tternary4d,\n\tternary5d,\n\tternary6d,\n\tternary7d,\n\tternary8d,\n\tternary9d,\n\tternary10d\n];\nvar ACCESSOR_TERNARY = [\n\taccessorternary0d,\n\taccessorternary1d,\n\taccessorternary2d,\n\taccessorternary3d,\n\taccessorternary4d,\n\taccessorternary5d,\n\taccessorternary6d,\n\taccessorternary7d,\n\taccessorternary8d,\n\taccessorternary9d,\n\taccessorternary10d\n];\nvar BLOCKED_TERNARY = [\n\tblockedternary2d, // 0\n\tblockedternary3d,\n\tblockedternary4d,\n\tblockedternary5d,\n\tblockedternary6d,\n\tblockedternary7d,\n\tblockedternary8d,\n\tblockedternary9d,\n\tblockedternary10d // 8\n];\nvar BLOCKED_ACCESSOR_TERNARY = [\n\tblockedaccessorternary2d, // 0\n\tblockedaccessorternary3d,\n\tblockedaccessorternary4d,\n\tblockedaccessorternary5d,\n\tblockedaccessorternary6d,\n\tblockedaccessorternary7d,\n\tblockedaccessorternary8d,\n\tblockedaccessorternary9d,\n\tblockedaccessorternary10d // 8\n];\nvar MAX_DIMS = TERNARY.length - 1;\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if at least one ndarray data buffer implements the accessor protocol.\n*\n* @private\n* @param {ndarrayLike} x - first ndarray\n* @param {ndarrayLike} y - second ndarray\n* @param {ndarrayLike} z - third ndarray\n* @param {ndarrayLike} w - fourth ndarray\n* @returns {boolean} boolean indicating whether an ndarray data buffer implements the accessor protocol\n*/\nfunction hasAccessors( x, y, z, w ) {\n\treturn anyIsEntryIn( [ x, y, z, w ], 'accessorProtocol', true );\n}\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in input ndarrays and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing three input arrays and one output array\n* @param {Callback} fcn - ternary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getData from '@stdlib/ndarray-data-buffer';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n* var sz = [ 2, 2, 1 ];\n* var sw = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarrays:\n* var x = new ndarray( 'float64', xbuf, shape, sx, ox, 'row-major' );\n* var y = new ndarray( 'float64', ybuf, shape, sy, oy, 'row-major' );\n* var z = new ndarray( 'float64', zbuf, shape, sz, oz, 'row-major' );\n* var w = new ndarray( 'float64', wbuf, shape, sw, ow, 'row-major' );\n*\n* // Apply the ternary function:\n* ternary( [ x, y, z, w ], fcn );\n*\n* console.log( getData( w ) );\n* // => [ 2.5, 4.5, 6.5, 8.5, 10.5, 12.5 ]\n*/\nfunction ternary( arrays, fcn ) { // eslint-disable-line max-statements\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar wmmv;\n\tvar zmmv;\n\tvar shx;\n\tvar shy;\n\tvar shw;\n\tvar shz;\n\tvar iox;\n\tvar ioy;\n\tvar iow;\n\tvar ioz;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar sw;\n\tvar sz;\n\tvar ox;\n\tvar oy;\n\tvar ow;\n\tvar oz;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar w;\n\tvar z;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\tz = ndarray2object( arrays[ 2 ] );\n\tw = ndarray2object( arrays[ 3 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tshz = z.shape;\n\tshw = w.shape;\n\tndims = shx.length;\n\tif (\n\t\tndims !== shy.length ||\n\t\tndims !== shz.length ||\n\t\tndims !== shw.length\n\t) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d. ndims(z) == %d. ndims(w) == %d.', ndims, shy.length, shz.length, shw.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\treturn ACCESSOR_TERNARY[ ndims ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn TERNARY[ ndims ]( x, y, z, w, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] || d !== shz[ i ] || d !== shw[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\treturn ACCESSOR_TERNARY[ ndims ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn TERNARY[ ndims ]( x, y, z, w, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\n\t// Determine whether the ndarrays have only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tz.shape = x.shape;\n\t\tw.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tz.strides = [ sz[i] ];\n\t\tw.strides = [ sw[i] ];\n\t\tif ( hasAccessors( x, y, w, z ) ) {\n\t\t\treturn ACCESSOR_TERNARY[ 1 ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn TERNARY[ 1 ]( x, y, z, w, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\tioz = iterationOrder( sz ); // +/-1\n\tiow = iterationOrder( sw ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif (\n\t\tiox !== 0 &&\n\t\tioy !== 0 &&\n\t\tioz !== 0 &&\n\t\tiow !== 0 &&\n\t\tord === strides2order( sy ) &&\n\t\tord === strides2order( sz ) &&\n\t\tord === strides2order( sw )\n\t) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\t\tzmmv = minmaxViewBufferIndex( shz, sz, z.offset );\n\t\twmmv = minmaxViewBufferIndex( shw, sw, w.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif (\n\t\t\tlen === ( xmmv[1]-xmmv[0]+1 ) &&\n\t\t\tlen === ( ymmv[1]-ymmv[0]+1 ) &&\n\t\t\tlen === ( zmmv[1]-zmmv[0]+1 ) &&\n\t\t\tlen === ( wmmv[1]-wmmv[0]+1 )\n\t\t) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioz === 1 ) {\n\t\t\t\toz = zmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toz = zmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( iow === 1 ) {\n\t\t\t\tow = wmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tow = wmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tz.shape = x.shape;\n\t\t\tw.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tz.strides = [ ioz ];\n\t\t\tw.strides = [ iow ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tz.offset = oz;\n\t\t\tw.offset = ow;\n\t\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\t\treturn ACCESSOR_TERNARY[ 1 ]( x, y, z, w, fcn );\n\t\t\t}\n\t\t\treturn TERNARY[ 1 ]( x, y, z, w, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\t\treturn ACCESSOR_TERNARY[ ndims ]( x, y, z, w, ord === 1, fcn );\n\t\t\t}\n\t\t\treturn TERNARY[ ndims ]( x, y, z, w, ord === 1, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( hasAccessors( x, y, z, w ) ) {\n\t\t\treturn BLOCKED_ACCESSOR_TERNARY[ ndims-2 ]( x, y, z, w, fcn );\n\t\t}\n\t\treturn BLOCKED_TERNARY[ ndims-2 ]( x, y, z, w, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( hasAccessors( x, y, z, w ) ) {\n\t\treturn accessorternarynd( x, y, z, w, fcn );\n\t}\n\tternarynd( x, y, z, w, fcn );\n}\n\n\n// EXPORTS //\n\nexport default ternary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 2.0 ] );\n* var ybuf = new Float64Array( [ 3.0 ] );\n* var zbuf = new Float64Array( [ 4.0 ] );\n* var wbuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n* var sw = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary0d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 9.0 ]\n*/\nfunction ternary0d( x, y, z, w, fcn ) {\n\tw.data[ w.offset ] = fcn( x.data[ x.offset ], y.data[ y.offset ], z.data[ z.offset ] ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ternary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 5 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n* var sw = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary1d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5 ]\n*/\nfunction ternary1d( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx;\n\tvar dy;\n\tvar dz;\n\tvar dw;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\t// Note on variable naming convention: S#, where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx = x.strides[ 0 ];\n\tdy = y.strides[ 0 ];\n\tdz = z.strides[ 0 ];\n\tdw = w.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i = 0; i < S0; i++ ) {\n\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\tix += dx;\n\t\tiy += dy;\n\t\tiz += dz;\n\t\tiw += dw;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary2d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction ternary2d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t\tdw0 = sw[ 1 ];\n\t\tdw1 = sw[ 0 ] - ( S0*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t\tiw += dw0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t\tiw += dw1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary3d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction ternary3d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 2 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[2] );\n\t\tdw2 = sw[ 0 ] - ( S1*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t\tiw += dw0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t\tiw += dw1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t\tiw += dw2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n* var sz = [ 12, 4, 2, 1 ];\n* var sw = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary4d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction ternary4d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dw#, dz#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t\tdw0 = sw[ 3 ];\n\t\tdw1 = sw[ 2 ] - ( S0*sw[3] );\n\t\tdw2 = sw[ 1 ] - ( S1*sw[2] );\n\t\tdw3 = sw[ 0 ] - ( S2*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t\tiw += dw2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t\tiw += dw3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary5d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary5d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t\tdw0 = sw[ 4 ];\n\t\tdw1 = sw[ 3 ] - ( S0*sw[4] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[3] );\n\t\tdw3 = sw[ 1 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 0 ] - ( S3*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t\tiw += dw1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t\tiw += dw2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t\tiw += dw3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t\tiw += dw4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary6d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary6d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t\tdw0 = sw[ 5 ];\n\t\tdw1 = sw[ 4 ] - ( S0*sw[5] );\n\t\tdw2 = sw[ 3 ] - ( S1*sw[4] );\n\t\tdw3 = sw[ 2 ] - ( S2*sw[3] );\n\t\tdw4 = sw[ 1 ] - ( S3*sw[2] );\n\t\tdw5 = sw[ 0 ] - ( S4*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t\tiw += dw3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t\tiw += dw4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t\tiw += dw5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary7d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary7d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t\tdw0 = sw[ 6 ];\n\t\tdw1 = sw[ 5 ] - ( S0*sw[6] );\n\t\tdw2 = sw[ 4 ] - ( S1*sw[5] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[4] );\n\t\tdw4 = sw[ 2 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 1 ] - ( S4*sw[2] );\n\t\tdw6 = sw[ 0 ] - ( S5*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t\tiw += dw3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t\tiw += dw4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t\tiw += dw5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t\tiw += dw6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary8d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary8d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t\tdw0 = sw[ 7 ];\n\t\tdw1 = sw[ 6 ] - ( S0*sw[7] );\n\t\tdw2 = sw[ 5 ] - ( S1*sw[6] );\n\t\tdw3 = sw[ 4 ] - ( S2*sw[5] );\n\t\tdw4 = sw[ 3 ] - ( S3*sw[4] );\n\t\tdw5 = sw[ 2 ] - ( S4*sw[3] );\n\t\tdw6 = sw[ 1 ] - ( S5*sw[2] );\n\t\tdw7 = sw[ 0 ] - ( S6*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t\tiw += dw4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t\tiw += dw5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t\tiw += dw6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t\tiw += dw7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary9d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary9d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t\tdw0 = sw[ 8 ];\n\t\tdw1 = sw[ 7 ] - ( S0*sw[8] );\n\t\tdw2 = sw[ 6 ] - ( S1*sw[7] );\n\t\tdw3 = sw[ 5 ] - ( S2*sw[6] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[5] );\n\t\tdw5 = sw[ 3 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 2 ] - ( S5*sw[3] );\n\t\tdw7 = sw[ 1 ] - ( S6*sw[2] );\n\t\tdw8 = sw[ 0 ] - ( S7*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t\tiw += dw5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t\tiw += dw6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t\tiw += dw7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t\tiw += dw8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 8 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternary10d( x, y, z, w, true, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary10d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t\tdw0 = sw[ 9 ];\n\t\tdw1 = sw[ 8 ] - ( S0*sw[9] );\n\t\tdw2 = sw[ 7 ] - ( S1*sw[8] );\n\t\tdw3 = sw[ 6 ] - ( S2*sw[7] );\n\t\tdw4 = sw[ 5 ] - ( S3*sw[6] );\n\t\tdw5 = sw[ 4 ] - ( S4*sw[5] );\n\t\tdw6 = sw[ 3 ] - ( S5*sw[4] );\n\t\tdw7 = sw[ 2 ] - ( S6*sw[3] );\n\t\tdw8 = sw[ 1 ] - ( S7*sw[2] );\n\t\tdw9 = sw[ 0 ] - ( S8*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t\tdw9 = sw[ 9 ] - ( S8*sw[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t\tiw += dw6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t\tiw += dw7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t\tiw += dw8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t\tiw += dw9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in zero-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0 ] );\n* var ybuf = toAccessorArray( [ 2.0 ] );\n* var zbuf = toAccessorArray( [ 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n* var sz = [ 0 ];\n* var sw = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary0d( x, y, z, w, fcn );\n*\n* var v = w.data.get( 0 );\n* // returns 3.5\n*/\nfunction ternary0d( x, y, z, w, fcn ) {\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\twset( w.data, w.offset, fcn( xget( x.data, x.offset ), yget( y.data, y.offset ), zget( z.data, z.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ternary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in one-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop interchange.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n* var sz = [ 1 ];\n* var sw = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary1d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5 ]\n*/\nfunction ternary1d( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx;\n\tvar dy;\n\tvar dz;\n\tvar dw;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\t// Note on variable naming convention: S#, where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx = x.strides[ 0 ];\n\tdy = y.strides[ 0 ];\n\tdz = z.strides[ 0 ];\n\tdw = w.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i = 0; i < S0; i++ ) {\n\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\tix += dx;\n\t\tiy += dy;\n\t\tiz += dz;\n\t\tiw += dw;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary2d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5 ]\n*/\nfunction ternary2d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t\tdz0 = sz[ 1 ];\n\t\tdz1 = sz[ 0 ] - ( S0*sz[1] );\n\t\tdw0 = sw[ 1 ];\n\t\tdw1 = sw[ 0 ] - ( S0*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\tiz += dz0;\n\t\t\tiw += dw0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t\tiz += dz1;\n\t\tiw += dw1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary3d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary3d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 2 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[2] );\n\t\tdz2 = sz[ 0 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 2 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[2] );\n\t\tdw2 = sw[ 0 ] - ( S1*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\tiz += dz0;\n\t\t\t\tiw += dw0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t\tiz += dz1;\n\t\t\tiw += dw1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t\tiz += dz2;\n\t\tiw += dw2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 4, 2, 1 ];\n* var sy = [ 8, 4, 2, 1 ];\n* var sz = [ 8, 4, 2, 1 ];\n* var sw = [ 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary4d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary4d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t\tdz0 = sz[ 3 ];\n\t\tdz1 = sz[ 2 ] - ( S0*sz[3] );\n\t\tdz2 = sz[ 1 ] - ( S1*sz[2] );\n\t\tdz3 = sz[ 0 ] - ( S2*sz[1] );\n\t\tdw0 = sw[ 3 ];\n\t\tdw1 = sw[ 2 ] - ( S0*sw[3] );\n\t\tdw2 = sw[ 1 ] - ( S1*sw[2] );\n\t\tdw3 = sw[ 0 ] - ( S2*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t\tiz += dz2;\n\t\t\tiw += dw2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t\tiz += dz3;\n\t\tiw += dw3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary5d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary5d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t\tdz0 = sz[ 4 ];\n\t\tdz1 = sz[ 3 ] - ( S0*sz[4] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[3] );\n\t\tdz3 = sz[ 1 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 0 ] - ( S3*sz[1] );\n\t\tdw0 = sw[ 4 ];\n\t\tdw1 = sw[ 3 ] - ( S0*sw[4] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[3] );\n\t\tdw3 = sw[ 1 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 0 ] - ( S3*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t\tiz += dz1;\n\t\t\t\t\tiw += dw1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t\tiz += dz2;\n\t\t\t\tiw += dw2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t\tiz += dz3;\n\t\t\tiw += dw3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t\tiz += dz4;\n\t\tiw += dw4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary6d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary6d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t\tdz0 = sz[ 5 ];\n\t\tdz1 = sz[ 4 ] - ( S0*sz[5] );\n\t\tdz2 = sz[ 3 ] - ( S1*sz[4] );\n\t\tdz3 = sz[ 2 ] - ( S2*sz[3] );\n\t\tdz4 = sz[ 1 ] - ( S3*sz[2] );\n\t\tdz5 = sz[ 0 ] - ( S4*sz[1] );\n\t\tdw0 = sw[ 5 ];\n\t\tdw1 = sw[ 4 ] - ( S0*sw[5] );\n\t\tdw2 = sw[ 3 ] - ( S1*sw[4] );\n\t\tdw3 = sw[ 2 ] - ( S2*sw[3] );\n\t\tdw4 = sw[ 1 ] - ( S3*sw[2] );\n\t\tdw5 = sw[ 0 ] - ( S4*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t\tiz += dz3;\n\t\t\t\tiw += dw3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t\tiz += dz4;\n\t\t\tiw += dw4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t\tiz += dz5;\n\t\tiw += dw5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary7d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary7d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t\tdz0 = sz[ 6 ];\n\t\tdz1 = sz[ 5 ] - ( S0*sz[6] );\n\t\tdz2 = sz[ 4 ] - ( S1*sz[5] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[4] );\n\t\tdz4 = sz[ 2 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 1 ] - ( S4*sz[2] );\n\t\tdz6 = sz[ 0 ] - ( S5*sz[1] );\n\t\tdw0 = sw[ 6 ];\n\t\tdw1 = sw[ 5 ] - ( S0*sw[6] );\n\t\tdw2 = sw[ 4 ] - ( S1*sw[5] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[4] );\n\t\tdw4 = sw[ 2 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 1 ] - ( S4*sw[2] );\n\t\tdw6 = sw[ 0 ] - ( S5*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t\tiz += dz3;\n\t\t\t\t\tiw += dw3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t\tiz += dz4;\n\t\t\t\tiw += dw4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t\tiz += dz5;\n\t\t\tiw += dw5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t\tiz += dz6;\n\t\tiw += dw6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary8d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary8d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t\tdz0 = sz[ 7 ];\n\t\tdz1 = sz[ 6 ] - ( S0*sz[7] );\n\t\tdz2 = sz[ 5 ] - ( S1*sz[6] );\n\t\tdz3 = sz[ 4 ] - ( S2*sz[5] );\n\t\tdz4 = sz[ 3 ] - ( S3*sz[4] );\n\t\tdz5 = sz[ 2 ] - ( S4*sz[3] );\n\t\tdz6 = sz[ 1 ] - ( S5*sz[2] );\n\t\tdz7 = sz[ 0 ] - ( S6*sz[1] );\n\t\tdw0 = sw[ 7 ];\n\t\tdw1 = sw[ 6 ] - ( S0*sw[7] );\n\t\tdw2 = sw[ 5 ] - ( S1*sw[6] );\n\t\tdw3 = sw[ 4 ] - ( S2*sw[5] );\n\t\tdw4 = sw[ 3 ] - ( S3*sw[4] );\n\t\tdw5 = sw[ 2 ] - ( S4*sw[3] );\n\t\tdw6 = sw[ 1 ] - ( S5*sw[2] );\n\t\tdw7 = sw[ 0 ] - ( S6*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t\tiz += dz4;\n\t\t\t\t\tiw += dw4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t\tiz += dz5;\n\t\t\t\tiw += dw5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t\tiz += dz6;\n\t\t\tiw += dw6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t\tiz += dz7;\n\t\tiw += dw7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary9d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary9d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t\tdz0 = sz[ 8 ];\n\t\tdz1 = sz[ 7 ] - ( S0*sz[8] );\n\t\tdz2 = sz[ 6 ] - ( S1*sz[7] );\n\t\tdz3 = sz[ 5 ] - ( S2*sz[6] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[5] );\n\t\tdz5 = sz[ 3 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 2 ] - ( S5*sz[3] );\n\t\tdz7 = sz[ 1 ] - ( S6*sz[2] );\n\t\tdz8 = sz[ 0 ] - ( S7*sz[1] );\n\t\tdw0 = sw[ 8 ];\n\t\tdw1 = sw[ 7 ] - ( S0*sw[8] );\n\t\tdw2 = sw[ 6 ] - ( S1*sw[7] );\n\t\tdw3 = sw[ 5 ] - ( S2*sw[6] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[5] );\n\t\tdw5 = sw[ 3 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 2 ] - ( S5*sw[3] );\n\t\tdw7 = sw[ 1 ] - ( S6*sw[2] );\n\t\tdw8 = sw[ 0 ] - ( S7*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t\tiz += dz5;\n\t\t\t\t\tiw += dw5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t\tiz += dz6;\n\t\t\t\tiw += dw6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t\tiz += dz7;\n\t\t\tiw += dw7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t\tiz += dz8;\n\t\tiw += dw8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-depth, max-lines-per-function */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sy = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sz = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n* var sw = [ 8, 8, 8, 8, 8, 8, 8, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternary10d( x, y, z, w, true, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5 ]\n*/\nfunction ternary10d( x, y, z, w, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, dz#, dw#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t\tdz0 = sz[ 9 ];\n\t\tdz1 = sz[ 8 ] - ( S0*sz[9] );\n\t\tdz2 = sz[ 7 ] - ( S1*sz[8] );\n\t\tdz3 = sz[ 6 ] - ( S2*sz[7] );\n\t\tdz4 = sz[ 5 ] - ( S3*sz[6] );\n\t\tdz5 = sz[ 4 ] - ( S4*sz[5] );\n\t\tdz6 = sz[ 3 ] - ( S5*sz[4] );\n\t\tdz7 = sz[ 2 ] - ( S6*sz[3] );\n\t\tdz8 = sz[ 1 ] - ( S7*sz[2] );\n\t\tdz9 = sz[ 0 ] - ( S8*sz[1] );\n\t\tdw0 = sw[ 9 ];\n\t\tdw1 = sw[ 8 ] - ( S0*sw[9] );\n\t\tdw2 = sw[ 7 ] - ( S1*sw[8] );\n\t\tdw3 = sw[ 6 ] - ( S2*sw[7] );\n\t\tdw4 = sw[ 5 ] - ( S3*sw[6] );\n\t\tdw5 = sw[ 4 ] - ( S4*sw[5] );\n\t\tdw6 = sw[ 3 ] - ( S5*sw[4] );\n\t\tdw7 = sw[ 2 ] - ( S6*sw[3] );\n\t\tdw8 = sw[ 1 ] - ( S7*sw[2] );\n\t\tdw9 = sw[ 0 ] - ( S8*sw[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t\tdz0 = sz[ 0 ];\n\t\tdz1 = sz[ 1 ] - ( S0*sz[0] );\n\t\tdz2 = sz[ 2 ] - ( S1*sz[1] );\n\t\tdz3 = sz[ 3 ] - ( S2*sz[2] );\n\t\tdz4 = sz[ 4 ] - ( S3*sz[3] );\n\t\tdz5 = sz[ 5 ] - ( S4*sz[4] );\n\t\tdz6 = sz[ 6 ] - ( S5*sz[5] );\n\t\tdz7 = sz[ 7 ] - ( S6*sz[6] );\n\t\tdz8 = sz[ 8 ] - ( S7*sz[7] );\n\t\tdz9 = sz[ 9 ] - ( S8*sz[8] );\n\t\tdw0 = sw[ 0 ];\n\t\tdw1 = sw[ 1 ] - ( S0*sw[0] );\n\t\tdw2 = sw[ 2 ] - ( S1*sw[1] );\n\t\tdw3 = sw[ 3 ] - ( S2*sw[2] );\n\t\tdw4 = sw[ 4 ] - ( S3*sw[3] );\n\t\tdw5 = sw[ 5 ] - ( S4*sw[4] );\n\t\tdw6 = sw[ 6 ] - ( S5*sw[5] );\n\t\tdw7 = sw[ 7 ] - ( S6*sw[6] );\n\t\tdw8 = sw[ 8 ] - ( S7*sw[7] );\n\t\tdw9 = sw[ 9 ] - ( S8*sw[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\tiz = z.offset;\n\tiw = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = w.accessors[ 0 ];\n\twset = z.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t\tiz += dz6;\n\t\t\t\t\tiw += dw6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t\tiz += dz7;\n\t\t\t\tiw += dw7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t\tiz += dz8;\n\t\t\tiw += dw8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t\tiz += dz9;\n\t\tiw += dw9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary2d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary2d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar ow1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tow1 = ow + ( j1*sw[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary3d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary3d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar ow1;\n\tvar ow2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tow2 = ow + ( j2*sw[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 6, 2, 2, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n* var sz = [ 6, 2, 2, 1 ];\n* var sw = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary4d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary4d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tow3 = ow + ( j3*sw[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\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\nexport default blockedternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary5d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary5d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tow4 = ow + ( j4*sw[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\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\nexport default blockedternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary6d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary6d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tow5 = ow + ( j5*sw[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\tiw += dw5;\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\nexport default blockedternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary7d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary7d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tow6 = ow + ( j6*sw[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\tiw += dw6;\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\nexport default blockedternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary8d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary8d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tow7 = ow + ( j7*sw[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\tiw += dw7;\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\nexport default blockedternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len, max-lines */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary9d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary9d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tow8 = ow + ( j8*sw[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\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\nexport default blockedternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( 12 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* blockedternary10d( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary10d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar ow9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tow9 = ow + ( j9*sw[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tdw9 = sw[9] - ( s8*sw[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tow8 = ow9 + ( j8*sw[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw9;\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\nexport default blockedternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in two-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 6, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n* var sz = [ 2, 1 ];\n* var sw = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary2d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary2d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar dw0;\n\tvar dw1;\n\tvar ox1;\n\tvar oy1;\n\tvar oz1;\n\tvar ow1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\toz1 = oz + ( j1*sz[1] );\n\t\tow1 = ow + ( j1*sw[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\tiz += dz0;\n\t\t\t\t\tiw += dw0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t\tiz += dz1;\n\t\t\t\tiw += dw1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n* var sz = [ 4, 2, 1 ];\n* var sw = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary3d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary3d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar oz1;\n\tvar oz2;\n\tvar ow1;\n\tvar ow2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\toz2 = oz + ( j2*sz[2] );\n\t\tow2 = ow + ( j2*sw[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t\tiz += dz2;\n\t\t\t\t\tiw += dw2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedternary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in four-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 6, 2, 2, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n* var sz = [ 6, 2, 2, 1 ];\n* var sw = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary4d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary4d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\toz3 = oz + ( j3*sz[3] );\n\t\tow3 = ow + ( j3*sw[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\tiw += dw3;\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\nexport default blockedternary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in five-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary5d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary5d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\toz4 = oz + ( j4*sz[4] );\n\t\tow4 = ow + ( j4*sw[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\tiw += dw4;\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\nexport default blockedternary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in six-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary6d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary6d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\toz5 = oz + ( j5*sz[5] );\n\t\tow5 = ow + ( j5*sw[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\tiw += dw5;\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\nexport default blockedternary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in seven-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary7d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary7d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\toz6 = oz + ( j6*sz[6] );\n\t\tow6 = ow + ( j6*sw[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\tiw += dw6;\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\nexport default blockedternary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in eight-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary8d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary8d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\toz7 = oz + ( j7*sz[7] );\n\t\tow7 = ow + ( j7*sw[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\tiw += dw7;\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\nexport default blockedternary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in nine-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary9d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary9d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\toz8 = oz + ( j8*sz[8] );\n\t\tow8 = ow + ( j8*sw[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\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\nexport default blockedternary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 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-statements, max-lines-per-function, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in ten-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 3, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sz = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n* var sw = [ 12, 12, 12, 12, 12, 12, 12, 6, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* blockedternary10d( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5 ]\n*/\nfunction blockedternary10d( x, y, z, w, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar dz0;\n\tvar dz1;\n\tvar dz2;\n\tvar dz3;\n\tvar dz4;\n\tvar dz5;\n\tvar dz6;\n\tvar dz7;\n\tvar dz8;\n\tvar dz9;\n\tvar dw0;\n\tvar dw1;\n\tvar dw2;\n\tvar dw3;\n\tvar dw4;\n\tvar dw5;\n\tvar dw6;\n\tvar dw7;\n\tvar dw8;\n\tvar dw9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar oz1;\n\tvar oz2;\n\tvar oz3;\n\tvar oz4;\n\tvar oz5;\n\tvar oz6;\n\tvar oz7;\n\tvar oz8;\n\tvar oz9;\n\tvar ow1;\n\tvar ow2;\n\tvar ow3;\n\tvar ow4;\n\tvar ow5;\n\tvar ow6;\n\tvar ow7;\n\tvar ow8;\n\tvar ow9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, dz#, dw#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides, z.strides, w.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\tsz = o.sz;\n\tsw = o.sw;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype, z.dtype, w.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\tdz0 = sz[0];\n\tdw0 = sw[0];\n\n\t// Cache accessors:\n\txget = x.accessors[0];\n\tyget = y.accessors[0];\n\tzget = z.accessors[0];\n\twset = w.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\toz9 = oz + ( j9*sz[9] );\n\t\tow9 = ow + ( j9*sw[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tdz9 = sz[9] - ( s8*sz[8] );\n\t\t\tdw9 = sw[9] - ( s8*sw[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\toz8 = oz9 + ( j8*sz[8] );\n\t\t\tow8 = ow9 + ( j8*sw[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tdz8 = sz[8] - ( s7*sz[7] );\n\t\t\t\tdw8 = sw[8] - ( s7*sw[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\toz7 = oz8 + ( j7*sz[7] );\n\t\t\t\tow7 = ow8 + ( j7*sw[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tdz7 = sz[7] - ( s6*sz[6] );\n\t\t\t\t\tdw7 = sw[7] - ( s6*sw[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\toz6 = oz7 + ( j6*sz[6] );\n\t\t\t\t\tow6 = ow7 + ( j6*sw[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tdz6 = sz[6] - ( s5*sz[5] );\n\t\t\t\t\t\tdw6 = sw[6] - ( s5*sw[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\toz5 = oz6 + ( j5*sz[5] );\n\t\t\t\t\t\tow5 = ow6 + ( j5*sw[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tdz5 = sz[5] - ( s4*sz[4] );\n\t\t\t\t\t\t\tdw5 = sw[5] - ( s4*sw[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\toz4 = oz5 + ( j4*sz[4] );\n\t\t\t\t\t\t\tow4 = ow5 + ( j4*sw[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tdz4 = sz[4] - ( s3*sz[3] );\n\t\t\t\t\t\t\t\tdw4 = sw[4] - ( s3*sw[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\toz3 = oz4 + ( j3*sz[3] );\n\t\t\t\t\t\t\t\tow3 = ow4 + ( j3*sw[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tdz3 = sz[3] - ( s2*sz[2] );\n\t\t\t\t\t\t\t\t\tdw3 = sw[3] - ( s2*sw[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\toz2 = oz3 + ( j2*sz[2] );\n\t\t\t\t\t\t\t\t\tow2 = ow3 + ( j2*sw[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tdz2 = sz[2] - ( s1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tdw2 = sw[2] - ( s1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\toz1 = oz2 + ( j1*sz[1] );\n\t\t\t\t\t\t\t\t\t\tow1 = ow2 + ( j1*sw[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tiz = oz1 + ( j0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tiw = ow1 + ( j0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\t\t\t\t\t\t\t\t\t\t\tdz1 = sz[1] - ( s0*sz[0] );\n\t\t\t\t\t\t\t\t\t\t\tdw1 = sw[1] - ( s0*sw[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiz += dz8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiw += dw8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t\tiz += dz9;\n\t\t\t\t\t\t\t\t\t\t\t\tiw += dw9;\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\nexport default blockedternary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Recursively converts an ndarray to a generic array.\n*\n* @private\n* @param {Object} obj - array object\n* @param {(ArrayLikeObject|TypedArray|Buffer)} obj.data - data buffer\n* @param {Array} obj.accessors - element accessors\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {NonNegativeInteger} dim - dimension\n* @returns {(Array|Array)} output array\n*/\nfunction recurse( obj, shape, strides, offset, order, dim ) {\n\tvar stride;\n\tvar item;\n\tvar out;\n\tvar n;\n\tvar i;\n\n\tif ( dim >= shape.length ) {\n\t\treturn obj.accessors[ 0 ]( obj.data, offset );\n\t}\n\tout = [];\n\n\tn = shape[ dim ];\n\tstride = strides[ dim ];\n\n\tfor ( i = 0; i < n; i++ ) {\n\t\titem = recurse( obj, shape, strides, offset, order, dim+1 );\n\t\tout.push( item );\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default recurse;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Transpose a matrix (or a stack of matrices).\n*\n* @param {ndarray} x - input array\n* @throws {Error} must provide an array with two or more dimensions\n* @returns {ndarray} ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 3 ]\n*\n* var y = transpose( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* var bool = ( x.data === y.data );\n* // returns true\n*\n* bool = ( x.get( 0, 1 ) === y.get( 1, 0 ) );\n* // returns true\n*/\nfunction transpose( x ) {\n\tvar tmp;\n\tvar sh;\n\tvar st;\n\tvar N;\n\n\tsh = getShape( x, true );\n\tN = sh.length;\n\tif ( N < 2 ) {\n\t\tthrow new Error( 'invalid argument. Must provide an ndarray having two or more dimensions.' );\n\t}\n\tst = getStrides( x, true );\n\n\ttmp = sh[ N-2 ];\n\tsh[ N-2 ] = sh[ N-1 ];\n\tsh[ N-1 ] = tmp;\n\n\ttmp = st[ N-2 ];\n\tst[ N-2 ] = st[ N-1 ];\n\tst[ N-1 ] = tmp;\n\n\t// FIXME: handling of offset seems incorrect. Should also handle READ-ONLY arrays.\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, strides2offset( sh, st ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default transpose;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Expands a dimension over multiple dimensions.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to be unflattened\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @param {NonNegativeIntegerArray} out - output array\n* @throws {RangeError} second argument is out-of-bounds\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {NonNegativeIntegerArray} unflattened shape\n*\n* @example\n* var o = [ 0, 0, 0, 0 ];\n*\n* var out = unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ], o );\n* // returns [ 3, 2, 2, 1 ]\n*\n* var bool = ( out === o );\n* // returns true\n*/\nfunction unflattenShape( shape, dim, sizes, out ) {\n\tvar S1;\n\tvar S2;\n\tvar N;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tS1 = shape.length;\n\td = normalizeIndex( dim, S1-1 );\n\tif ( d < 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', S1, dim ) );\n\t}\n\tS2 = sizes.length;\n\tN = numel( sizes );\n\tif ( N !== shape[ d ] ) {\n\t\tthrow new RangeError( format( 'invalid argument. Product of the sizes must be equal to the size of the dimension to be unflattened. Dimension: %d. Size: %d. Value: `[%s]`.', d, shape[ d ], join( sizes, ', ' ) ) );\n\t}\n\tfor ( i = 0; i < d; i++ ) {\n\t\tout[ i ] = shape[ i ];\n\t}\n\tj = 0;\n\tfor ( ; i < d+S2; i++ ) {\n\t\tout[ i ] = sizes[ j ];\n\t\tj += 1;\n\t}\n\tj = d + 1;\n\tif ( j < S1 ) {\n\t\tfor ( ; i < S1+S2-1; i++ ) {\n\t\t\tout[ i ] = shape[ j ];\n\t\t\tj += 1;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default unflattenShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeros from '@stdlib/array-base-zeros';\nimport assign from './assign.js';\n\n\n// MAIN //\n\n/**\n* Expands a dimension over multiple dimensions.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} dim - dimension to be unflattened\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @throws {RangeError} second argument is out-of-bounds\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {NonNegativeIntegerArray} unflattened shape\n*\n* @example\n* var sh = unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ] );\n* // returns [ 3, 2, 2, 1 ]\n*/\nfunction unflattenShape( shape, dim, sizes ) {\n\tvar out = zeros( shape.length + sizes.length - 1 );\n\tassign( shape, dim, sizes, out );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default unflattenShape;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isRowMajorString from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport unflattenShape from '@stdlib/ndarray-base-unflatten-shape';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which a specified dimension is expanded over multiple dimensions.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension index\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide a valid dimension index\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* // returns [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]\n*\n* var out = unflatten( x, 0, [ 2, 3 ], false );\n* // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ] ]\n*/\nfunction unflatten( x, dim, sizes, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar isrm;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar S2;\n\tvar o;\n\tvar d;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\to = strides2order( st );\n\tif ( o === 0 || o === 3 ) {\n\t\t// Fallback to stated layout when unable to infer the underlying physical layout:\n\t\tisrm = isRowMajorString( ord );\n\t} else {\n\t\tisrm = ( o === 1 );\n\t}\n\n\t// Normalize the dimension to be unflattened:\n\td = normalizeIndex( dim, sh.length-1 );\n\n\t// Compute the output shape:\n\tshape = unflattenShape( sh, d, sizes );\n\n\t// Resolve the output strides:\n\tstrides = [];\n\tS2 = sizes.length;\n\tfor ( i = 0; i < d; i++ ) {\n\t\tstrides.push( st[ i ] );\n\t}\n\tfor ( i = 0; i < S2; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\tfor ( i = d+1; i < sh.length; i++ ) {\n\t\tstrides.push( st[ i ] );\n\t}\n\t// Compute strides for the unflattened dimensions...\n\tif ( isrm ) {\n\t\tstrides[ d+S2-1 ] = st[ d ];\n\t\tfor ( i = S2-1; i > 0; i-- ) {\n\t\t\tstrides[ d+i-1 ] = strides[ d+i ] * sizes[ i ];\n\t\t}\n\t} else {\n\t\tstrides[ d ] = st[ d ];\n\t\tfor ( i = 0; i < S2-1; i++ ) {\n\t\t\tstrides[ d+i+1 ] = strides[ d+i ] * sizes[ i ];\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default unflatten;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Expand a dimension over multiple dimensions.\n*\n* @module @stdlib/ndarray-base-unflatten-shape\n*\n* @example\n* import unflattenShape from '@stdlib/ndarray-base-unflatten-shape';\n*\n* var sh = unflattenShape( [ 6, 2, 1 ], 0, [ 3, 2 ] );\n* // returns [ 3, 2, 2, 1 ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"assign\": \"main.assign\" }\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport format from '@stdlib/string-format';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - unary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( format( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == %d. ndims(y) == %d.', ndims, shy.length ) );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, ord === 1, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, ord === 1, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn );\n\t}\n\tunarynd( x, y, fcn );\n}\n\n\n// EXPORTS //\n\nexport default unary;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.data[ y.offset ] = fcn( x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unary2d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary3d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary4d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary5d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary6d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary7d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary8d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary9d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary10d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 30.0, 40.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary2d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary3d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary4d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary5d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary6d( x, y, isRowMajor, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary7d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary8d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary9d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction unary10d( x, y, isRowMajor, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n* // returns [ 10.0, 20.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an n-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulatend( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulatend( x, initial, clbk ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar get;\n\tvar acc;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulatend;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an n-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulatend( x, 0.0, add );\n* // returns 18.0\n*/\nfunction accumulatend( x, initial, clbk ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar acc;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the input ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulatend;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an input ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulateUnary( [ x ], 0.0, add );\n* // returns 39.0\n*/\nfunction accumulateUnary( arrays, initial, clbk ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, initial, clbk );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, initial, clbk );\n\t}\n\t// Determine the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, initial, clbk );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, initial, clbk );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, initial, clbk );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, initial, clbk );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, initial, clbk );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, initial, clbk );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, initial, clbk );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, initial, clbk );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, initial, clbk );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, initial, clbk );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessorunarynd( x, initial, clbk );\n\t}\n\treturn unarynd( x, initial, clbk );\n}\n\n\n// EXPORTS //\n\nexport default accumulateUnary;\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* Performs a reduction over elements in a zero-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate0d( x, 0.0, add );\n* // returns 2.0\n*/\nfunction accumulate0d( x, initial, clbk ) {\n\treturn clbk( initial, x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nexport default accumulate0d;\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* Performs a reduction over elements in a one-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate1d( x, 0.0, add );\n* // returns 20.0\n*/\nfunction accumulate1d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar acc;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\tix += dx0;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate2d( x, 0.0, add );\n* // returns 18.0\n*/\nfunction accumulate2d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate3d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate3d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate4d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate4d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate5d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate5d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate6d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate6d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate7d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate7d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate8d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate8d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate9d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate9d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = accumulate10d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction accumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate10d;\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* Performs a reduction over elements in a zero-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate0d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction accumulate0d( x, initial, clbk ) {\n\treturn clbk( initial, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default accumulate0d;\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* Performs a reduction over elements in a one-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate1d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate1d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar acc;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\tix += dx0;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate1d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate2d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate2d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate2d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate3d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate3d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate3d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate4d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate4d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate4d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate5d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate5d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate5d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate6d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate6d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate6d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate7d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate7d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate7d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate8d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate8d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate8d;\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\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate9d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate9d( x, initial, clbk ) {\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport strides2order from '@stdlib/ndarray-base-strides2order';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = accumulate10d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction accumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar acc;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set the pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the accessor:\n\tget = x.accessors[ 0 ];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default accumulate10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate2d( x, 0.0, add );\n* // returns 18.0\n*/\nfunction blockedaccumulate2d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate3d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate3d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate4d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate4d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate5d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate5d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate6d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate6d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate7d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate7d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate8d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate8d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate9d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate9d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function add( acc, x ) {\n* return acc + x;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate10d( x, 0.0, add );\n* // returns 39.0\n*/\nfunction blockedaccumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate10d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a two-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate2d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate2d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate2d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a three-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 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* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate3d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate3d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate3d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a four-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate4d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate4d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate4d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a five-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate5d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate5d( x, initial, clbk ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate5d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a six-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate6d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate6d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate6d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a seven-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate7d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate7d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate7d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in an eight-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate8d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate8d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate8d;\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\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a nine-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate9d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate9d( x, initial, clbk ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) ); // eslint-disable-line node/callback-return\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate9d;\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, node/callback-return */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over elements in a ten-dimensional input ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {*} initial - initial value\n* @param {Callback} clbk - callback function\n* @returns {*} result\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function add( acc, z ) {\n* return new Complex64( realf(acc)+realf(z), imagf(acc)+imagf(z) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* // Define the shape of the input array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Compute the sum:\n* var v = blockedaccumulate10d( x, new Complex64( 0.0, 0.0 ), add );\n* // returns \n*\n* var re = realf( v );\n* // returns 16.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedaccumulate10d( x, initial, clbk ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar get;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar acc;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the input ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache the accessor:\n\tget = x.accessors[0];\n\n\t// Initialize the accumulator:\n\tacc = initial;\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first input ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tacc = clbk( acc, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn acc;\n}\n\n\n// EXPORTS //\n\nexport default blockedaccumulate10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport MAX from '@stdlib/constants-array-max-typed-array-length';\n\n\n// MAIN //\n\n/**\n* Tests if a value is typed-array-like.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is typed-array-like\n*\n* @example\n* var arr = {\n* 'BYTES_PER_ELEMENT': 8,\n* 'length': 10,\n* 'byteOffset': 0,\n* 'byteLength': 10\n* };\n* var val = isTypedArrayLike( arr );\n* // returns true\n*\n* @example\n* import Int8Array from '@stdlib/array-int8';\n*\n* var val = isTypedArrayLike( new Int8Array( 4 ) );\n* // returns true\n*\n* @example\n* var val = isTypedArrayLike( [] );\n* // returns false\n*\n* @example\n* var val = isTypedArrayLike( {} );\n* // returns false\n*\n* @example\n* var val = isTypedArrayLike( null );\n* // returns false\n*\n* @example\n* var val = isTypedArrayLike( 'beep' );\n* // returns false\n*/\nfunction isTypedArrayLike( value ) {\n\treturn (\n\t\tvalue !== null &&\n\t\ttypeof value === 'object' &&\n\t\tisNonNegativeInteger( value.length ) &&\n\t\tvalue.length <= MAX &&\n\t\ttypeof value.BYTES_PER_ELEMENT === 'number' &&\n\t\ttypeof value.byteOffset === 'number' &&\n\t\ttypeof value.byteLength === 'number'\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isTypedArrayLike;\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\nimport isFunction from '@stdlib/assert-is-function';\nimport isTypedArrayLike from '@stdlib/assert-is-typed-array-like';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport reinterpretComplex64 from '@stdlib/strided-base-reinterpret-complex64';\nimport reinterpretComplex128 from '@stdlib/strided-base-reinterpret-complex128';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport serialize from '@stdlib/ndarray-base-serialize-meta-data';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar COMPLEX64 = resolveEnum( 'complex64' );\nvar COMPLEX128 = resolveEnum( 'complex128' );\nvar BOOLEAN = resolveEnum( 'bool' );\n\n\n// MAIN //\n\n/**\n* Returns a function which dispatches to a native add-on applying a unary function to an input ndarray.\n*\n* ## Notes\n*\n* - The returned function has the following signature:\n*\n* ```text\n* f( x, y )\n* ```\n*\n* where\n*\n* - **x**: input ndarray.\n* - **y**: output ndarray.\n*\n* - The add-on function should have the following signature:\n*\n* ```text\n* f( xbuf, metaX, ybuf, metaY )\n* ```\n*\n* where\n*\n* - **xbuf**: input ndarray data buffer.\n* - **metaX**: serialized input ndarray meta data.\n* - **ybuf**: output array data buffer.\n* - **metaY**: serialized output ndarray meta data.\n*\n* - The fallback function should have the following signature:\n*\n* ```text\n* f( x, y )\n* ```\n*\n* where\n*\n* - **x**: input ndarray.\n* - **y**: output ndarray.\n*\n* @param {Function} addon - add-on interface\n* @param {Function} fallback - fallback function\n* @throws {TypeError} first argument must be a function\n* @throws {TypeError} second argument must be a function\n* @returns {Function} dispatch function\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* function addon( x, metaX, y, metaY ) {\n* // Call into native add-on...\n* }\n*\n* function fallback( x, y ) {\n* // Fallback JavaScript implementation...\n* }\n*\n* // Create a dispatch function:\n* var f = dispatch( addon, fallback );\n*\n* // ...\n*\n* // Invoke the dispatch function with ndarray arguments:\n* var x = array( [ [ 1, 2], [ 3, 4 ] ] );\n* var y = zeros( [ 2, 2 ] );\n* f( x, y );\n*/\nfunction dispatch( addon, fallback ) {\n\tif ( !isFunction( addon ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', addon ) );\n\t}\n\tif ( !isFunction( fallback ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fallback ) );\n\t}\n\treturn dispatcher;\n\n\t/**\n\t* Dispatches to a native add-on.\n\t*\n\t* @private\n\t* @param {ndarray} x - input array\n\t* @param {ndarray} y - output array\n\t* @throws {TypeError} unable to resolve an ndarray function supporting the provided argument data types\n\t* @returns {ndarray} output array\n\t*/\n\tfunction dispatcher( x, y ) {\n\t\tvar dtypeX;\n\t\tvar dtypeY;\n\t\tvar dataX;\n\t\tvar dataY;\n\t\tvar viewX;\n\t\tvar viewY;\n\n\t\tdataX = getData( x );\n\t\tdataY = getData( y );\n\n\t\t// WARNING: we assume that, if we're provided something which has a data buffer resembling a typed array, we're provided an ndarray with a typed array buffer; however, this can lead to potential unintended errors as the native add-on may not work with non-typed array objects (e.g., generic arrays)...\n\t\tif ( !isTypedArrayLike( dataX ) || !isTypedArrayLike( dataY ) ) {\n\t\t\tfallback( x, y );\n\t\t\treturn y;\n\t\t}\n\t\tdtypeX = resolveEnum( getDType( x ) );\n\t\tdtypeY = resolveEnum( getDType( y ) );\n\t\tif ( dtypeX === null || dtypeY === null ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve an ndarray function supporting the provided argument data types.' );\n\t\t}\n\t\tif ( dtypeX === COMPLEX64 ) {\n\t\t\tviewX = reinterpretComplex64( dataX, 0 );\n\t\t} else if ( dtypeX === COMPLEX128 ) {\n\t\t\tviewX = reinterpretComplex128( dataX, 0 );\n\t\t} else if ( dtypeX === BOOLEAN ) {\n\t\t\tviewX = reinterpretBoolean( dataX, 0 );\n\t\t} else {\n\t\t\tviewX = dataX;\n\t\t}\n\t\tif ( dtypeY === COMPLEX64 ) {\n\t\t\tviewY = reinterpretComplex64( dataY, 0 );\n\t\t} else if ( dtypeY === COMPLEX128 ) {\n\t\t\tviewY = reinterpretComplex128( dataY, 0 );\n\t\t} else if ( dtypeY === BOOLEAN ) {\n\t\t\tviewY = reinterpretBoolean( dataY, 0 );\n\t\t} else {\n\t\t\tviewY = dataY;\n\t\t}\n\t\taddon( viewX, serialize( x ), viewY, serialize( y ) );\n\t\treturn y;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default dispatch;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an input ndarray according to a callback function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an object with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unaryBy( [ x, y ], scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unaryBy( arrays, fcn, clbk, thisArg ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar ord;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sx );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, ord === 1, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, ord === 1, fcn, clbk, thisArg );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn, clbk, thisArg );\n\t}\n\tunarynd( x, y, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nexport default unaryBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0 ]\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.data[ ox ], 0, [ ox, oy ], [ x, y ] );\n\tif ( v !== void 0 ) {\n\t\ty.data[ oy ] = fcn( v );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40, 80, 120, 160 ]\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unary2d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary3d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/* eslint-disable max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary4d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/* eslint-disable max-depth, max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary5d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary6d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary7d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary8d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary9d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary10d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.accessors[ 0 ]( x.data, ox ), 0, [ ox, oy ], [ x, y ] ); // eslint-disable-line max-len\n\tif ( v !== void 0 ) {\n\t\ty.accessors[ 1 ]( y.data, oy, fcn( v ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, isRowMajor, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, true, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, isRowMajor, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import real from '@stdlib/complex-float64-real';\n* import imag from '@stdlib/complex-float64-imag';\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* import cidentityf from '@stdlib/complex-float32-base-identity';\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32-ctor';\n* import realf from '@stdlib/complex-float32-real';\n* import imagf from '@stdlib/complex-float32-imag';\n*\n* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n* var sy = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedunary10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\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 id-length */\n\n'use strict';\n\n// MODULES //\n\nimport isFloatingPointDataType from '@stdlib/ndarray-base-assert-is-floating-point-data-type';\nimport isSignedIntegerDataType from '@stdlib/ndarray-base-assert-is-signed-integer-data-type';\nimport isUnsignedIntegerDataType from '@stdlib/ndarray-base-assert-is-unsigned-integer-data-type';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport promotionRules from '@stdlib/ndarray-promotion-rules';\nimport defaults from '@stdlib/ndarray-defaults';\nimport format from '@stdlib/string-format';\n\n\n// VARIABLES //\n\nvar DEFAULT_SIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.signed_integer' );\nvar DEFAULT_UNSIGNED_INTEGER_DTYPE = defaults.get( 'dtypes.unsigned_integer' );\nvar DEFAULT_REAL_FLOATING_POINT_DTYPE = defaults.get( 'dtypes.real_floating_point' );\n\n\n// MAIN //\n\n/**\n* Resolves the input ndarray casting data type for a unary function.\n*\n* @param {string} idtype - input ndarray data type\n* @param {string} odtype - output ndarray data type\n* @param {string} policy - input ndarray data type casting policy\n* @throws {TypeError} third argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} data type\n*\n* @example\n* var dt = resolve( 'float32', 'float64', 'none' );\n* // returns \n*/\nfunction resolve( idtype, odtype, policy ) {\n\tvar dt;\n\tif ( policy === 'none' ) {\n\t\treturn idtype;\n\t}\n\tif ( policy === 'output' ) {\n\t\treturn odtype;\n\t}\n\tif ( policy === 'promoted' ) {\n\t\tdt = promotionRules( idtype, odtype );\n\t\tif ( dt === -1 ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unable to promote the input and output data types. Input data type: %s. Output data type: %s.', idtype, odtype ) );\n\t\t}\n\t\treturn dt;\n\t}\n\tif ( policy === 'accumulation' ) {\n\t\t// If the input data type is floating-point, allow accumulation in that data type as overflow/underflow is handled naturally as a built-in feature of that data type...\n\t\tif ( isFloatingPointDataType( idtype ) || idtype === 'generic' ) { // NOTE: we may want to revisit this in the future for float16/complex32, where the value range is much more limited\n\t\t\treturn idtype;\n\t\t}\n\t\t// Unless the input data type value range is larger than the default un/signed integer data type, accumulate in the default un/signed integer data type, as accumulating in smaller range integer data types (e.g., `int8`) are at high risk for overflow, especially for ndarrays containing many elements...\n\t\tif ( isUnsignedIntegerDataType( idtype ) ) {\n\t\t\treturn promotionRules( idtype, DEFAULT_UNSIGNED_INTEGER_DTYPE );\n\t\t}\n\t\tif ( isSignedIntegerDataType( idtype ) ) {\n\t\t\treturn promotionRules( idtype, DEFAULT_SIGNED_INTEGER_DTYPE );\n\t\t}\n\t\t// For all other input data types, accumulate in the default real-valued floating-point data type...\n\t\treturn DEFAULT_REAL_FLOATING_POINT_DTYPE;\n\t}\n\t// Check for an explicit data type...\n\tif ( isDataType( policy ) ) {\n\t\treturn policy;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Third argument must be a supported casting policy. Value: `%s`.', policy ) );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a unary function.\n*\n* @param {*} dtype - input ndarray data type\n* @param {(string|*)} policy - output ndarray data type policy\n* @throws {TypeError} second argument must be a recognized data type policy\n* @returns {DataType} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( dtype, policy ) {\n\treturn outputDataType( [ dtype ], policy );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unarynd( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unarynd( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tset( ybuf, io[1], fcn( v, opts ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unarynd( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unarynd( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tybuf[ io[1] ] = fcn( v, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [ 0, 1, 2, 3 ] );\n*\n* var v = y.data;\n* // returns [ 78.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.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 unaryReduceStrided1d( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\tvar strategy;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input array prior to performing a reduction:\n\tstrategy = reshapeStrategy( views[ 0 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, opts );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, strategy, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tsy = y.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tsl = [ sl[i] ];\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( fcn, arr, views, sl, strategy, opts );\n\t\t}\n\t\treturn UNARY[ 1 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, ord === 1, strategy, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, ord === 1, strategy, opts );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, views, sl, strategy, opts ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, views, sl, strategy, opts );\n\t}\n\tunarynd( fcn, arr, views, sl, strategy, opts );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceStrided1d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary0d( wrapper, [ x, y ], strategy, {} );\n*\n* var v = y.data;\n* // returns [ 10.0 ]\n*/\nfunction unary0d( fcn, arrays, strategy, opts ) {\n\tarrays[ 0 ] = strategy( arrays[ 0 ] );\n\tarrays[ 1 ].data[ arrays[ 1 ].offset ] = fcn( without( arrays, 1 ), opts );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary1d( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unary1d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tybuf[ iv[1] ] = fcn( v, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary2d( wrapper, [ x, y ], views, [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tybuf[ iv[1] ] = fcn( v, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default unary10d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary0d( wrapper, [ x, y ], strategy, {} );\n*\n* var v = y.data.get( 0 );\n* // returns 10.0\n*/\nfunction unary0d( fcn, arrays, strategy, opts ) {\n\tvar y = arrays[ 1 ];\n\tarrays[ 0 ] = strategy( arrays[ 0 ] );\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( without( arrays, 1 ), opts ) );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary1d( wrapper, [ x, y ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 10.0, 26.0, 42.0 ]\n*/\nfunction unary1d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tset( ybuf, iv[1], fcn( v, opts ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary2d( wrapper, [ x, y ], views, [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2]) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary2d( wrapper, [ x, y ], views, [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( v, opts );\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\nexport default blockedunary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary2d( wrapper, [ x, y ], views, [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary3d( wrapper, [ x, y ], views, [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 10.0, 26.0, 42.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary4d( wrapper, [ x, y ], views, [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary5d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary6d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary7d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary8d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary9d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary10d( wrapper, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 10.0, 26.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, strategy, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( v, opts ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-strided1d\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( wrapper, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var sum = unaryReduceStrided1d.factory( wrapper );\n* // returns \n*\n* // Perform a reduction:\n* sum( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import { ndarray as gsum } from '@stdlib/blas-ext-base-gsum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* return gsum( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var sum = factory( wrapper );\n* // returns \n*\n* // Perform a reduction:\n* sum( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unarynd( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ , , ]\n*/\nfunction unarynd( fcn, arrays, views, strides, strategy, opts ) {\n\tvar len;\n\tvar arr;\n\tvar sh;\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// Resolve the output ndarray and associated shape:\n\tsh = arrays[ 1 ].shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tfcn( v, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [ 0, 1, 2, 3 ] );\n*\n* var v = y.data.get( 0 );\n* // returns \n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 12 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ , ], [ , ] ], [ [ , ], [ , ] ], [ [ , ], [ , ] ] ]\n*/\nfunction unaryReduceStrided1d( fcn, arrays, dims, options ) {\n\tvar strategy;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input array prior to performing a reduction:\n\tstrategy = reshapeStrategy( views[ 0 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\treturn UNARY[ K ]( fcn, arr, strategy, opts );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tsy = y.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tsl = [ sl[i] ];\n\t\treturn UNARY[ 1 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\treturn UNARY[ K ]( fcn, arr, views, sl, ord === 1, strategy, opts );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, sl, strategy, opts );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tunarynd( fcn, arr, views, sl, strategy, opts );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceStrided1d;\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* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new ResultsArray( 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary0d( ztest, [ x, y, alternative, alpha, mu, sigma ], strategy, {} );\n*\n* var v = y.data.get( 0 );\n* // returns \n*/\nfunction unary0d( fcn, arrays, strategy, opts ) {\n\tarrays[ 0 ] = strategy( arrays[ 0 ] );\n\tfcn( arrays, opts );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary1d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ , , ]\n*/\nfunction unary1d( fcn, arrays, views, strides, strategy, opts ) {\n\tvar dv0;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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 non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tfcn( v, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary2d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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 non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tfcn( v, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary3d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ , , ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tfcn( v, opts );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary4d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ , , ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tfcn( v, opts );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary5d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ , , ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary6d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ , , ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary7d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ , , ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, strategy, opts ) {\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary8d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, strategy, 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 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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary9d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, strategy, 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 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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* unary10d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, strategy, 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 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 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// Resolve the output shape:\n\tsh = arrays[ 1 ].shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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 non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary2d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, strategy, opts ) {\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tfcn( v, opts );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary3d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ , , ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, strategy, opts ) {\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary4d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ , , ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, strategy, opts ) {\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary5d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ , , ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary6d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ , , ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary7d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ , , ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary8d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary9d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( 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\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': alternative.dtype,\n* 'data': alternative.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alternative.offset,\n* 'order': alternative.order\n* },\n* {\n* 'dtype': alpha.dtype,\n* 'data': alpha.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': alpha.offset,\n* 'order': alpha.order\n* },\n* {\n* 'dtype': mu.dtype,\n* 'data': mu.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': mu.offset,\n* 'order': mu.order\n* },\n* {\n* 'dtype': sigma.dtype,\n* 'data': sigma.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sigma.offset,\n* 'order': sigma.order\n* }\n* ];\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Perform a reduction:\n* blockedunary10d( ztest, [ x, y, alternative, alpha, mu, sigma ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ , , ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, strategy, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( 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\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\nexport default blockedunary10d;\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* Initialize ndarray-like objects for representing zero-dimensional sub-array views of the output and 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} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} 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\nexport default 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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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 copy( 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// MAIN //\n\n/**\n* Returns a function 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 {Function} function implementing a reshape strategy\n*/\nfunction strategy( x ) {\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 broadcast;\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn identity;\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 squeeze( x, i );\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 contiguous( len, iox );\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\treturn copy( len, ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default 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* 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-strided1d-assign-struct\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import ztest from '@stdlib/stats-base-ndarray-ztest';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1d( ztest, [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import base from '@stdlib/stats-base-ndarray-ztest';\n* import unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var ztest = unaryReduceStrided1d.factory( base );\n* // returns \n*\n* // Perform a reduction:\n* ztest( [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import Float64Results from '@stdlib/stats-base-ztest-one-sample-results-float64';\n* import structFactory from '@stdlib/array-struct-factory';\n* import base from '@stdlib/stats-base-ndarray-ztest';\n*\n* var ResultsArray = structFactory( Float64Results );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new ResultsArray( 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': Float64Results,\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create additional parameter ndarray-like objects:\n* var alternative = {\n* 'dtype': 'generic',\n* 'data': [ 'two-sided' ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n};\n* var alpha = {\n* 'dtype': 'float64',\n* 'data': [ 0.05 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var mu = {\n* 'dtype': 'float64',\n* 'data': [ 0.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n* var sigma = {\n* 'dtype': 'float64',\n* 'data': [ 1.0 ],\n* 'shape': ysh,\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var ztest = factory( base );\n* // returns \n*\n* // Perform a reduction:\n* ztest( [ x, y, alternative, alpha, mu, sigma ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ , , ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function which accepts an output `struct` object and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', ... ]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array boolean data type.\n*\n* @name isBooleanDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'complex64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'complex128' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nvar isBooleanDataType = contains( dtypes( 'boolean' ) );\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `BooleanArray` as a `Uint8Array`.\n*\n* @param {BooleanArray} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Uint8Array} `Uint8Array` view\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var x = new BooleanArray( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Uint8Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport { factory as ind } from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Replaces elements in an indexed array with provided values.\n*\n* @private\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = [ 5, 6, 7, 8 ];\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = indexed( x, indices, values, 1, getIndex, x.length-1 );\n* // returns [ 8, 6, 7, 5 ]\n*/\nfunction indexed( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tiv = 0;\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tj = getIndex( indices[ i ], maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces specified elements of an accessor array with provided values.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Object} indices - index object\n* @param {Object} values - values object\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var indices = toAccessorArray( [ 1, 2 ] );\n* var values = toAccessorArray( [ 20, 30 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = accessors( arraylike2object( x ), arraylike2object( indices ), arraylike2object( values ), 1, getIndex, x.length-1 );\n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* v = x.get( 1 );\n* // returns 20\n*/\nfunction accessors( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar xdata;\n\tvar idata;\n\tvar vdata;\n\tvar xset;\n\tvar iget;\n\tvar vget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\txdata = x.data;\n\tidata = indices.data;\n\tvdata = values.data;\n\n\txset = x.accessors[ 1 ];\n\tiget = indices.accessors[ 0 ];\n\tvget = values.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\txset( xdata, j, vget( vdata, iv ) );\n\t\tiv += stride;\n\t}\n\treturn xdata;\n}\n\n/**\n* Replaces elements in a complex array with provided values.\n*\n* @private\n* @param {Collection} x - real-valued floating-point input array view\n* @param {Object} indices - index array object\n* @param {Collection} values - real-valued floating-point values array view\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array view\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* var indices = [ 0, 2 ];\n* var values = new Float64Array( [ 10.0, 20.0, 50.0, 60.0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = complex( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 10.0, 20.0, 3.0, 4.0, 50.0, 60.0, 7.0, 8.0 ]\n*/\nfunction complex( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar sv;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tsv = stride * 2; // note: multiply by 2, as real-valued values array consists of interleaved real and imaginary components\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tk = j * 2;\n\t\tx[ k ] = values[ iv ];\n\t\tx[ k+1 ] = values[ iv+1 ];\n\t\tiv += sv;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces elements in a boolean array with provided values.\n*\n* @private\n* @param {Uint8Array} x - input array\n* @param {Object} indices - index array object\n* @param {Uint8Array} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Uint8Array} input array\n*\n* @example\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import Uint8Array from '@stdlib/array-uint8';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Uint8Array( [ 1, 0, 0, 1 ] );\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = new Uint8Array( [ 0, 1, 1, 0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = boolean( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 0, 1, 1, 0 ]\n*/\nfunction boolean( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Replaces specified elements of an array with provided values.\n*\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {string} mode - index mode\n* @throws {Error} third argument must be broadcast compatible with the second argument\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 20, 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 20, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 30, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction put( x, indices, values, mode ) {\n\tvar getIndex;\n\tvar stride;\n\tvar max;\n\tvar xo;\n\tvar io;\n\tvar vo;\n\n\t// Broadcast the `values` array...\n\tif ( indices.length > 0 ) { // note: this allows `indices` to be empty and `values` to be non-empty (and not broadcast compatible with `indices`) to allow the potential use case where having an empty `indices` array is expected behavior and you don't want to trigger an exception simply because `values` has elements\n\t\t// Note that this effectively in-lines logic from `@stdlib/array/base/broadcast-array` in order to avoid unnecessary object creation...\n\t\tif ( values.length === indices.length ) {\n\t\t\tstride = 1;\n\t\t} else if ( values.length === 1 ) {\n\t\t\tstride = 0;\n\t\t} else {\n\t\t\tthrow new Error( format( 'invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).', values.length, indices.length ) );\n\t\t}\n\t}\n\t// Resolve a function for returning an index according to the specified index mode:\n\tgetIndex = ind( mode );\n\n\t// Resolve the maximum index:\n\tmax = x.length - 1;\n\n\txo = arraylike2object( x );\n\tio = arraylike2object( indices );\n\tvo = arraylike2object( values );\n\tif (\n\t\txo.accessorProtocol ||\n\t\tio.accessorProtocol ||\n\t\tvo.accessorProtocol\n\t) {\n\t\t// Note: we only explicitly support select dtype pairs, as this function should not be concerned with casting rules, etc. That is left to userland...\n\t\tif ( isComplexDataType( xo.dtype ) && isComplexDataType( vo.dtype ) ) {\n\t\t\tcomplex( reinterpretComplex( x, 0 ), io, reinterpretComplex( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\tif ( isBooleanDataType( xo.dtype ) && isBooleanDataType( vo.dtype ) ) {\n\t\t\tboolean( reinterpretBoolean( x, 0 ), io, reinterpretBoolean( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\taccessors( xo, io, vo, stride, getIndex, max );\n\t\treturn x;\n\t}\n\tindexed( x, indices, values, stride, getIndex, max );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default put;\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\nimport put from '@stdlib/array-base-put';\nimport { assign as ind2sub } from '@stdlib/ndarray-base-ind2sub';\nimport zeros from '@stdlib/array-base-zeros';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Wraps a provided callback function.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {ndarray} view - reduced view of the input ndarray\n* @param {NonNegativeIntegerArray} idx - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - loop dimensions\n* @param {NonNegativeIntegerArray} lidx - current loop iteration indices\n* @param {NonNegativeIntegerArray} cdims - core dimensions\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {Function} callback wrapper\n*/\nfunction wrap( arr, view, idx, ldims, lidx, cdims, clbk, thisArg ) {\n\tvar cidx = zeros( cdims.length ); // workspace for storing core iteration indices\n\tput( idx, ldims, lidx, MODE );\n\treturn wrapper;\n\n\t/**\n\t* Invokes a callback function.\n\t*\n\t* @private\n\t* @param {*} v - value\n\t* @param {NonNegativeInteger} aidx - current array element index\n\t* @returns {*} result\n\t*/\n\tfunction wrapper( v, aidx ) {\n\t\tind2sub( view.shape, view.strides, view.offset, view.order, aidx, MODE, cidx ); // eslint-disable-line max-len\n\t\tput( idx, cdims, cidx, MODE );\n\t\treturn clbk.call( thisArg, v, idx.slice(), arr );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unarynd( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 6.0, 14.0, 22.0 ] ]\n*/\nfunction unarynd( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar sub;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar f;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tset( ybuf, io[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unarynd( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction unarynd( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar arr;\n\tvar sub;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar j;\n\tvar f;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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( sh, arr.strides, iv[ j ], arr.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tybuf[ io[1] ] = ( hasOpts ) ? fcn( v, f, opts ) : fcn( v, f );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport zeros from '@stdlib/array-base-zeros';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport reshapeStrategy from './reshape_strategy.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function accepting a callback and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n* @param {Options} [options] - function options\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the expected number of dimensions\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( maxBy, [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( maxBy, [ x, y ], [ 0, 1, 2, 3 ], clbk );\n*\n* var v = y.data;\n* // returns [ 24.0 ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( maxBy, [ x, y ], [], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 2.0, 4.0 ], [ 6.0, 8.0 ] ], [ [ 10.0, 12.0 ], [ 14.0, 16.0 ] ], [ [ 18.0, 20.0 ], [ 22.0, 24.0 ] ] ]\n*/\nfunction unaryReduceStrided1dBy( fcn, arrays, dims, options, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar workspace;\n\tvar strategy;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar nargs;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar FLG;\n\tvar ctx;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar cb;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tFLG = false;\n\n\t// Case: ( fcn, arrays, dims, clbk )\n\tif ( nargs < 5 ) {\n\t\topts = {};\n\t\tcb = options;\n\t}\n\t// Case: ( fcn, arrays, dims, options, clbk, thisArg )\n\telse if ( nargs > 5 ) {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t\tctx = thisArg;\n\t}\n\t// Case: ( fcn, arrays, dims, clbk, thisArg )\n\telse if ( isFunction( options ) ) {\n\t\topts = {};\n\t\tcb = options;\n\t\tctx = clbk;\n\t}\n\t// Case: ( fcn, arrays, dims, options, clbk )\n\telse {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Initialize a workspace for storing iteration indices:\n\tworkspace = zeros( ndims );\n\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine the strategy for reshaping sub-array views of the input array prior to performing a reduction:\n\tstrategy = reshapeStrategy( views[ 0 ] );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, workspace, ldims, d, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, workspace, ldims, d, opts, FLG, cb, ctx );\n\t}\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, workspace, views, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tsy = y.strides;\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) {\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, strategy, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, strategy, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tunarynd( fcn, arr, strategy, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceStrided1dBy;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( maxBy, [ x, y ], strategy, ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data;\n* // returns [ 8.0 ]\n*/\nfunction unary0d( fcn, arrays, strategy, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar arr;\n\tvar x;\n\tvar y;\n\tvar f;\n\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\n\tf = wrap( x.ref, x, ibuf, ldims, [], cdims, clbk, thisArg );\n\n\tarr = without( arrays, 1 );\n\tarr[ 0 ] = strategy( x );\n\n\ty.data[ y.offset ] = ( hasOpts ) ? fcn( arr, opts, f ) : fcn( arr, f );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 8.0, 16.0, 24.0 ]\n*/\nfunction unary1d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction unary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i1, i0 ], cdims, clbk, thisArg );\n\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\n\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv1 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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, dv3 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary5d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary6d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary7d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary8d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary9d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default unary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( maxBy, [ x, y ], strategy, ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data.get( 0 );\n* // returns 8.0\n*/\nfunction unary0d( fcn, arrays, strategy, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar arr;\n\tvar x;\n\tvar y;\n\tvar f;\n\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\n\tf = wrap( x.ref, x, ibuf, ldims, [], cdims, clbk, thisArg );\n\n\tarr = without( arrays, 1 );\n\tarr[ 0 ] = strategy( x );\n\n\tif ( hasOpts ) {\n\t\ty.accessors[ 1 ]( y.data, y.offset, fcn( arr, opts, f ) );\n\t} else {\n\t\ty.accessors[ 1 ]( y.data, y.offset, fcn( arr, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ 8.0, 16.0, 24.0 ]\n*/\nfunction unary1d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ): fcn( v, f ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 6.0, 14.0, 22.0 ] ]\n*/\nfunction unary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar set;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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 ] = strategy( views[ 0 ] );\n\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i1, i0 ], cdims, clbk, thisArg );\n\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction unary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\n\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv1 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar set;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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, dv3 );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary5d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary6d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary7d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary8d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary9d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating whether the input ndarray is row-major\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, true, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar v;\n\tvar i;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default unary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary2d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary3d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary4d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary5d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary6d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary7d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary8d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary9d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f );\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\nexport default blockedunary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 6.0, 14.0, 22.0 ] ]\n*/\nfunction blockedunary2d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary2d;\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-len, max-params, max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( new Float64Array( [ 0.0, 0.0, 0.0 ] ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 8.0, 16.0, 24.0 ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar ov1;\n\tvar ov2;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary3d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary4d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary5d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary6d;\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-len, max-params, max-depth, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary7d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary8d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary9d;\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-len, max-params, max-depth, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Function} strategy - input ndarray reshape strategy\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {*} thisArg - callback exection context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import zeros from '@stdlib/array-base-zeros';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Define a reshape strategy:\n* function strategy( 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* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( maxBy, [ x, y ], strategy, views, ibuf, ldims, cdims, slx, {}, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 8.0, 16.0, 24.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, strategy, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\n\tvar v;\n\tvar o;\n\tvar k;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\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 ] = strategy( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, views[ 0 ], ibuf, ldims, [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( v, opts, f ) : fcn( v, f ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function accepting a callback and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-strided1d-by\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n* import unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceStrided1dBy( wrapper, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n* import unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var max = unaryReduceStrided1dBy.factory( maxBy );\n* // returns \n*\n* // Perform a reduction:\n* max( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 10.0, 26.0, 42.0 ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Return a function for performing a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function accepting a callback and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import maxBy from '@stdlib/stats-base-ndarray-max-by';\n*\n* function clbk( value ) {\n* return value * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var max = factory( maxBy );\n* // returns \n*\n* // Perform a reduction:\n* max( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ 8.0, 16.0, 24.0 ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray via a one-dimensional strided array reduction function according to a callback function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @param {Function} clbk - callback function\n\t* @param {thisArg} [thisArg] - callback execution context\n\t* @returns {void}\n\t*/\n\tfunction reducer( arrays, dims, options, clbk, thisArg ) {\n\t\tvar nargs = arguments.length;\n\t\tif ( nargs < 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options );\n\t\t}\n\t\tif ( nargs === 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options, clbk );\n\t\t}\n\t\treturn reduce( fcn, arrays, dims, options, clbk, thisArg );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport ndarrayAssign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nfunction UnaryStrided1dDispatch( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatch ) ) {\n\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'apply', function apply( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = max.assign( x, y );\n* // returns \n*\n* var v = out.get();\n* // returns 2.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'assign', function assign( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting ); // eslint-disable-line max-len\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatch;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray according to a callback function.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatchBy} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nfunction UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatchBy ) ) {\n\t\treturn new UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'apply', function apply( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar flg;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// Check whether we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-3 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Case: ( ... )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var out = maxBy.assign( x, y, clbk );\n* // returns \n*\n* var v = out.get();\n* // returns 4.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'assign', function assign( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// Case: ( ..., out )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., out, options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., out, clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatchBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray data types.\n*\n* @module @stdlib/ndarray-dtypes\n*\n* @example\n* import dtypes from '@stdlib/ndarray-dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport castReturn from '@stdlib/complex-base-cast-return';\nimport complexCtors from '@stdlib/complex-ctors';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast)...\n\tif ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( y.dtype ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this, max-lines, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray according to a callback function.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatchBy} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nfunction UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatchBy ) ) {\n\t\treturn new UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy.apply( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'apply', function apply( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar flg;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// Check whether we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-3 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Case: ( ... )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatchBy.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} callback argument must be a function\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = new UnaryStrided1dDispatchBy( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var out = maxBy.assign( x, y, clbk );\n* // returns \n*\n* var v = out.get();\n* // returns 4.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatchBy.prototype, 'assign', function assign( x ) {\n\tvar thisArg;\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar clbk;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// Case: ( ..., out )\n\tif ( i === nargs ) {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-1 ] ) );\n\t}\n\t// Case: ( ..., out, options, clbk, thisArg )\n\tif ( i === nargs-3 ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-3 ];\n\t\tclbk = arguments[ nargs-2 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, clbk )\n\telse if ( i === nargs-1 ) {\n\t\tclbk = arguments[ nargs-1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// Case: ( ..., out, clbk, thisArg )\n\telse if ( isFunction( arguments[ nargs-2 ] ) ) {\n\t\tclbk = arguments[ nargs-2 ];\n\t\tthisArg = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, options, clbk )\n\telse if ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\tflg = true;\n\t\toptions = arguments[ nargs-2 ];\n\t\tclbk = arguments[ nargs-1 ];\n\t}\n\t// Case: ( ..., out, ???, ??? )\n\telse {\n\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', arguments[ nargs-2 ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 );\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1dBy( f, insertAt( args, 1, y ), opts.dims, clbk, thisArg ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatchBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isDataTypeString from '@stdlib/ndarray-base-assert-is-data-type-string';\nimport isDataTypeObject from '@stdlib/ndarray-base-assert-is-data-type-object';\nimport isStructDataType from '@stdlib/ndarray-base-assert-is-struct-data-type';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nfunction isDataType( v ) {\n\treturn (\n\t\tisDataTypeString( v ) ||\n\t\tisDataTypeObject( v ) ||\n\t\tisStructDataType( v )\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataType;\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\nimport { isPrimitive as isInteger } from '@stdlib/assert-is-integer';\nimport { isPrimitive as isString } from '@stdlib/assert-is-string';\nimport hasProp from '@stdlib/assert-has-property';\nimport DataType from '@stdlib/ndarray-dtype-ctor';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray data type object.\n*\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray data type object\n*\n* @example\n* import DataType from '@stdlib/ndarray-dtype-ctor';\n*\n* var bool = isDataTypeObject( new DataType( 'float64' ) );\n* // returns true\n*\n* bool = isDataTypeObject( 'float64' );\n* // returns false\n*\n* bool = isDataTypeObject( {} );\n* // returns false\n*/\nfunction isDataTypeObject( value ) {\n\treturn (\n\t\tvalue instanceof DataType ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\tisInteger( value.alignment ) &&\n\t\t\tisInteger( value.byteLength ) &&\n\t\t\tisString( value.byteOrder ) &&\n\t\t\tisString( value.char ) &&\n\t\t\tisInteger( value.enum ) &&\n\t\t\thasProp( value, 'value' )\n\t\t)\n\t);\n}\n\n\n// EXPORTS //\n\nexport default isDataTypeObject;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nexport default enumeration;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of ndarray data types.\n*\n* @module @stdlib/ndarray-dtypes\n*\n* @example\n* import dtypes from '@stdlib/ndarray-dtypes';\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport enumeration from './enum.js';\nimport assign from './assign.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\n\n\n// EXPORTS //\n\nexport default main;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\nimport objectKeys from '@stdlib/utils-keys';\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nexport default isComplexFloatingPointDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/ndarray-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nexport default isRealDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport copy from '@stdlib/array-base-copy-indexed';\nimport take from '@stdlib/array-base-take-indexed';\nimport sort2ins from './sort2ins.js';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy\n\t};\n}\n\n\n// EXPORTS //\n\nexport default loopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default sort2ins;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assignnd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport isRealDataType from '@stdlib/ndarray-base-assert-is-real-data-type';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport castReturn from '@stdlib/complex-base-cast-return';\nimport complexCtors from '@stdlib/complex-ctors';\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport blockedaccessorassign2d from './2d_blocked_accessors.js';\nimport blockedaccessorassign3d from './3d_blocked_accessors.js';\nimport blockedaccessorassign4d from './4d_blocked_accessors.js';\nimport blockedaccessorassign5d from './5d_blocked_accessors.js';\nimport blockedaccessorassign6d from './6d_blocked_accessors.js';\nimport blockedaccessorassign7d from './7d_blocked_accessors.js';\nimport blockedaccessorassign8d from './8d_blocked_accessors.js';\nimport blockedaccessorassign9d from './9d_blocked_accessors.js';\nimport blockedaccessorassign10d from './10d_blocked_accessors.js';\nimport blockedassign2d from './2d_blocked.js';\nimport blockedassign3d from './3d_blocked.js';\nimport blockedassign4d from './4d_blocked.js';\nimport blockedassign5d from './5d_blocked.js';\nimport blockedassign6d from './6d_blocked.js';\nimport blockedassign7d from './7d_blocked.js';\nimport blockedassign8d from './8d_blocked.js';\nimport blockedassign9d from './9d_blocked.js';\nimport blockedassign10d from './10d_blocked.js';\nimport accessorassign0d from './0d_accessors.js';\nimport accessorassign1d from './1d_accessors.js';\nimport accessorassign2d from './2d_accessors.js';\nimport accessorassign3d from './3d_accessors.js';\nimport accessorassign4d from './4d_accessors.js';\nimport accessorassign5d from './5d_accessors.js';\nimport accessorassign6d from './6d_accessors.js';\nimport accessorassign7d from './7d_accessors.js';\nimport accessorassign8d from './8d_accessors.js';\nimport accessorassign9d from './9d_accessors.js';\nimport accessorassign10d from './10d_accessors.js';\nimport accessorassignnd from './nd_accessors.js';\nimport assign0d from './0d.js';\nimport assign1d from './1d.js';\nimport assign2d from './2d.js';\nimport assign3d from './3d.js';\nimport assign4d from './4d.js';\nimport assign5d from './5d.js';\nimport assign6d from './6d.js';\nimport assign7d from './7d.js';\nimport assign8d from './8d.js';\nimport assign9d from './9d.js';\nimport assign10d from './10d.js';\nimport assignnd from './nd.js';\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast)...\n\tif ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( y.dtype ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nexport default assign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nexport default assign0d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default assign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign3d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign4d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign5d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign6d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign7d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign8d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign9d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\n*\n* @example\n* import Complex64Array from '@stdlib/array-complex64';\n* import Complex64 from '@stdlib/complex-float32';\n* import realf from '@stdlib/complex-realf';\n* import imagf from '@stdlib/complex-imagf';\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nexport default blockedassign10d;\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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {boolean} [options.keepdims] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'keepdims': true\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'keepdims' ) ) {\n\t\topts.keepdims = options.keepdims;\n\t\tif ( !isBoolean( opts.keepdims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'keepdims', opts.keepdims ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport ndarrayAssign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for performing a reduction on an input ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {UnaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nfunction UnaryStrided1dDispatch( table, idtypes, odtypes, policies ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatch ) ) {\n\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. An input ndarray data type must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\treturn this;\n}\n\n/**\n* Performs a reduction on a provided input ndarray.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n* @param {string} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max.apply( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'apply', function apply( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar idx;\n\tvar shx;\n\tvar shy;\n\tvar arr;\n\tvar tmp;\n\tvar xdt;\n\tvar ydt;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\t// Note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function...\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input ndarray across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Resolve the list of non-reduced dimensions:\n\tidx = indicesComplement( N, opts.dims );\n\n\t// Resolve the output array shape:\n\tshy = takeIndexed( shx, idx );\n\n\t// Initialize an output array whose shape matches that of the non-reduced dimensions and which has the same memory layout as the input ndarray:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shy, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims );\n\n\t// Check whether we need to reinsert singleton dimensions which can be useful for broadcasting the returned output array to the shape of the original input array...\n\tif ( opts.keepdims ) {\n\t\ty = spreadDimensions( N, y, idx, true );\n\t}\n\treturn y;\n});\n\n/**\n* Performs a reduction on a provided input ndarray and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = max.assign( x, y );\n* // returns \n*\n* var v = out.get();\n* // returns 2.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'assign', function assign( x ) {\n\tvar options;\n\tvar dtypes;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support; note: we don't type promote additional ndarray arguments, as they are passed as scalars to the underlying strided reduction function)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, reduce the entire input array across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, getDType( y ), this._policies.casting ); // eslint-disable-line max-len\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tndarrayAssign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input ndarray data type:\n\tdtypes = [ resolveEnum( xdt ) ];\n\ti = gindexOfRow( this._table.fcns.length, 1, this._table.types, 1, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform the reduction:\n\tunaryReduceStrided1d( f, insertAt( args, 1, y ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatch;\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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tset( ybuf, io[1], fcn( views, opts ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar len;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tybuf[ io[1] ] = fcn( views, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = [ false ];\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [ 0, 1, 2, 3 ] );\n*\n* var v = y.data;\n* // returns [ true ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 12 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, true ], [ true, true ] ], [ [ true, false ], [ true, true ] ], [ [ true, true ], [ true, true ] ] ]\n*/\nfunction unaryReduceSubarray( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar ns;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tif ( arguments.length > 3 ) {\n\t\topts = options;\n\t} else {\n\t\topts = {};\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, opts );\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( s === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, opts );\n\t}\n\tsy = y.strides;\n\n\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\tif ( ns === K-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ty.shape = [ shl[i] ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t}\n\t\tsl = [ sl[i] ];\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( fcn, arr, views, sl, opts );\n\t\t}\n\t\treturn UNARY[ 1 ]( fcn, arr, views, sl, opts );\n\t}\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, sl, ord === 1, opts );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, sl, ord === 1, opts );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, views, sl, opts );\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, sl, opts );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, views, sl, opts );\n\t}\n\tunarynd( fcn, arr, views, sl, opts );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceSubarray;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], {} );\n*\n* var v = y.data;\n* // returns [ true ]\n*/\nfunction unary0d( fcn, arrays, opts ) {\n\tarrays[1].data[ arrays[1].offset ] = fcn( without( arrays, 1 ), opts );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tybuf[ iv[1] ] = fcn( views, opts );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, [ 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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\tybuf[ iv[1] ] = fcn( views, opts );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, [ 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary3d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary4d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary5d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary6d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary7d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary8d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary9d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default unary10d;\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\nimport without from '@stdlib/array-base-without';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 1 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], {} );\n*\n* var v = y.data.get( 0 );\n* // returns true\n*/\nfunction unary0d( fcn, arrays, opts ) {\n\tvar y = arrays[ 1 ];\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( without( arrays, 1 ), opts ) );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, [ 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, strides, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tset( ybuf, iv[1], fcn( views, opts ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, [ 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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\tset( ybuf, iv[1], fcn( views, opts ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, [ 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary3d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2]) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary4d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary5d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary6d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, strides, isRowMajor, opts ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary7d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary8d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary9d;\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\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, strides, isRowMajor, opts ) { // eslint-disable-line max-statements\n\tvar ybuf;\n\tvar set;\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 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 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 y;\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// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, [ 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, [ 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = fcn( views, opts );\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\nexport default blockedunary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, [ 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, [ 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, [ 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, strides, opts ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, [ 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], fcn( views, opts ) );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, strides, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar ybuf;\n\tvar set;\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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], fcn( views, opts ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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// 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\nexport default 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 skips the second element in the list of index offsets, as that is assumed to correspond to the output ndarray which does not have a corresponding view. Meaning, the list of views is expected to have `N` elements, and the list of index offsets is expected to have `N+1` elements.\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tvar j;\n\tfor ( i = 0, j = 0; i < offsets.length; i++ ) {\n\t\tif ( i === 1 ) { // note: expected to correspond to the output ndarray which does not have a corresponding view\n\t\t\tcontinue;\n\t\t}\n\t\tviews[ j ].offset = offsets[ i ];\n\t\tj += 1;\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-subarray\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import every from '@stdlib/ndarray-base-every';\n* import unaryReduceSubarray from '@stdlib/ndarray-base-unary-reduce-subarray';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarray( every, [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n* import unaryReduceSubarray from '@stdlib/ndarray-base-unary-reduce-subarray';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var every = unaryReduceSubarray.factory( base );\n* // returns \n*\n* // Perform a reduction:\n* every( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction over a list of specified dimensions in an input ndarray and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every';\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var every = factory( base );\n* // returns \n*\n* // Perform a reduction:\n* every( [ x, y ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction reducer( 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 reduce( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport replace from '@stdlib/string-base-replace';\nimport DTYPES from './dtypes.json';\n\n\n// VARIABLES //\n\nvar RE_SUFFIX = /_and_generic$/;\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', ... ]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar kind;\n\tvar out;\n\tvar FLG;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tFLG = false;\n\tkind = arguments[ 0 ];\n\tif ( RE_SUFFIX.test( kind ) ) {\n\t\tkind = replace( kind, RE_SUFFIX, '' );\n\t\tif ( kind !== 'all' ) {\n\t\t\tFLG = true;\n\t\t}\n\t}\n\tout = DTYPES[ kind ];\n\tout = ( out ) ? out.slice() : [];\n\tif ( FLG && out.length > 0 ) {\n\t\tout.push( 'generic' );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default dtypes;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { factory as contains } from '@stdlib/array-base-assert-contains';\nimport dtypes from '@stdlib/array-dtypes';\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported array boolean data type.\n*\n* @name isBooleanDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported array boolean data type\n*\n* @example\n* var bool = isBooleanDataType( 'bool' );\n* // returns true\n*\n* bool = isBooleanDataType( 'complex64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'complex128' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'float64' );\n* // returns false\n*\n* bool = isBooleanDataType( 'generic' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'int8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint16' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint32' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8' );\n* // returns false\n*\n* bool = isBooleanDataType( 'uint8c' );\n* // returns false\n*\n* bool = isBooleanDataType( 'foo' );\n* // returns false\n*/\nvar isBooleanDataType = contains( dtypes( 'boolean' ) );\n\n\n// EXPORTS //\n\nexport default isBooleanDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport Uint8Array from '@stdlib/array-uint8';\n\n\n// MAIN //\n\n/**\n* Reinterprets a `BooleanArray` as a `Uint8Array`.\n*\n* @param {BooleanArray} x - input array\n* @param {NonNegativeInteger} offset - starting index\n* @returns {Uint8Array} `Uint8Array` view\n*\n* @example\n* import BooleanArray from '@stdlib/array-bool';\n*\n* var x = new BooleanArray( 10 );\n*\n* var out = reinterpret( x, 0 );\n* // returns \n*\n* var bool = ( out.buffer === x.buffer );\n* // returns true\n*/\nfunction reinterpret( x, offset ) {\n\treturn new Uint8Array( x.buffer, x.byteOffset+(x.BYTES_PER_ELEMENT*offset), x.length-offset ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default reinterpret;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/array-base-assert-is-complex-floating-point-data-type';\nimport isBooleanDataType from '@stdlib/array-base-assert-is-boolean-data-type';\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport reinterpretComplex from '@stdlib/strided-base-reinterpret-complex';\nimport reinterpretBoolean from '@stdlib/strided-base-reinterpret-boolean';\nimport { factory as ind } from '@stdlib/ndarray-base-ind';\nimport format from '@stdlib/string-format';\n\n\n// FUNCTIONS //\n\n/**\n* Replaces elements in an indexed array with provided values.\n*\n* @private\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = [ 5, 6, 7, 8 ];\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = indexed( x, indices, values, 1, getIndex, x.length-1 );\n* // returns [ 8, 6, 7, 5 ]\n*/\nfunction indexed( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tiv = 0;\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tj = getIndex( indices[ i ], maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces specified elements of an accessor array with provided values.\n*\n* @private\n* @param {Object} x - input array object\n* @param {Object} indices - index object\n* @param {Object} values - values object\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = toAccessorArray( [ 1, 2, 3, 4 ] );\n*\n* var indices = toAccessorArray( [ 1, 2 ] );\n* var values = toAccessorArray( [ 20, 30 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = accessors( arraylike2object( x ), arraylike2object( indices ), arraylike2object( values ), 1, getIndex, x.length-1 );\n*\n* var v = x.get( 0 );\n* // returns 1\n*\n* v = x.get( 1 );\n* // returns 20\n*/\nfunction accessors( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar xdata;\n\tvar idata;\n\tvar vdata;\n\tvar xset;\n\tvar iget;\n\tvar vget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\txdata = x.data;\n\tidata = indices.data;\n\tvdata = values.data;\n\n\txset = x.accessors[ 1 ];\n\tiget = indices.accessors[ 0 ];\n\tvget = values.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\txset( xdata, j, vget( vdata, iv ) );\n\t\tiv += stride;\n\t}\n\treturn xdata;\n}\n\n/**\n* Replaces elements in a complex array with provided values.\n*\n* @private\n* @param {Collection} x - real-valued floating-point input array view\n* @param {Object} indices - index array object\n* @param {Collection} values - real-valued floating-point values array view\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Collection} input array view\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n*\n* var indices = [ 0, 2 ];\n* var values = new Float64Array( [ 10.0, 20.0, 50.0, 60.0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = complex( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 10.0, 20.0, 3.0, 4.0, 50.0, 60.0, 7.0, 8.0 ]\n*/\nfunction complex( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar sv;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tsv = stride * 2; // note: multiply by 2, as real-valued values array consists of interleaved real and imaginary components\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tk = j * 2;\n\t\tx[ k ] = values[ iv ];\n\t\tx[ k+1 ] = values[ iv+1 ];\n\t\tiv += sv;\n\t}\n\treturn x;\n}\n\n/**\n* Replaces elements in a boolean array with provided values.\n*\n* @private\n* @param {Uint8Array} x - input array\n* @param {Object} indices - index array object\n* @param {Uint8Array} values - values to set\n* @param {NonNegativeInteger} stride - index stride for accessing elements in `values`\n* @param {Function} getIndex - function for resolving an array index\n* @param {NonNegativeInteger} maxIndex - maximum array index (inclusive)\n* @returns {Uint8Array} input array\n*\n* @example\n* import arraylike2object from '@stdlib/array-base-arraylike2object';\n* import Uint8Array from '@stdlib/array-uint8';\n* import { factory as ind } from '@stdlib/ndarray-base-ind';\n*\n* var x = new Uint8Array( [ 1, 0, 0, 1 ] );\n*\n* var indices = [ 3, 1, 2, 0 ];\n* var values = new Uint8Array( [ 0, 1, 1, 0 ] );\n*\n* var getIndex = ind( 'throw' );\n*\n* var out = boolean( x, arraylike2object( indices ), values, 1, getIndex, x.length-1 );\n* // returns [ 0, 1, 1, 0 ]\n*/\nfunction boolean( x, indices, values, stride, getIndex, maxIndex ) {\n\tvar idata;\n\tvar iget;\n\tvar iv;\n\tvar i;\n\tvar j;\n\n\tidata = indices.data;\n\tiget = indices.accessors[ 0 ];\n\n\tiv = 0;\n\tfor ( i = 0; i < idata.length; i++ ) {\n\t\tj = getIndex( iget( idata, i ), maxIndex );\n\t\tx[ j ] = values[ iv ];\n\t\tiv += stride;\n\t}\n\treturn x;\n}\n\n\n// MAIN //\n\n/**\n* Replaces specified elements of an array with provided values.\n*\n* @param {Collection} x - input array\n* @param {IntegerArray} indices - list of indices\n* @param {Collection} values - values to set\n* @param {string} mode - index mode\n* @throws {Error} third argument must be broadcast compatible with the second argument\n* @returns {Collection} input array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 20, 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 20, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 1, 2 ];\n* var values = [ 30 ];\n*\n* var out = put( x, indices, values, 'throw' );\n* // returns [ 1, 30, 30, 4 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction put( x, indices, values, mode ) {\n\tvar getIndex;\n\tvar stride;\n\tvar max;\n\tvar xo;\n\tvar io;\n\tvar vo;\n\n\t// Broadcast the `values` array...\n\tif ( indices.length > 0 ) { // note: this allows `indices` to be empty and `values` to be non-empty (and not broadcast compatible with `indices`) to allow the potential use case where having an empty `indices` array is expected behavior and you don't want to trigger an exception simply because `values` has elements\n\t\t// Note that this effectively in-lines logic from `@stdlib/array/base/broadcast-array` in order to avoid unnecessary object creation...\n\t\tif ( values.length === indices.length ) {\n\t\t\tstride = 1;\n\t\t} else if ( values.length === 1 ) {\n\t\t\tstride = 0;\n\t\t} else {\n\t\t\tthrow new Error( format( 'invalid argument. The third argument must be broadcast compatible with the second argument. Array shape: (%d). Desired shape: (%d).', values.length, indices.length ) );\n\t\t}\n\t}\n\t// Resolve a function for returning an index according to the specified index mode:\n\tgetIndex = ind( mode );\n\n\t// Resolve the maximum index:\n\tmax = x.length - 1;\n\n\txo = arraylike2object( x );\n\tio = arraylike2object( indices );\n\tvo = arraylike2object( values );\n\tif (\n\t\txo.accessorProtocol ||\n\t\tio.accessorProtocol ||\n\t\tvo.accessorProtocol\n\t) {\n\t\t// Note: we only explicitly support select dtype pairs, as this function should not be concerned with casting rules, etc. That is left to userland...\n\t\tif ( isComplexDataType( xo.dtype ) && isComplexDataType( vo.dtype ) ) {\n\t\t\tcomplex( reinterpretComplex( x, 0 ), io, reinterpretComplex( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\tif ( isBooleanDataType( xo.dtype ) && isBooleanDataType( vo.dtype ) ) {\n\t\t\tboolean( reinterpretBoolean( x, 0 ), io, reinterpretBoolean( values, 0 ), stride, getIndex, max ); // eslint-disable-line max-len\n\t\t\treturn x;\n\t\t}\n\t\taccessors( xo, io, vo, stride, getIndex, max );\n\t\treturn x;\n\t}\n\tindexed( x, indices, values, stride, getIndex, max );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default put;\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\nimport put from '@stdlib/array-base-put';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Wraps a provided callback function.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {NonNegativeIntegerArray} idx - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - loop dimensions\n* @param {NonNegativeIntegerArray} lidx - current loop iteration indices\n* @param {NonNegativeIntegerArray} cdims - core dimensions\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {Function} callback wrapper\n*/\nfunction wrap( arr, idx, ldims, lidx, cdims, clbk, thisArg ) {\n\tput( idx, ldims, lidx, MODE );\n\treturn wrapper;\n\n\t/**\n\t* Invokes a callback function.\n\t*\n\t* @private\n\t* @param {*} v - value\n\t* @param {NonNegativeIntegerArray} cidx - current core iteration indices\n\t* @returns {*} result\n\t*/\n\tfunction wrapper( v, cidx ) {\n\t\tput( idx, cdims, cidx, MODE );\n\t\treturn clbk.call( thisArg, v, idx.slice(), arr );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default wrap;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar sub;\n\tvar set;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar x;\n\tvar y;\n\tvar f;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tset( ybuf, io[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unarynd( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unarynd( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar len;\n\tvar sub;\n\tvar sh;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar x;\n\tvar y;\n\tvar f;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\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\tv = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( sh, v.strides, iv[ j ], v.order, i, MODE );\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tsub = ind2sub( sh, strides, 0, x.order, i, MODE );\n\t\tf = wrap( x.ref, ibuf, ldims, sub, cdims, clbk, thisArg );\n\t\tybuf[ io[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport isFunction from '@stdlib/assert-is-function';\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport zeros from '@stdlib/array-base-zeros';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport blockedaccessorunary2d from './2d_blocked_accessors.js';\nimport blockedaccessorunary3d from './3d_blocked_accessors.js';\nimport blockedaccessorunary4d from './4d_blocked_accessors.js';\nimport blockedaccessorunary5d from './5d_blocked_accessors.js';\nimport blockedaccessorunary6d from './6d_blocked_accessors.js';\nimport blockedaccessorunary7d from './7d_blocked_accessors.js';\nimport blockedaccessorunary8d from './8d_blocked_accessors.js';\nimport blockedaccessorunary9d from './9d_blocked_accessors.js';\nimport blockedaccessorunary10d from './10d_blocked_accessors.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport accessorunary0d from './0d_accessors.js';\nimport accessorunary1d from './1d_accessors.js';\nimport accessorunary2d from './2d_accessors.js';\nimport accessorunary3d from './3d_accessors.js';\nimport accessorunary4d from './4d_accessors.js';\nimport accessorunary5d from './5d_accessors.js';\nimport accessorunary6d from './6d_accessors.js';\nimport accessorunary7d from './7d_accessors.js';\nimport accessorunary8d from './8d_accessors.js';\nimport accessorunary9d from './9d_accessors.js';\nimport accessorunary10d from './10d_accessors.js';\nimport accessorunarynd from './nd_accessors.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Performs a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n* @param {Options} [options] - function options\n* @param {Function} clbk - callback function\n* @param {thisArg} [thisArg] - callback execution context\n* @throws {Error} arrays must have the expected number of dimensions\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = [ false ];\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 0, 1, 2, 3 ], clbk );\n*\n* var v = y.data;\n* // returns [ true ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 12 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, true ], [ true, true ] ], [ [ true, false ], [ true, true ] ], [ [ true, true ], [ true, true ] ] ]\n*/\nfunction unaryReduceSubarrayBy( fcn, arrays, dims, options, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar workspace;\n\tvar nargs;\n\tvar views;\n\tvar ndims;\n\tvar ldims;\n\tvar opts;\n\tvar ctx;\n\tvar arr;\n\tvar tmp;\n\tvar len;\n\tvar shx;\n\tvar shc;\n\tvar shl;\n\tvar iox;\n\tvar ioy;\n\tvar ord;\n\tvar FLG;\n\tvar sc;\n\tvar sl;\n\tvar sy;\n\tvar cb;\n\tvar d;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar K;\n\tvar x;\n\tvar y;\n\tvar i;\n\tvar j;\n\n\tnargs = arguments.length;\n\tFLG = false;\n\n\t// Case: (fcn, arrays, dims, clbk)\n\tif ( nargs < 5 ) {\n\t\topts = {};\n\t\tcb = options;\n\t}\n\t// Case: (fcn, arrays, dims, options, clbk, thisArg)\n\telse if ( nargs > 5 ) {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t\tctx = thisArg;\n\t}\n\t// Case: (fcn, arrays, dims, clbk, thisArg)\n\telse if ( isFunction( options ) ) {\n\t\topts = {};\n\t\tcb = options;\n\t\tctx = clbk;\n\t}\n\t// Case: (fcn, arrays, dims, options, clbk)\n\telse {\n\t\tFLG = true;\n\t\topts = options;\n\t\tcb = clbk;\n\t}\n\t// Standardize ndarray meta data...\n\tN = arrays.length;\n\tarr = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t}\n\t// Cache references to the input and output arrays:\n\tx = arr[ 0 ];\n\ty = arr[ 1 ];\n\n\t// Resolve the number of input array dimensions:\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Verify that we've been provided a list of unique dimension indices...\n\tM = dims.length;\n\td = normalizeIndices( dims, ndims-1 );\n\tif ( d === null ) {\n\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\td.sort();\n\tif ( d.length !== M ) {\n\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t}\n\t// Check whether we've been provided a valid number of dimensions to reduce...\n\tif ( M > ndims ) {\n\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}\n\t// Verify that provided ndarrays have the expected number of dimensions...\n\tK = ndims - M;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\tthrow new Error( format( 'invalid argument. Arrays which are not being reduced must have the same number of non-reduced dimensions. Input array shape: [%s]. Number of non-reduced dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t}\n\t}\n\t// Initialize a workspace for storing iteration indices:\n\tworkspace = zeros( ndims );\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( K === 0 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, workspace, [], d, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, workspace, [], d, opts, FLG, cb, ctx );\n\t}\n\t// Resolve the non-reduced (\"loop\") dimensions and associated strides:\n\tldims = indicesComplement( shx.length, d );\n\ttmp = takeIndexed2( shx, x.strides, ldims );\n\tshl = tmp[ 0 ];\n\tsl = tmp[ 1 ];\n\n\t// Resolve the reduced (\"core\") dimensions and associated strides:\n\ttmp = takeIndexed2( shx, x.strides, d );\n\tshc = tmp[ 0 ];\n\tsc = tmp[ 1 ];\n\n\t// Verify that the provided arrays have the same loop dimensions...\n\tlen = 1; // number of elements\n\tfor ( i = 0; i < K; i++ ) {\n\t\ts = shl[ i ];\n\t\tfor ( j = 1; j < N; j++ ) {\n\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Non-reduced dimensions must be consistent across all provided arrays. Input array shape: [%s]. Non-reduced dimension indices: [%s]. Non-reduced dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t}\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= s;\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\treturn;\n\t}\n\t// Initialize ndarray-like objects for representing sub-array views...\n\tviews = [\n\t\t{\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': shc,\n\t\t\t'strides': sc,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t}\n\t];\n\tinitializeViews( arr, views );\n\n\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\tif ( K === 1 ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tsy = y.strides;\n\tiox = iterationOrder( sl ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tord = strides2order( sl );\n\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sy ) && K <= MAX_DIMS ) {\n\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\tif ( y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn UNARY[ K ]( fcn, arr, views, workspace, ldims, d, sl, ord === 1, opts, FLG, cb, ctx );\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( K <= MAX_DIMS ) {\n\t\tif ( y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ K-2 ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t\t}\n\t\treturn BLOCKED_UNARY[ K-2 ]( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( y.accessorProtocol ) {\n\t\treturn accessorunarynd( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n\t}\n\tunarynd( fcn, arr, views, workspace, ldims, d, sl, opts, FLG, cb, ctx );\n}\n\n\n// EXPORTS //\n\nexport default unaryReduceSubarrayBy;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 1 );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data;\n* // returns [ true ]\n*/\nfunction unary0d( fcn, arrays, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar arr;\n\tvar y;\n\tvar f;\n\n\ty = arrays[ 1 ];\n\tybuf = y.data;\n\n\tf = wrap( arrays[ 0 ].ref, ibuf, ldims, [], cdims, clbk, thisArg );\n\tarr = without( arrays, 1 );\n\tybuf[ y.offset ] = ( hasOpts ) ? fcn( arr, opts, f ) : fcn( arr, f );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tf = wrap( x.ref, ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray 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\tf = wrap( x.ref, ibuf, ldims, take( [ i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary5d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary7d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary8d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary9d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default unary10d;\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-len */\n\n'use strict';\n\n// MODULES //\n\nimport without from '@stdlib/array-base-without';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {Options} opts - function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 1 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [];\n*\n* // Define the array strides:\n* var sx = [ 6, 1 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [];\n* var cdims = [ 0, 1 ];\n*\n* // Perform a reduction:\n* unary0d( base, [ x, y ], ibuf, ldims, cdims, {}, false, clbk, {} );\n*\n* var v = y.data.get( 0 );\n* // returns true\n*/\nfunction unary0d( fcn, arrays, ibuf, ldims, cdims, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar arr;\n\tvar y;\n\tvar f;\n\n\ty = arrays[ 1 ];\n\tybuf = y.data;\n\n\tf = wrap( arrays[ 0 ].ref, ibuf, ldims, [], cdims, clbk, thisArg );\n\tarr = without( arrays, 1 );\n\tif ( hasOpts ) {\n\t\ty.accessors[ 1 ]( ybuf, y.offset, fcn( arr, opts, f ) );\n\t} else {\n\t\ty.accessors[ 1 ]( ybuf, y.offset, fcn( arr, f ) );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0 ];\n* var cdims = [ 1, 2 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 4 ];\n*\n* // Perform a reduction:\n* unary1d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ true, false, true ]\n*/\nfunction unary1d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar dv0;\n\tvar sh;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = sh[ 0 ];\n\tdv0 = [ strides[0] ];\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tf = wrap( x.ref, ibuf, ldims, [ i0 ], cdims, clbk, thisArg );\n\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* unary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction unary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdv0 = [ strides[1] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[0] - ( S0*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray 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\tf = wrap( x.ref, ibuf, ldims, take( [ i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdv0 = [ strides[2] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[2] ) ];\n\t\tdv2 = [ strides[0] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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 {\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary3d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdv0 = [ strides[3] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[2] - ( S0*strides[3] ) ];\n\t\tdv2 = [ strides[1] - ( S1*strides[2] ) ];\n\t\tdv3 = [ strides[0] - ( S2*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary4d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar set;\n\tvar idx;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar sh;\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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdv0 = [ strides[4] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[3] - ( S0*strides[4] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[3] ) ];\n\t\tdv3 = [ strides[1] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[0] - ( S3*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary5d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdv0 = [ strides[5] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[4] - ( S0*strides[5] ) ];\n\t\tdv2 = [ strides[3] - ( S1*strides[4] ) ];\n\t\tdv3 = [ strides[2] - ( S2*strides[3] ) ];\n\t\tdv4 = [ strides[1] - ( S3*strides[2] ) ];\n\t\tdv5 = [ strides[0] - ( S4*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\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 iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdv0 = [ strides[6] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[5] - ( S0*strides[6] ) ];\n\t\tdv2 = [ strides[4] - ( S1*strides[5] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[4] ) ];\n\t\tdv4 = [ strides[2] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[1] - ( S4*strides[2] ) ];\n\t\tdv6 = [ strides[0] - ( S5*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary7d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdv0 = [ strides[7] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[6] - ( S0*strides[7] ) ];\n\t\tdv2 = [ strides[5] - ( S1*strides[6] ) ];\n\t\tdv3 = [ strides[4] - ( S2*strides[5] ) ];\n\t\tdv4 = [ strides[3] - ( S3*strides[4] ) ];\n\t\tdv5 = [ strides[2] - ( S4*strides[3] ) ];\n\t\tdv6 = [ strides[1] - ( S5*strides[2] ) ];\n\t\tdv7 = [ strides[0] - ( S6*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary8d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdv0 = [ strides[8] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[7] - ( S0*strides[8] ) ];\n\t\tdv2 = [ strides[6] - ( S1*strides[7] ) ];\n\t\tdv3 = [ strides[5] - ( S2*strides[6] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[5] ) ];\n\t\tdv5 = [ strides[3] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[2] - ( S5*strides[3] ) ];\n\t\tdv7 = [ strides[1] - ( S6*strides[2] ) ];\n\t\tdv8 = [ strides[0] - ( S7*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary9d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport reverse from '@stdlib/array-base-reverse';\nimport take from '@stdlib/array-base-take-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* unary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, true, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, isRowMajor, opts, hasOpts, clbk, thisArg ) {\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 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 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 x;\n\tvar y;\n\tvar f;\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// Cache a reference to the input ndarray:\n\tx = arrays[ 0 ];\n\n\t// Resolve the output ndarray and associated shape:\n\ty = arrays[ 1 ];\n\tsh = y.shape;\n\tidx = zeroTo( sh.length );\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 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdv0 = [ strides[9] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[8] - ( S0*strides[9] ) ];\n\t\tdv2 = [ strides[7] - ( S1*strides[8] ) ];\n\t\tdv3 = [ strides[6] - ( S2*strides[7] ) ];\n\t\tdv4 = [ strides[5] - ( S3*strides[6] ) ];\n\t\tdv5 = [ strides[4] - ( S4*strides[5] ) ];\n\t\tdv6 = [ strides[3] - ( S5*strides[4] ) ];\n\t\tdv7 = [ strides[2] - ( S6*strides[3] ) ];\n\t\tdv8 = [ strides[1] - ( S7*strides[2] ) ];\n\t\tdv9 = [ strides[0] - ( S8*strides[1] ) ]; // offset increment for outermost loop\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 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdv0 = [ strides[0] ]; // offset increment for innermost loop\n\t\tdv1 = [ strides[1] - ( S0*strides[0] ) ];\n\t\tdv2 = [ strides[2] - ( S1*strides[1] ) ];\n\t\tdv3 = [ strides[3] - ( S2*strides[2] ) ];\n\t\tdv4 = [ strides[4] - ( S3*strides[3] ) ];\n\t\tdv5 = [ strides[5] - ( S4*strides[4] ) ];\n\t\tdv6 = [ strides[6] - ( S5*strides[5] ) ];\n\t\tdv7 = [ strides[7] - ( S6*strides[6] ) ];\n\t\tdv8 = [ strides[8] - ( S7*strides[7] ) ];\n\t\tdv9 = [ strides[9] - ( S8*strides[8] ) ]; // offset increment for outermost loop\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\tidx = reverse( idx );\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// Cache a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the non-reduced ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ i9, i8, i7, i6, i5, i4, i3, i2, i1, i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default unary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary2d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary3d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary4d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*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\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary5d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary7d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary8d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary9d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iv[1] ] = ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f );\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\nexport default blockedunary10d;\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-len, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1 ];\n* var cdims = [ 2, 3 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary2d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary2d;\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, max-params */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2 ];\n* var cdims = [ 3, 4 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary3d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ true, false, true ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary3d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3 ];\n* var cdims = [ 4, 5 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary4d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ true, false, true ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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 non-reduced ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary4d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4 ];\n* var cdims = [ 5, 6 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary5d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ true, false, true ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*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\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*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 non-reduced ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary5d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5 ];\n* var cdims = [ 6, 7 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary6d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ true, false, true ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[1];\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// 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[1], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary6d;\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, max-params, max-statements */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6 ];\n* var cdims = [ 7, 8 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary7d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary7d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7 ];\n* var cdims = [ 8, 9 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary8d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary8d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var cdims = [ 9, 10 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary9d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary9d;\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, max-params, max-statements, max-lines-per-function */\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport take from '@stdlib/array-base-take-indexed';\nimport reverse from '@stdlib/array-base-reverse';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\nimport wrap from './callback_wrapper.js';\n\n\n// MAIN //\n\n/**\n* Performs a reduction over an input ndarray according to a callback function and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} ibuf - workspace for storing iteration indices\n* @param {NonNegativeIntegerArray} ldims - list of loop dimensions\n* @param {NonNegativeIntegerArray} cdims - list of \"core\" dimensions\n* @param {IntegerArray} strides - loop dimension strides for the input ndarray\n* @param {Options} opts - reduction function options\n* @param {boolean} hasOpts - boolean indicating whether to pass an options argument to a reduction function\n* @param {Function} clbk - callback function\n* @param {thisArg} thisArg - callback execution context\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import zeros from '@stdlib/array-base-zeros';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ) );\n* var ybuf = toAccessorArray( filled( false, 3 ) );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\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*\n* // Create a workspace array for storing iteration indices:\n* var ibuf = zeros( xsh.length );\n*\n* // Define the loop and core dimensions:\n* var ldims = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];\n* var cdims = [ 10, 11 ];\n*\n* // Resolve the loop dimension strides for the input array:\n* var slx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ];\n*\n* // Perform a reduction:\n* blockedunary10d( base, [ x, y ], views, ibuf, ldims, cdims, slx, null, false, clbk, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ true, false, true ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, ibuf, ldims, cdims, strides, opts, hasOpts, clbk, thisArg ) {\n\tvar bsize;\n\tvar ybuf;\n\tvar idx;\n\tvar set;\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 y;\n\tvar f;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( y.shape, strides, y.strides );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tidx = reverse( o.idx );\n\tfor ( k = 2; k < N; k++ ) {\n\t\tsv.push( take( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.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 a reference to the output ndarray buffer:\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tset = y.accessors[ 1 ];\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// 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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 non-reduced ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf = wrap( x.ref, ibuf, ldims, take( [ j9+i9, j8+i8, j7+i7, j6+i6, j5+i5, j4+i4, j3+i3, j2+i2, j1+i1, j0+i0 ], idx ), cdims, clbk, thisArg );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iv[ 1 ], ( hasOpts ) ? fcn( views, opts, f ) : fcn( views, f ) );\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\nexport default blockedunary10d;\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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport { assign as minmaxViewBufferIndex } from '@stdlib/ndarray-base-minmax-view-buffer-index';\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport emptyLike from '@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\nexport default 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* 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\nexport default 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} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array} 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\nexport default 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} 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\nexport default 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/**\n* Perform a reduction over a list of specified dimensions in an input ndarray according to a callback function and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-reduce-subarray-by\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import everyBy from '@stdlib/ndarray-base-every-by';\n* import unaryReduceSubarrayBy from '@stdlib/ndarray-base-unary-reduce-subarray-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Perform a reduction:\n* unaryReduceSubarrayBy( everyBy, [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n* import unaryReduceSubarrayBy from '@stdlib/ndarray-base-unary-reduce-subarray-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var everyBy = unaryReduceSubarrayBy.factory( base );\n* // returns \n*\n* // Perform a reduction:\n* everyBy( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport main from './main.js';\nimport factory from './factory.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\n\n// exports: { \"factory\": \"main.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\nimport isFunction from '@stdlib/assert-is-function';\nimport format from '@stdlib/string-format';\nimport reduce from './main.js';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction over a list of specified dimensions in an input ndarray according to a callback function and assigning results to a provided output ndarray.\n*\n* @param {Function} fcn - reduction function\n* @throws {TypeError} first argument must be a function\n* @returns {Function} function for performing a reduction\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import filled from '@stdlib/array-base-filled';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import base from '@stdlib/ndarray-base-every-by';\n*\n* function clbk( value ) {\n* return value > 0.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 0.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = filled( false, 3 );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 3, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for performing a reduction over subarrays:\n* var everyBy = factory( base );\n* // returns \n*\n* // Perform a reduction:\n* everyBy( [ x, y ], [ 2, 3 ], clbk );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ true, false, true ] ]\n*/\nfunction factory( fcn ) {\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\treturn reducer;\n\n\t/**\n\t* Performs a reduction over a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions over which to perform a reduction\n\t* @param {Options} [options] - function options\n\t* @param {Function} clbk - callback function\n\t* @param {thisArg} [thisArg] - callback execution context\n\t* @returns {void}\n\t*/\n\tfunction reducer( arrays, dims, options, clbk, thisArg ) {\n\t\tvar nargs = arguments.length;\n\t\tif ( nargs < 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options );\n\t\t}\n\t\tif ( nargs === 4 ) {\n\t\t\treturn reduce( fcn, arrays, dims, options, clbk );\n\t\t}\n\t\treturn reduce( fcn, arrays, dims, options, clbk, thisArg );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './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 input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unarynd( wrapper, [ x, y, initial ], views, [ 3 ], [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ]\n*/\nfunction unarynd( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, opts ) { // eslint-disable-line max-len\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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\tfcn( v, opts );\n\t\tstrategyY.output( views[ 1 ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unarynd;\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\nimport ndarray2object from '@stdlib/ndarray-base-ndarraylike2object';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed2 from '@stdlib/array-base-take-indexed2';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport numel from '@stdlib/ndarray-base-numel';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\nimport initializeViews from './initialize_array_views.js';\nimport strategy from './strategy.js';\nimport defaults from './defaults.js';\nimport validate from './validate.js';\nimport blockedunary2d from './2d_blocked.js';\nimport blockedunary3d from './3d_blocked.js';\nimport blockedunary4d from './4d_blocked.js';\nimport blockedunary5d from './5d_blocked.js';\nimport blockedunary6d from './6d_blocked.js';\nimport blockedunary7d from './7d_blocked.js';\nimport blockedunary8d from './8d_blocked.js';\nimport blockedunary9d from './9d_blocked.js';\nimport blockedunary10d from './10d_blocked.js';\nimport unary0d from './0d.js';\nimport unary1d from './1d.js';\nimport unary2d from './2d.js';\nimport unary3d from './3d.js';\nimport unary4d from './4d.js';\nimport unary5d from './5d.js';\nimport unary6d from './6d.js';\nimport unary7d from './7d.js';\nimport unary8d from './8d.js';\nimport unary9d from './9d.js';\nimport unary10d from './10d.js';\nimport unarynd from './nd.js';\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar MAX_DIMS = UNARY.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 input ndarray and assigning results to a provided output 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 an input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, y, initial ], [ 0, 1, 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 15.0, 21.0 ], [ 28.0, 36.0 ] ], [ [ 45.0, 55.0 ], [ 66.0, 78.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3, 2, 2 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, y, initial ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.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 unaryStrided1d;\n\n\t/**\n\t* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {Function} fcn - wrapper for a one-dimensional strided array function\n\t* @param {ArrayLikeObject} 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 input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input 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 unaryStrided1d( fcn, arrays, dims, options ) { // eslint-disable-line max-statements\n\t\tvar strategyX;\n\t\tvar strategyY;\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 ioy;\n\t\tvar scx;\n\t\tvar scy;\n\t\tvar slx;\n\t\tvar sly;\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 y;\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 references to the input and output arrays:\n\t\tx = arr[ 0 ];\n\t\ty = arr[ 1 ];\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 = 2; 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 two arrays 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// Verify that the input and output arrays have the same shape...\n\t\tif ( ndims !== y.shape.length ) {\n\t\t\tthrow new Error( 'invalid arguments. Input and output arrays must have the same shape.' );\n\t\t}\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== y.shape[ i ] ) {\n\t\t\t\tthrow new Error( 'invalid arguments. Input and output arrays must have the same shape.' );\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\tsly = takeIndexed( y.strides, ldims );\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\tscy = takeIndexed( y.strides, d );\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\t{\n\t\t\t\t'dtype': y.dtype,\n\t\t\t\t'data': y.data,\n\t\t\t\t'shape': shc,\n\t\t\t\t'strides': scy,\n\t\t\t\t'offset': y.offset,\n\t\t\t\t'order': y.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 and output arrays before and after performing an operation:\n\t\tstrategyX = strategy( views[ 0 ] );\n\t\tstrategyY = strategy( views[ 1 ] );\n\n\t\t// Determine whether we can avoid iteration altogether...\n\t\tif ( K === 0 ) {\n\t\t\treturn UNARY[ K ]( fcn, arr, strategyX, strategyY, 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 UNARY[ K ]( fcn, arr, views, shl, slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\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\tsly = [ sly[i] ];\n\t\t\treturn UNARY[ 1 ]( fcn, arr, views, [ shl[i] ], slx, sly, strategyX, strategyY, opts ); // eslint-disable-line max-len\n\t\t}\n\t\tiox = iterationOrder( slx ); // +/-1\n\t\tioy = iterationOrder( sly ); // +/-1\n\n\t\t// Determine whether we can avoid blocked iteration...\n\t\tord = strides2order( slx );\n\t\tif ( iox !== 0 && ioy !== 0 && ord === strides2order( sly ) && K <= MAX_DIMS ) { // eslint-disable-line max-len\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 UNARY[ K ]( fcn, arr, views, shl, slx, sly, ord === 1, strategyX, strategyY, 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 input 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 UNARY[ K ]( fcn, arr, views, shl, slx, sly, ord === 1, strategyX, strategyY, 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_UNARY[ K-2 ]( fcn, arr, views, shl, slx, sly, strategyX, strategyY, 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\tunarynd( fcn, arr, views, shl, slx, sly, strategyX, strategyY, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 2, 2 ];\n* var ysh = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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* unary0d( wrapper, [ x, y, initial ], strategy, strategy, {} );\n*\n* var v = y.data;\n* // returns [ 1.0, 3.0, 6.0, 10.0 ]\n*/\nfunction unary0d( fcn, arrays, strategyX, strategyY, opts ) {\n\tarrays[ 0 ] = strategyX.input( arrays[ 0 ] );\n\tarrays[ 1 ] = strategyY.input( arrays[ 1 ] );\n\tfcn( arrays, opts );\n\tstrategyY.output( arrays[ 1 ] );\n}\n\n\n// EXPORTS //\n\nexport default unary0d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary1d( wrapper, [ x, y, initial ], views, [ 3 ], [ 4 ], [ 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ]\n*/\nfunction unary1d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, opts ) { // eslint-disable-line max-len\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\tstridesY[0]\n\t];\n\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\tfcn( v, opts );\n\t\tstrategyY.output( views[ 1 ] );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary1d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary2d( wrapper, [ x, y, initial ], views, [ 1, 3 ], [ 12, 4 ], [ 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\nfunction unary2d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] ),\n\t\t\tstridesY[0] - ( S0*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\tfcn( v, opts );\n\t\t\tstrategyY.output( views[ 1 ] );\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default unary2d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 3 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary3d( wrapper, [ x, y, initial ], views, [ 1, 1, 3 ], [ 12, 12, 4 ], [ 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ]\n*/\nfunction unary3d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] ),\n\t\t\tstridesY[1] - ( S0*stridesY[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] ),\n\t\t\tstridesY[0] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\tfcn( v, opts );\n\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary3d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary4d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 3 ], [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ]\n*/\nfunction unary4d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] ),\n\t\t\tstridesY[2] - ( S0*stridesY[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] ),\n\t\t\tstridesY[1] - ( S1*stridesY[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] ),\n\t\t\tstridesY[0] - ( S2*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary4d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary5d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction unary5d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] ),\n\t\t\tstridesY[3] - ( S0*stridesY[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] ),\n\t\t\tstridesY[2] - ( S1*stridesY[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] ),\n\t\t\tstridesY[1] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] ),\n\t\t\tstridesY[0] - ( S3*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\tstrategyY.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\nexport default unary5d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary6d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction unary6d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] ),\n\t\t\tstridesY[4] - ( S0*stridesY[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] ),\n\t\t\tstridesY[3] - ( S1*stridesY[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] ),\n\t\t\tstridesY[2] - ( S2*stridesY[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] ),\n\t\t\tstridesY[1] - ( S3*stridesY[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] ),\n\t\t\tstridesY[0] - ( S4*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary6d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary7d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction unary7d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] ),\n\t\t\tstridesY[5] - ( S0*stridesY[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] ),\n\t\t\tstridesY[4] - ( S1*stridesY[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] ),\n\t\t\tstridesY[3] - ( S2*stridesY[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] ),\n\t\t\tstridesY[2] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] ),\n\t\t\tstridesY[1] - ( S4*stridesY[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] ),\n\t\t\tstridesY[0] - ( S5*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary7d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary8d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary8d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] ),\n\t\t\tstridesY[6] - ( S0*stridesY[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] ),\n\t\t\tstridesY[5] - ( S1*stridesY[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] ),\n\t\t\tstridesY[4] - ( S2*stridesY[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] ),\n\t\t\tstridesY[3] - ( S3*stridesY[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] ),\n\t\t\tstridesY[2] - ( S4*stridesY[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] ),\n\t\t\tstridesY[1] - ( S5*stridesY[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] ),\n\t\t\tstridesY[0] - ( S6*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary8d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary9d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary9d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, 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\tstridesY[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] ),\n\t\t\tstridesY[7] - ( S0*stridesY[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] ),\n\t\t\tstridesY[6] - ( S1*stridesY[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] ),\n\t\t\tstridesY[5] - ( S2*stridesY[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] ),\n\t\t\tstridesY[4] - ( S3*stridesY[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] ),\n\t\t\tstridesY[3] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] ),\n\t\t\tstridesY[2] - ( S5*stridesY[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] ),\n\t\t\tstridesY[1] - ( S6*stridesY[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] ),\n\t\t\tstridesY[0] - ( S7*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default unary9d;\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\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output 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 input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* unary10d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction unary10d( fcn, arrays, views, shape, stridesX, stridesY, isRowMajor, strategyX, strategyY, opts ) { // eslint-disable-line max-statements, max-lines-per-function\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\tstridesY[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] ),\n\t\t\tstridesY[8] - ( S0*stridesY[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] ),\n\t\t\tstridesY[7] - ( S1*stridesY[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] ),\n\t\t\tstridesY[6] - ( S2*stridesY[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] ),\n\t\t\tstridesY[5] - ( S3*stridesY[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] ),\n\t\t\tstridesY[4] - ( S4*stridesY[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] ),\n\t\t\tstridesY[3] - ( S5*stridesY[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] ),\n\t\t\tstridesY[2] - ( S6*stridesY[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] ),\n\t\t\tstridesY[1] - ( S7*stridesY[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] ),\n\t\t\tstridesY[0] - ( S8*stridesY[1] )\n\t\t];\n\t\tfor ( i = 2; 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\tstridesY[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] ),\n\t\t\tstridesY[1] - ( S0*stridesY[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] ),\n\t\t\tstridesY[2] - ( S1*stridesY[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] ),\n\t\t\tstridesY[3] - ( S2*stridesY[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] ),\n\t\t\tstridesY[4] - ( S3*stridesY[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] ),\n\t\t\tstridesY[5] - ( S4*stridesY[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] ),\n\t\t\tstridesY[6] - ( S5*stridesY[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] ),\n\t\t\tstridesY[7] - ( S6*stridesY[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] ),\n\t\t\tstridesY[8] - ( S7*stridesY[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] ),\n\t\t\tstridesY[9] - ( S8*stridesY[8] )\n\t\t];\n\t\tfor ( i = 2; 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default unary10d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary2d( wrapper, [ x, y, initial ], views, [ 1, 3 ], [ 12, 4 ], [ 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\nfunction blockedunary2d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary2d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 3 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary3d( wrapper, [ x, y, initial ], views, [ 1, 1, 3 ], [ 12, 12, 4 ], [ 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ]\n*/\nfunction blockedunary3d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary3d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary4d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 3 ], [ 12, 12, 12, 4 ], [ 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ]\n*/\nfunction blockedunary4d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary4d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n* var sy = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary5d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ]\n*/\nfunction blockedunary5d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary5d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary6d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary6d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary6d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary7d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary7d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary7d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary8d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary8d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary8d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary9d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary9d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary9d;\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\nimport loopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nimport blockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\nimport copyIndexed from '@stdlib/array-base-copy-indexed';\nimport zeros from '@stdlib/array-base-zeros';\nimport incrementOffsets from './increment_offsets.js';\nimport setViewOffsets from './set_view_offsets.js';\nimport offsets from './offsets.js';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an input ndarray and assigns results to a provided output ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array} arrays - ndarrays\n* @param {Array} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the input ndarray\n* @param {IntegerArray} stridesY - loop dimension strides for the output ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an input ndarray view\n* @param {Object} strategyY - strategy for marshaling data to and from an output ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n* var ysh = [ 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* var sy = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.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* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\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': y.dtype,\n* 'data': y.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': y.offset,\n* 'order': y.order\n* },\n* {\n* 'dtype': initial.dtype,\n* 'data': initial.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': initial.offset,\n* 'order': initial.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* blockedunary10d( wrapper, [ x, y, initial ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, strategy, {} );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockedunary10d( fcn, arrays, views, shape, stridesX, stridesY, strategyX, strategyY, 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 y;\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\ty = arrays[ 1 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX, stridesY );\n\tsh = o.sh;\n\tsv = [ o.sx, o.sy ];\n\tfor ( k = 2; 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, y.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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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[ k ] = 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\tv[ 1 ] = strategyY.input( views[ 1 ] );\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\tstrategyY.output( views[ 1 ] );\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\nexport default blockedunary10d;\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 an input ndarray:\n\t\t'strictTraversalOrder': false\n\t};\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { isPrimitive as isBoolean } from '@stdlib/assert-is-boolean';\nimport format from '@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\nexport default 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* 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 two ndarray-like objects, which are assumed to be the input and output ndarray, respectively.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject} arrays - list of ndarray-like objects\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 2; 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\nexport default 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\nimport factory from './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 input ndarray and assigns results to a provided output ndarray.\n*\n* @name unaryStrided1d\n* @type {Function}\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {ArrayLikeObject} 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 input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [ 0, 1, 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 15.0, 21.0 ], [ 28.0, 36.0 ] ], [ [ 45.0, 55.0 ], [ 66.0, 78.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 3, 2, 2 ];\n* var ysh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n* var sy = [ 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 3, 2, 2 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.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 unaryStrided1d = factory();\n\n\n// EXPORTS //\n\nexport default unaryStrided1d;\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 input ndarray and assign results to a provided output ndarray.\n*\n* @module @stdlib/ndarray-base-unary-strided1d\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n* import unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* unaryStrided1d( wrapper, [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n* import unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for applying a strided function:\n* var cusum = unaryStrided1d.factory( wrapper );\n* // returns \n*\n* // Apply strided function:\n* cusum( [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport factory from './factory.js';\nimport main from './main.js';\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nexport default main;\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\nimport isFunction from '@stdlib/assert-is-function';\nimport mainFactory from './main_factory.js';\nimport main from './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 input ndarray and assigning results to a provided output 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 an input 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* import Float64Array from '@stdlib/array-float64';\n* import ndarray2array from '@stdlib/ndarray-base-to-array';\n* import getStride from '@stdlib/ndarray-base-stride';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import getData from '@stdlib/ndarray-base-data-buffer';\n* import numelDimension from '@stdlib/ndarray-base-numel-dimension';\n* import ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\n* import { ndarray as gcusum } from '@stdlib/blas-ext-base-gcusum';\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var y = arrays[ 1 ];\n* var s = arrays[ 2 ];\n* return gcusum( numelDimension( x, 0 ), ndarraylike2scalar( s ), getData( x ), getStride( x, 0 ), getOffset( x ), getData( y ), getStride( y, 0 ), getOffset( y ) );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the array shapes:\n* var xsh = [ 1, 3, 2, 2 ];\n* var ysh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n* var sy = [ 12, 4, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an input ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\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 initial sum:\n* var initial = {\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 0.0 ] ),\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create an output ndarray-like object:\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': ysh,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for applying a strided function:\n* var cusum = factory( wrapper );\n* // returns \n*\n* // Apply strided function:\n* cusum( [ x, y, initial ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( y.data, y.shape, y.strides, y.offset, y.order );\n* // returns [ [ [ [ 1.0, 3.0 ], [ 6.0, 10.0 ] ], [ [ 5.0, 11.0 ], [ 18.0, 26.0 ] ], [ [ 9.0, 19.0 ], [ 30.0, 42.0 ] ] ] ]\n*/\nfunction factory() {\n\tvar nargs;\n\tvar unary;\n\tvar fcn;\n\tvar f;\n\n\tnargs = arguments.length;\n\n\t// Case: factory()\n\tif ( nargs === 0 ) {\n\t\tunary = main;\n\t\tf = wrap;\n\t}\n\t// Case: factory( fcn, opts )\n\telse if ( nargs > 1 ) {\n\t\tunary = 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\tunary = main;\n\t\tfcn = arguments[ 0 ];\n\t\tf = apply;\n\t}\n\t// Case: factory( opts )\n\telse {\n\t\tunary = 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 input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject} 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 unary( 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 input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {Function} fcn - wrapper for a one-dimensional strided array function\n\t* @param {ArrayLikeObject} 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 unary( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport isObject from '@stdlib/assert-is-plain-object';\nimport hasOwnProp from '@stdlib/assert-has-own-property';\nimport { primitives as isIntegerArray } from '@stdlib/assert-is-integer-array';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport join from '@stdlib/array-base-join';\nimport contains from '@stdlib/array-base-assert-contains';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {NonNegativeInteger} ndims - number of input ndarray dimensions\n* @param {Array} dtypes - list of supported output data types\n* @param {Options} options - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @param {string} [options.dtype] - output ndarray data type\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var dtypes = [ 'float64', 'float32', 'generic' ];\n*\n* var opts = {};\n* var options = {\n* 'dims': [ 0 ]\n* };\n* var err = validate( opts, 3, dtypes, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, ndims, dtypes, options ) {\n\tvar tmp;\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, 'dims' ) ) {\n\t\topts.dims = options.dims;\n\t\tif ( !isIntegerArray( opts.dims ) && !isEmptyCollection( opts.dims ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array of integers. Option: `%s`.', 'dims', opts.dims ) );\n\t\t}\n\t\ttmp = normalizeIndices( opts.dims, ndims-1 );\n\t\tif ( tmp === null ) {\n\t\t\treturn new RangeError( format( 'invalid option. `%s` option contains an out-of-bounds dimension index. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\tif ( tmp.length !== opts.dims.length ) {\n\t\t\treturn new Error( format( 'invalid option. `%s` option contains duplicate indices. Option: [%s].', 'dims', join( opts.dims, ',' ) ) );\n\t\t}\n\t\topts.dims = tmp;\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !contains( dtypes, opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'dtype', join( dtypes, '\", \"' ), opts.dtype ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default 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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport hasProp from '@stdlib/assert-has-property';\nimport isndarrayLike from '@stdlib/assert-is-ndarray-like';\nimport isObject from '@stdlib/assert-is-object';\nimport isFunction from '@stdlib/assert-is-function';\nimport isCollection from '@stdlib/assert-is-collection';\nimport isEmptyCollection from '@stdlib/assert-is-empty-collection';\nimport isFunctionArray from '@stdlib/assert-is-function-array';\nimport isDataType from '@stdlib/ndarray-base-assert-is-data-type';\nimport isOutputDataTypePolicy from '@stdlib/ndarray-base-assert-is-output-data-type-policy';\nimport isInputCastingPolicy from '@stdlib/ndarray-base-assert-is-input-casting-policy';\nimport contains from '@stdlib/array-base-assert-contains';\nimport unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nimport getShape from '@stdlib/ndarray-shape'; // note: non-base accessor is intentional due to input ndarrays originating in userland\nimport ndims from '@stdlib/ndarray-ndims';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport assign from '@stdlib/ndarray-base-assign';\nimport baseEmpty from '@stdlib/ndarray-base-empty';\nimport empty from '@stdlib/ndarray-empty';\nimport zeroTo from '@stdlib/array-base-zero-to';\nimport join from '@stdlib/array-base-join';\nimport copy from '@stdlib/array-base-copy';\nimport insertAt from '@stdlib/array-base-insert-at';\nimport everyBy from '@stdlib/array-base-every-by';\nimport { ndarray as gindexOfRow } from '@stdlib/blas-ext-base-gindex-of-row';\nimport objectAssign from '@stdlib/object-assign';\nimport format from '@stdlib/string-format';\nimport defaults from './defaults.json';\nimport validate from './validate.js';\n\n\n// MAIN //\n\n/**\n* Constructor for applying a strided function to an input ndarray.\n*\n* @constructor\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types=[]] - one-dimensional list of ndarray data types describing specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns=[]] - list of strided functions which are specific to specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\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 an input ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {UnaryStrided1dDispatch} instance\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = cumax.apply( x );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*/\nfunction UnaryStrided1dDispatch( table, idtypes, odtypes, policies, options ) {\n\tvar dt;\n\tvar i;\n\tif ( !( this instanceof UnaryStrided1dDispatch ) ) {\n\t\tif ( arguments.length > 4 ) {\n\t\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies, options ); // eslint-disable-line max-len\n\t\t}\n\t\treturn new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tif ( !isObject( table ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object. Value: `%s`.', table ) );\n\t}\n\tif ( !isFunction( table.default ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"default\" property and an associated method.' ) );\n\t}\n\tif ( hasProp( table, 'types' ) && !isCollection( table.types ) && !isEmptyCollection( table.types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"types\" property whose associated value is an array-like object.' ) );\n\t}\n\tif ( hasProp( table, 'fcns' ) && !isFunctionArray( table.fcns ) && !isEmptyCollection( table.fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an object having a \"fcns\" property whose associated value is an array-like object containing functions.' ) );\n\t}\n\tif ( !isCollection( idtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', idtypes ) );\n\t}\n\tfor ( i = 0; i < idtypes.length; i++ ) {\n\t\tdt = idtypes[ i ];\n\t\tif (\n\t\t\t!isCollection( dt ) ||\n\t\t\tdt.length < 1 ||\n\t\t\t!everyBy( dt, isDataType )\n\t\t) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must contain arrays of data types. Value: `%s`.', idtypes ) );\n\t\t}\n\t}\n\tif (\n\t\t!isCollection( odtypes ) ||\n\t\todtypes.length < 1 ||\n\t\t!everyBy( odtypes, isDataType )\n\t) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array of data types. Value: `%s`.', odtypes ) );\n\t}\n\tif ( !isObject( policies ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object. Value: `%s`.', policies ) );\n\t}\n\tif ( !isOutputDataTypePolicy( policies.output ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported output data type policy. Value: `%s`.', policies.output ) );\n\t}\n\tif ( !isInputCastingPolicy( policies.casting ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an object having a supported casting policy. Value: `%s`.', policies.casting ) );\n\t}\n\tthis._table = {\n\t\t'default': table.default,\n\t\t'types': ( table.types ) ? dtypes2enums( table.types ) : [], // note: convert to enums (i.e., integers) to ensure faster comparisons\n\t\t'fcns': ( table.fcns ) ? copy( table.fcns ) : []\n\t};\n\tif ( this._table.types.length !== this._table.fcns.length*2 ) {\n\t\tthrow new Error( 'invalid argument. First argument specifies an unexpected number of types. A pair of input and output ndarray data types must be specified for each provided strided function.' );\n\t}\n\tthis._idtypes = idtypes;\n\tthis._odtypes = odtypes;\n\tthis._policies = {\n\t\t'output': policies.output,\n\t\t'casting': policies.casting\n\t};\n\tif ( arguments.length > 4 ) {\n\t\tthis._apply = unaryStrided1d.factory( options ); // note: delegate options validation to factory method\n\t} else {\n\t\tthis._apply = unaryStrided1d;\n\t}\n\treturn this;\n}\n\n/**\n* Applies a strided function to a provided input ndarray.\n*\n* @name apply\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @param {string} [options.dtype] - output ndarray data type\n* @throws {TypeError} first argument must be an ndarray-like object\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarray} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = cumax.apply( x );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'apply', function apply( x ) {\n\tvar options;\n\tvar nargs;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar shx;\n\tvar arr;\n\tvar xdt;\n\tvar ydt;\n\tvar tmp;\n\tvar dt;\n\tvar f;\n\tvar N;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\tdt = getDType( arr );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// If we didn't make it up until the last argument, this means that we found a non-options argument which was not an ndarray...\n\tif ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\tshx = getShape( x );\n\tN = shx.length;\n\n\topts = objectAssign( {}, defaults );\n\tif ( nargs > i ) {\n\t\toptions = arguments[ nargs-1 ];\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, apply the strided function across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Initialize an output array whose shape and memory layout matches the input array:\n\tydt = opts.dtype || unaryOutputDataType( xdt, this._policies.output );\n\ty = empty( shx, {\n\t\t'dtype': ydt,\n\t\t'order': getOrder( x )\n\t});\n\n\t// Determine whether we need to cast the input ndarray...\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, shx, getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input and output ndarray data types:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform operation:\n\tthis._apply( f, insertAt( args, 1, y ), opts.dims );\n\n\treturn y;\n});\n\n/**\n* Applies a strided function to a provided input ndarray and assigns results to a provided output ndarray.\n*\n* @name assign\n* @memberof UnaryStrided1dDispatch.prototype\n* @type {Function}\n* @param {ndarrayLike} x - input ndarray\n* @param {...ndarrayLike} [args] - additional ndarray arguments\n* @param {ndarrayLike} out - output ndarray\n* @param {Options} [options] - function options\n* @param {IntegerArray} [options.dims] - list of dimensions over which to perform an operation\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have a supported data type\n* @throws {TypeError} output argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n* @throws {Error} must provide valid options\n* @returns {ndarrayLike} output ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = new UnaryStrided1dDispatch( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0, 0.0, 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var out = cumax.assign( x, y );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nsetReadOnly( UnaryStrided1dDispatch.prototype, 'assign', function assign( x ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar arr;\n\tvar err;\n\tvar flg;\n\tvar xdt;\n\tvar ydt;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar f;\n\tvar y;\n\tvar i;\n\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\t// Validate the input ndarray data type in order to maintain similar behavior to `apply` above...\n\txdt = getDType( x );\n\tif ( !contains( this._idtypes[ 0 ], xdt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have one of the following data types: \"%s\". Data type: `%s`.', join( this._idtypes[ 0 ], '\", \"' ), xdt ) );\n\t}\n\targs = [ x ];\n\n\t// Resolve additional ndarray arguments...\n\tfor ( i = 1; i < nargs; i++ ) {\n\t\tarr = arguments[ i ];\n\t\tif ( !isndarrayLike( arr ) ) {\n\t\t\tbreak;\n\t\t}\n\t\targs.push( arr );\n\t}\n\t// Ensure that we were provided an output ndarray...\n\tif ( i < 2 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray-like object. Value: `%s`.', arguments[ 1 ] ) );\n\t}\n\t// If we processed all but the last argument, assume that the last argument is an options argument...\n\telse if ( i === nargs-1 ) {\n\t\toptions = arguments[ i ];\n\t\tflg = true;\n\t}\n\t// Otherwise, if we have more than one argument remaining, then at least one argument is not an ndarray but should be...\n\telse if ( i < nargs-1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. Argument %d must be an ndarray-like object. Value: `%s`.', i, arguments[ i ] ) );\n\t}\n\t// Cache a reference to the output ndarray:\n\ty = args.pop();\n\n\t// Verify that additional ndarray arguments have expected dtypes (note: we intentionally don't validate the output ndarray dtype in order to provide an escape hatch for a user wanting to have an output ndarray having a specific dtype that `apply` does not support)...\n\tfor ( i = 1; i < args.length; i++ ) {\n\t\tdt = getDType( args[ i ] );\n\t\tif ( !contains( this._idtypes[ i ], dt ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Argument %d must have one of the following data types: \"%s\". Data type: `%s`.', i, join( this._idtypes[ i ], '\", \"' ), dt ) );\n\t\t}\n\t}\n\t// Validate any provided options...\n\tN = ndims( x );\n\topts = objectAssign( {}, defaults );\n\tif ( flg ) {\n\t\terr = validate( opts, N, this._odtypes, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\t// When a list of dimensions is not provided, apply the strided function across all dimensions...\n\tif ( opts.dims === null ) {\n\t\topts.dims = zeroTo( N );\n\t}\n\t// Determine whether we need to cast the input ndarray...\n\tydt = getDType( y );\n\tdt = unaryInputCastingDataType( xdt, ydt, this._policies.casting );\n\tif ( xdt !== dt ) {\n\t\t// TODO: replace the following logic with a call to `ndarray/base/(?maybe-)(cast|convert|copy)` or similar utility\n\t\ttmp = baseEmpty( dt, getShape( x ), getOrder( x ) );\n\t\tassign( [ x, tmp ] );\n\t\targs[ 0 ] = tmp;\n\t\txdt = dt;\n\t}\n\t// Resolve the lower-level strided function satisfying the input and output ndarray data types:\n\ti = gindexOfRow( this._table.fcns.length, 2, this._table.types, 2, 1, 0, dtypes2enums( [ xdt, ydt ] ), 1, 0 ); // eslint-disable-line max-len\n\tif ( i >= 0 ) {\n\t\tf = this._table.fcns[ i ];\n\t} else {\n\t\tf = this._table.default;\n\t}\n\t// Perform operation:\n\tthis._apply( f, insertAt( args, 1, y ), opts.dims ); // note: we assume that this lower-level function handles further validation of the output ndarray (e.g., expected shape, etc)\n\n\treturn y;\n});\n\n\n// EXPORTS //\n\nexport default UnaryStrided1dDispatch;\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\nimport setNonEnumerableReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadWriteAccessor from '@stdlib/utils-define-read-write-accessor';\nimport copy from '@stdlib/array-base-copy';\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nimport numel from '@stdlib/ndarray-numel';\n\n\n// FUNCTIONS //\n\n/**\n* Returns an accessor for returning the value associated with a label.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {Function} accessor\n*/\nfunction getValue( arr ) {\n\treturn get;\n\n\t/**\n\t* Returns the value associated with a label.\n\t*\n\t* @private\n\t* @returns {*} result\n\t*/\n\tfunction get() {\n\t\treturn arr.get( this._i ); // eslint-disable-line no-invalid-this\n\t}\n}\n\n/**\n* Returns an accessor for setting the value associated with a label.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {Function} accessor\n*/\nfunction setValue( arr ) {\n\treturn set;\n\n\t/**\n\t* Sets the value associated with a label.\n\t*\n\t* @private\n\t* @param {*} value - value to set\n\t*/\n\tfunction set( value ) {\n\t\tarr.set( this._i, value ); // eslint-disable-line no-invalid-this\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Zips one or more one-dimensional ndarrays to an array of composite views.\n*\n* ## Notes\n*\n* - The function assumes that the list of ndarrays to be zipped all have the same length.\n* - The list of provided labels should equal the number of ndarrays to be zipped.\n* - Each view in the returned array shares the same memory as the corresponding elements in the input ndarrays. Accordingly, mutation of either an input ndarray or a view will mutate the other.\n*\n* @param {ArrayLikeObject} arrays - list of ndarrays to be zipped\n* @param {ArrayLikeObject} labels - list of labels\n* @returns {Array} output array\n*\n* @example\n* import array2ndarray from '@stdlib/ndarray-base-from-array';\n*\n* var x = array2ndarray( [ 1, 2, 3 ], 'row-major' );\n* var y = array2ndarray( [ 'a', 'b', 'c' ], 'row-major' );\n*\n* var labels = [ 'x', 'y' ];\n*\n* var z = zip2views1d( [ x, y ], labels );\n* // returns [ , , ]\n*\n* var v0 = z[ 0 ].toJSON();\n* // returns { 'x': 1, 'y': 'a' }\n*\n* var v1 = z[ 1 ].toJSON();\n* // returns { 'x': 2, 'y': 'b' }\n*\n* var v2 = z[ 2 ].toJSON();\n* // returns { 'x': 3, 'y': 'c' }\n*\n* // Mutate one of the input arrays:\n* x.set( 0, 5 );\n*\n* v0 = z[ 0 ].toJSON();\n* // returns { 'x': 5, 'y': 'a' }\n*\n* // Set a view property:\n* z[ 1 ].y = 'beep';\n*\n* v1 = z[ 1 ].toJSON();\n* // returns { 'x': 2, 'y': 'beep' }\n*\n* var v = y.get( 1 );\n* // returns 'beep'\n*/\nfunction zip2views1d( arrays, labels ) {\n\tvar getter;\n\tvar setter;\n\tvar list;\n\tvar keys;\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar i;\n\n\tM = arrays.length;\n\tif ( M < 1 ) {\n\t\treturn [];\n\t}\n\tlist = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tlist.push( ndarraylike2ndarray( arrays[ i ] ) );\n\t}\n\tN = numel( list[ 0 ] );\n\tif ( N < 1 ) {\n\t\treturn [];\n\t}\n\t// Create a copy of provided labels to prevent external mutation:\n\tkeys = copy( labels );\n\n\t// eslint-disable-next-line stdlib/jsdoc-typedef-typos\n\t/**\n\t* Constructor for creating a composite view of zipped elements.\n\t*\n\t* @private\n\t* @constructor\n\t* @param {NonNegativeInteger} i - element index\n\t* @returns {Datum} datum instance\n\t*/\n\tfunction Datum( i ) { // eslint-disable-line stdlib/no-unnecessary-nested-functions\n\t\tsetNonEnumerableReadOnly( this, '_i', i );\n\t\treturn this;\n\t}\n\n\t// Define read/write accessors for each label...\n\tfor ( i = 0; i < M; i++ ) {\n\t\tgetter = getValue( list[ i ] );\n\t\tsetter = setValue( list[ i ] );\n\t\tsetReadWriteAccessor( Datum.prototype, keys[ i ], getter, setter );\n\t}\n\t// Ensure that the returned array correctly serializes to JSON:\n\tsetNonEnumerableReadOnly( Datum.prototype, 'toJSON', toJSON );\n\n\t// Create a list of composite views...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( new Datum( i ) );\n\t}\n\treturn out;\n\n\t/**\n\t* Serializes a datum to JSON.\n\t*\n\t* @private\n\t* @returns {Object} JSON object\n\t*/\n\tfunction toJSON() {\n\t\tvar out;\n\t\tvar k;\n\t\tvar i;\n\n\t\tout = {};\n\t\tfor ( i = 0; i < M; i++ ) {\n\t\t\tk = keys[ i ];\n\t\t\tout[ k ] = this[ k ]; // eslint-disable-line no-invalid-this\n\t\t}\n\t\treturn out;\n\t}\n}\n\n\n// EXPORTS //\n\nexport default zip2views1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: function-object, napi, unary\n*/\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-read-only-property';\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name any\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/any}\n*/\nimport any from '@stdlib/ndarray-base-any';\nsetReadOnly( ns, 'any', any );\n\n/**\n* @name anyBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/any-by}\n*/\nimport anyBy from '@stdlib/ndarray-base-any-by';\nsetReadOnly( ns, 'anyBy', anyBy );\n\n/**\n* @name appendSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/append-singleton-dimensions}\n*/\nimport appendSingletonDimensions from '@stdlib/ndarray-base-append-singleton-dimensions';\nsetReadOnly( ns, 'appendSingletonDimensions', appendSingletonDimensions );\n\n/**\n* @name assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base/assert}\n*/\nimport assert from '@stdlib/ndarray-base-assert';\nsetReadOnly( ns, 'assert', assert );\n\n/**\n* @name assign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign}\n*/\nimport assign from '@stdlib/ndarray-base-assign';\nsetReadOnly( ns, 'assign', assign );\n\n/**\n* @name assignDiagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign-diagonal}\n*/\nimport assignDiagonal from '@stdlib/ndarray-base-assign-diagonal';\nsetReadOnly( ns, 'assignDiagonal', assignDiagonal );\n\n/**\n* @name assignScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign-scalar}\n*/\nimport assignScalar from '@stdlib/ndarray-base-assign-scalar';\nsetReadOnly( ns, 'assignScalar', assignScalar );\n\n/**\n* @name atleast1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast1d}\n*/\nimport atleast1d from '@stdlib/ndarray-base-atleast1d';\nsetReadOnly( ns, 'atleast1d', atleast1d );\n\n/**\n* @name atleast2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast2d}\n*/\nimport atleast2d from '@stdlib/ndarray-base-atleast2d';\nsetReadOnly( ns, 'atleast2d', atleast2d );\n\n/**\n* @name atleast3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleast3d}\n*/\nimport atleast3d from '@stdlib/ndarray-base-atleast3d';\nsetReadOnly( ns, 'atleast3d', atleast3d );\n\n/**\n* @name atleastnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/atleastnd}\n*/\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\nsetReadOnly( ns, 'atleastnd', atleastnd );\n\n/**\n* @name binary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary}\n*/\nimport binary from '@stdlib/ndarray-base-binary';\nsetReadOnly( ns, 'binary', binary );\n\n/**\n* @name binaryInputCastingDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-input-casting-dtype}\n*/\nimport binaryInputCastingDataType from '@stdlib/ndarray-base-binary-input-casting-dtype';\nsetReadOnly( ns, 'binaryInputCastingDataType', binaryInputCastingDataType );\n\n/**\n* @name binaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-loop-interchange-order}\n*/\nimport binaryLoopOrder from '@stdlib/ndarray-base-binary-loop-interchange-order';\nsetReadOnly( ns, 'binaryLoopOrder', binaryLoopOrder );\n\n/**\n* @name binaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-output-dtype}\n*/\nimport binaryOutputDataType from '@stdlib/ndarray-base-binary-output-dtype';\nsetReadOnly( ns, 'binaryOutputDataType', binaryOutputDataType );\n\n/**\n* @name binaryReduceStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d}\n*/\nimport binaryReduceStrided1d from '@stdlib/ndarray-base-binary-reduce-strided1d';\nsetReadOnly( ns, 'binaryReduceStrided1d', binaryReduceStrided1d );\n\n/**\n* @name binaryReduceStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch}\n*/\nimport binaryReduceStrided1dDispatch from '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch';\nsetReadOnly( ns, 'binaryReduceStrided1dDispatch', binaryReduceStrided1dDispatch );\n\n/**\n* @name binaryReduceStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch-factory}\n*/\nimport binaryReduceStrided1dDispatchFactory from '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory';\nsetReadOnly( ns, 'binaryReduceStrided1dDispatchFactory', binaryReduceStrided1dDispatchFactory );\n\n/**\n* @name binaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-tiling-block-size}\n*/\nimport binaryBlockSize from '@stdlib/ndarray-base-binary-tiling-block-size';\nsetReadOnly( ns, 'binaryBlockSize', binaryBlockSize );\n\n/**\n* @name bind2vind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bind2vind}\n*/\nimport bind2vind from '@stdlib/ndarray-base-bind2vind';\nsetReadOnly( ns, 'bind2vind', bind2vind );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array}\n*/\nimport broadcastArray from '@stdlib/ndarray-base-broadcast-array';\nsetReadOnly( ns, 'broadcastArray', broadcastArray );\n\n/**\n* @name broadcastArrayExceptDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array-except-dimensions}\n*/\nimport broadcastArrayExceptDimensions from '@stdlib/ndarray-base-broadcast-array-except-dimensions';\nsetReadOnly( ns, 'broadcastArrayExceptDimensions', broadcastArrayExceptDimensions );\n\n/**\n* @name broadcastArrays\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-arrays}\n*/\nimport broadcastArrays from '@stdlib/ndarray-base-broadcast-arrays';\nsetReadOnly( ns, 'broadcastArrays', broadcastArrays );\n\n/**\n* @name broadcastScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar}\n*/\nimport broadcastScalar from '@stdlib/ndarray-base-broadcast-scalar';\nsetReadOnly( ns, 'broadcastScalar', broadcastScalar );\n\n/**\n* @name broadcastScalarLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar-like}\n*/\nimport broadcastScalarLike from '@stdlib/ndarray-base-broadcast-scalar-like';\nsetReadOnly( ns, 'broadcastScalarLike', broadcastScalarLike );\n\n/**\n* @name broadcastShapes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-shapes}\n*/\nimport broadcastShapes from '@stdlib/ndarray-base-broadcast-shapes';\nsetReadOnly( ns, 'broadcastShapes', broadcastShapes );\n\n/**\n* @name buffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer}\n*/\nimport buffer from '@stdlib/ndarray-base-buffer';\nsetReadOnly( ns, 'buffer', buffer );\n\n/**\n* @name bufferCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-ctors}\n*/\nimport bufferCtors from '@stdlib/ndarray-base-buffer-ctors';\nsetReadOnly( ns, 'bufferCtors', bufferCtors );\n\n/**\n* @name bufferDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype}\n*/\nimport bufferDataType from '@stdlib/ndarray-base-buffer-dtype';\nsetReadOnly( ns, 'bufferDataType', bufferDataType );\n\n/**\n* @name bufferDataTypeEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype-enum}\n*/\nimport bufferDataTypeEnum from '@stdlib/ndarray-base-buffer-dtype-enum';\nsetReadOnly( ns, 'bufferDataTypeEnum', bufferDataTypeEnum );\n\n/**\n* @name bytesPerElement\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bytes-per-element}\n*/\nimport bytesPerElement from '@stdlib/ndarray-base-bytes-per-element';\nsetReadOnly( ns, 'bytesPerElement', bytesPerElement );\n\n/**\n* @name char2dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/char2dtype}\n*/\nimport char2dtype from '@stdlib/ndarray-base-char2dtype';\nsetReadOnly( ns, 'char2dtype', char2dtype );\n\n/**\n* @name clampIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clamp-index}\n*/\nimport clampIndex from '@stdlib/ndarray-base-clamp-index';\nsetReadOnly( ns, 'clampIndex', clampIndex );\n\n/**\n* @name clipIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clip-index}\n*/\nimport clipIndex from '@stdlib/ndarray-base-clip-index';\nsetReadOnly( ns, 'clipIndex', clipIndex );\n\n/**\n* @name complementShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/complement-shape}\n*/\nimport complementShape from '@stdlib/ndarray-base-complement-shape';\nsetReadOnly( ns, 'complementShape', complementShape );\n\n/**\n* @name consensusOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/consensus-order}\n*/\nimport consensusOrder from '@stdlib/ndarray-base-consensus-order';\nsetReadOnly( ns, 'consensusOrder', consensusOrder );\n\n/**\n* @name copy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/copy}\n*/\nimport copy from '@stdlib/ndarray-base-copy';\nsetReadOnly( ns, 'copy', copy );\n\n/**\n* @name countFalsy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-falsy}\n*/\nimport countFalsy from '@stdlib/ndarray-base-count-falsy';\nsetReadOnly( ns, 'countFalsy', countFalsy );\n\n/**\n* @name countIf\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-if}\n*/\nimport countIf from '@stdlib/ndarray-base-count-if';\nsetReadOnly( ns, 'countIf', countIf );\n\n/**\n* @name countTruthy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/count-truthy}\n*/\nimport countTruthy from '@stdlib/ndarray-base-count-truthy';\nsetReadOnly( ns, 'countTruthy', countTruthy );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ctor}\n*/\nimport ndarray from '@stdlib/ndarray-base-ctor';\nsetReadOnly( ns, 'ndarray', ndarray );\n\n/**\n* @name data\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/data-buffer}\n*/\nimport data from '@stdlib/ndarray-base-data-buffer';\nsetReadOnly( ns, 'data', data );\n\n/**\n* @name descriptor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/descriptor}\n*/\nimport descriptor from '@stdlib/ndarray-base-descriptor';\nsetReadOnly( ns, 'descriptor', descriptor );\n\n/**\n* @name diagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/diagonal}\n*/\nimport diagonal from '@stdlib/ndarray-base-diagonal';\nsetReadOnly( ns, 'diagonal', diagonal );\n\n/**\n* @name dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype}\n*/\nimport dtype from '@stdlib/ndarray-base-dtype';\nsetReadOnly( ns, 'dtype', dtype );\n\n/**\n* @name dtypeAlignment\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-alignment}\n*/\nimport dtypeAlignment from '@stdlib/ndarray-base-dtype-alignment';\nsetReadOnly( ns, 'dtypeAlignment', dtypeAlignment );\n\n/**\n* @name dtypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-char}\n*/\nimport dtypeChar from '@stdlib/ndarray-base-dtype-char';\nsetReadOnly( ns, 'dtypeChar', dtypeChar );\n\n/**\n* @name dtypeChars\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-chars}\n*/\nimport dtypeChars from '@stdlib/ndarray-base-dtype-chars';\nsetReadOnly( ns, 'dtypeChars', dtypeChars );\n\n/**\n* @name dtypeDesc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-desc}\n*/\nimport dtypeDesc from '@stdlib/ndarray-base-dtype-desc';\nsetReadOnly( ns, 'dtypeDesc', dtypeDesc );\n\n/**\n* @name dtypeEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enum2str}\n*/\nimport dtypeEnum2Str from '@stdlib/ndarray-base-dtype-enum2str';\nsetReadOnly( ns, 'dtypeEnum2Str', dtypeEnum2Str );\n\n/**\n* @name dtypeEnums\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enums}\n*/\nimport dtypeEnums from '@stdlib/ndarray-base-dtype-enums';\nsetReadOnly( ns, 'dtypeEnums', dtypeEnums );\n\n/**\n* @name dtypeObjects\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-objects}\n*/\nimport dtypeObjects from '@stdlib/ndarray-base-dtype-objects';\nsetReadOnly( ns, 'dtypeObjects', dtypeObjects );\n\n/**\n* @name dtypeResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-enum}\n*/\nimport dtypeResolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nsetReadOnly( ns, 'dtypeResolveEnum', dtypeResolveEnum );\n\n/**\n* @name dtypeResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-str}\n*/\nimport dtypeResolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nsetReadOnly( ns, 'dtypeResolveStr', dtypeResolveStr );\n\n/**\n* @name dtypeStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-str2enum}\n*/\nimport dtypeStr2Enum from '@stdlib/ndarray-base-dtype-str2enum';\nsetReadOnly( ns, 'dtypeStr2Enum', dtypeStr2Enum );\n\n/**\n* @name dtypeStrings\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-strings}\n*/\nimport dtypeStrings from '@stdlib/ndarray-base-dtype-strings';\nsetReadOnly( ns, 'dtypeStrings', dtypeStrings );\n\n/**\n* @name dtype2c\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype2c}\n*/\nimport dtype2c from '@stdlib/ndarray-base-dtype2c';\nsetReadOnly( ns, 'dtype2c', dtype2c );\n\n/**\n* @name dtypes2enums\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2enums}\n*/\nimport dtypes2enums from '@stdlib/ndarray-base-dtypes2enums';\nsetReadOnly( ns, 'dtypes2enums', dtypes2enums );\n\n/**\n* @name dtypes2signatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2signatures}\n*/\nimport dtypes2signatures from '@stdlib/ndarray-base-dtypes2signatures';\nsetReadOnly( ns, 'dtypes2signatures', dtypes2signatures );\n\n/**\n* @name dtypes2strings\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2strings}\n*/\nimport dtypes2strings from '@stdlib/ndarray-base-dtypes2strings';\nsetReadOnly( ns, 'dtypes2strings', dtypes2strings );\n\n/**\n* @name empty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty}\n*/\nimport empty from '@stdlib/ndarray-base-empty';\nsetReadOnly( ns, 'empty', empty );\n\n/**\n* @name emptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty-like}\n*/\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nsetReadOnly( ns, 'emptyLike', emptyLike );\n\n/**\n* @name every\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/every}\n*/\nimport every from '@stdlib/ndarray-base-every';\nsetReadOnly( ns, 'every', every );\n\n/**\n* @name everyBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/every-by}\n*/\nimport everyBy from '@stdlib/ndarray-base-every-by';\nsetReadOnly( ns, 'everyBy', everyBy );\n\n/**\n* @name expandDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/expand-dimensions}\n*/\nimport expandDimensions from '@stdlib/ndarray-base-expand-dimensions';\nsetReadOnly( ns, 'expandDimensions', expandDimensions );\n\n/**\n* @name falses\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/falses}\n*/\nimport falses from '@stdlib/ndarray-base-falses';\nsetReadOnly( ns, 'falses', falses );\n\n/**\n* @name falsesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/falses-like}\n*/\nimport falsesLike from '@stdlib/ndarray-base-falses-like';\nsetReadOnly( ns, 'falsesLike', falsesLike );\n\n/**\n* @name fill\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill}\n*/\nimport fill from '@stdlib/ndarray-base-fill';\nsetReadOnly( ns, 'fill', fill );\n\n/**\n* @name fillBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill-by}\n*/\nimport fillBy from '@stdlib/ndarray-base-fill-by';\nsetReadOnly( ns, 'fillBy', fillBy );\n\n/**\n* @name fillDiagonal\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fill-diagonal}\n*/\nimport fillDiagonal from '@stdlib/ndarray-base-fill-diagonal';\nsetReadOnly( ns, 'fillDiagonal', fillDiagonal );\n\n/**\n* @name find\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/find}\n*/\nimport find from '@stdlib/ndarray-base-find';\nsetReadOnly( ns, 'find', find );\n\n/**\n* @name flag\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flag}\n*/\nimport flag from '@stdlib/ndarray-base-flag';\nsetReadOnly( ns, 'flag', flag );\n\n/**\n* @name flags\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flags}\n*/\nimport flags from '@stdlib/ndarray-base-flags';\nsetReadOnly( ns, 'flags', flags );\n\n/**\n* @name flattenShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flatten-shape}\n*/\nimport flattenShape from '@stdlib/ndarray-base-flatten-shape';\nsetReadOnly( ns, 'flattenShape', flattenShape );\n\n/**\n* @name flattenShapeFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flatten-shape-from}\n*/\nimport flattenShapeFrom from '@stdlib/ndarray-base-flatten-shape-from';\nsetReadOnly( ns, 'flattenShapeFrom', flattenShapeFrom );\n\n/**\n* @name fliplr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fliplr}\n*/\nimport fliplr from '@stdlib/ndarray-base-fliplr';\nsetReadOnly( ns, 'fliplr', fliplr );\n\n/**\n* @name flipud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flipud}\n*/\nimport flipud from '@stdlib/ndarray-base-flipud';\nsetReadOnly( ns, 'flipud', flipud );\n\n/**\n* @name forEach\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/for-each}\n*/\nimport forEach from '@stdlib/ndarray-base-for-each';\nsetReadOnly( ns, 'forEach', forEach );\n\n/**\n* @name array2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-array}\n*/\nimport array2ndarray from '@stdlib/ndarray-base-from-array';\nsetReadOnly( ns, 'array2ndarray', array2ndarray );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar}\n*/\nimport scalar2ndarray from '@stdlib/ndarray-base-from-scalar';\nsetReadOnly( ns, 'scalar2ndarray', scalar2ndarray );\n\n/**\n* @name scalar2ndarrayLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar-like}\n*/\nimport scalar2ndarrayLike from '@stdlib/ndarray-base-from-scalar-like';\nsetReadOnly( ns, 'scalar2ndarrayLike', scalar2ndarrayLike );\n\n/**\n* @name full\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/full}\n*/\nimport full from '@stdlib/ndarray-base-full';\nsetReadOnly( ns, 'full', full );\n\n/**\n* @name fullBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/full-by}\n*/\nimport fullBy from '@stdlib/ndarray-base-full-by';\nsetReadOnly( ns, 'fullBy', fullBy );\n\n/**\n* @name includes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/includes}\n*/\nimport includes from '@stdlib/ndarray-base-includes';\nsetReadOnly( ns, 'includes', includes );\n\n/**\n* @name ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind}\n*/\nimport ind from '@stdlib/ndarray-base-ind';\nsetReadOnly( ns, 'ind', ind );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind2sub}\n*/\nimport ind2sub from '@stdlib/ndarray-base-ind2sub';\nsetReadOnly( ns, 'ind2sub', ind2sub );\n\n/**\n* @name iterationOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/iteration-order}\n*/\nimport iterationOrder from '@stdlib/ndarray-base-iteration-order';\nsetReadOnly( ns, 'iterationOrder', iterationOrder );\n\n/**\n* @name loopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/loop-interchange-order}\n*/\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\nsetReadOnly( ns, 'loopOrder', loopOrder );\n\n/**\n* @name map\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/map}\n*/\nimport map from '@stdlib/ndarray-base-map';\nsetReadOnly( ns, 'map', map );\n\n/**\n* @name maxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/max-view-buffer-index}\n*/\nimport maxViewBufferIndex from '@stdlib/ndarray-base-max-view-buffer-index';\nsetReadOnly( ns, 'maxViewBufferIndex', maxViewBufferIndex );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array}\n*/\nimport maybeBroadcastArray from '@stdlib/ndarray-base-maybe-broadcast-array';\nsetReadOnly( ns, 'maybeBroadcastArray', maybeBroadcastArray );\n\n/**\n* @name maybeBroadcastArrayExceptDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array-except-dimensions}\n*/\nimport maybeBroadcastArrayExceptDimensions from '@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions';\nsetReadOnly( ns, 'maybeBroadcastArrayExceptDimensions', maybeBroadcastArrayExceptDimensions );\n\n/**\n* @name maybeBroadcastArrays\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-arrays}\n*/\nimport maybeBroadcastArrays from '@stdlib/ndarray-base-maybe-broadcast-arrays';\nsetReadOnly( ns, 'maybeBroadcastArrays', maybeBroadcastArrays );\n\n/**\n* @name metaDataProps\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/meta-data-props}\n*/\nimport metaDataProps from '@stdlib/ndarray-base-meta-data-props';\nsetReadOnly( ns, 'metaDataProps', metaDataProps );\n\n/**\n* @name minSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-signed-integer-dtype}\n*/\nimport minSignedIntegerDataType from '@stdlib/ndarray-base-min-signed-integer-dtype';\nsetReadOnly( ns, 'minSignedIntegerDataType', minSignedIntegerDataType );\n\n/**\n* @name minUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-unsigned-integer-dtype}\n*/\nimport minUnsignedIntegerDataType from '@stdlib/ndarray-base-min-unsigned-integer-dtype';\nsetReadOnly( ns, 'minUnsignedIntegerDataType', minUnsignedIntegerDataType );\n\n/**\n* @name minViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-view-buffer-index}\n*/\nimport minViewBufferIndex from '@stdlib/ndarray-base-min-view-buffer-index';\nsetReadOnly( ns, 'minViewBufferIndex', minViewBufferIndex );\n\n/**\n* @name minmaxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/minmax-view-buffer-index}\n*/\nimport minmaxViewBufferIndex from '@stdlib/ndarray-base-minmax-view-buffer-index';\nsetReadOnly( ns, 'minmaxViewBufferIndex', minmaxViewBufferIndex );\n\n/**\n* @name nans\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nans}\n*/\nimport nans from '@stdlib/ndarray-base-nans';\nsetReadOnly( ns, 'nans', nans );\n\n/**\n* @name nansLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nans-like}\n*/\nimport nansLike from '@stdlib/ndarray-base-nans-like';\nsetReadOnly( ns, 'nansLike', nansLike );\n\n/**\n* @name ndarraylike2descriptor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2descriptor}\n*/\nimport ndarraylike2descriptor from '@stdlib/ndarray-base-ndarraylike2descriptor';\nsetReadOnly( ns, 'ndarraylike2descriptor', ndarraylike2descriptor );\n\n/**\n* @name ndarraylike2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2ndarray}\n*/\nimport ndarraylike2ndarray from '@stdlib/ndarray-base-ndarraylike2ndarray';\nsetReadOnly( ns, 'ndarraylike2ndarray', ndarraylike2ndarray );\n\n/**\n* @name ndarraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2object}\n*/\nimport ndarraylike2object from '@stdlib/ndarray-base-ndarraylike2object';\nsetReadOnly( ns, 'ndarraylike2object', ndarraylike2object );\n\n/**\n* @name ndarraylike2scalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2scalar}\n*/\nimport ndarraylike2scalar from '@stdlib/ndarray-base-ndarraylike2scalar';\nsetReadOnly( ns, 'ndarraylike2scalar', ndarraylike2scalar );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndims}\n*/\nimport ndims from '@stdlib/ndarray-base-ndims';\nsetReadOnly( ns, 'ndims', ndims );\n\n/**\n* @name nextCartesianIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/next-cartesian-index}\n*/\nimport nextCartesianIndex from '@stdlib/ndarray-base-next-cartesian-index';\nsetReadOnly( ns, 'nextCartesianIndex', nextCartesianIndex );\n\n/**\n* @name nonsingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nonsingleton-dimensions}\n*/\nimport nonsingletonDimensions from '@stdlib/ndarray-base-nonsingleton-dimensions';\nsetReadOnly( ns, 'nonsingletonDimensions', nonsingletonDimensions );\n\n/**\n* @name normalizeIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-index}\n*/\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nsetReadOnly( ns, 'normalizeIndex', normalizeIndex );\n\n/**\n* @name normalizeIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-indices}\n*/\nimport normalizeIndices from '@stdlib/ndarray-base-normalize-indices';\nsetReadOnly( ns, 'normalizeIndices', normalizeIndices );\n\n/**\n* @name nullary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary}\n*/\nimport nullary from '@stdlib/ndarray-base-nullary';\nsetReadOnly( ns, 'nullary', nullary );\n\n/**\n* @name nullaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-loop-interchange-order}\n*/\nimport nullaryLoopOrder from '@stdlib/ndarray-base-nullary-loop-interchange-order';\nsetReadOnly( ns, 'nullaryLoopOrder', nullaryLoopOrder );\n\n/**\n* @name nullaryStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d}\n*/\nimport nullaryStrided1d from '@stdlib/ndarray-base-nullary-strided1d';\nsetReadOnly( ns, 'nullaryStrided1d', nullaryStrided1d );\n\n/**\n* @name nullaryStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch}\n*/\nimport nullaryStrided1dDispatch from '@stdlib/ndarray-base-nullary-strided1d-dispatch';\nsetReadOnly( ns, 'nullaryStrided1dDispatch', nullaryStrided1dDispatch );\n\n/**\n* @name nullaryStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch-factory}\n*/\nimport nullaryStrided1dDispatchFactory from '@stdlib/ndarray-base-nullary-strided1d-dispatch-factory';\nsetReadOnly( ns, 'nullaryStrided1dDispatchFactory', nullaryStrided1dDispatchFactory );\n\n/**\n* @name nullaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-tiling-block-size}\n*/\nimport nullaryBlockSize from '@stdlib/ndarray-base-nullary-tiling-block-size';\nsetReadOnly( ns, 'nullaryBlockSize', nullaryBlockSize );\n\n/**\n* @name nulls\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nulls}\n*/\nimport nulls from '@stdlib/ndarray-base-nulls';\nsetReadOnly( ns, 'nulls', nulls );\n\n/**\n* @name nullsLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nulls-like}\n*/\nimport nullsLike from '@stdlib/ndarray-base-nulls-like';\nsetReadOnly( ns, 'nullsLike', nullsLike );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel}\n*/\nimport numel from '@stdlib/ndarray-base-numel';\nsetReadOnly( ns, 'numel', numel );\n\n/**\n* @name numelDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel-dimension}\n*/\nimport numelDimension from '@stdlib/ndarray-base-numel-dimension';\nsetReadOnly( ns, 'numelDimension', numelDimension );\n\n/**\n* @name offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offset}\n*/\nimport offset from '@stdlib/ndarray-base-offset';\nsetReadOnly( ns, 'offset', offset );\n\n/**\n* @name offsets\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offsets}\n*/\nimport offsets from '@stdlib/ndarray-base-offsets';\nsetReadOnly( ns, 'offsets', offsets );\n\n/**\n* @name ones\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ones}\n*/\nimport ones from '@stdlib/ndarray-base-ones';\nsetReadOnly( ns, 'ones', ones );\n\n/**\n* @name onesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ones-like}\n*/\nimport onesLike from '@stdlib/ndarray-base-ones-like';\nsetReadOnly( ns, 'onesLike', onesLike );\n\n/**\n* @name order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/order}\n*/\nimport order from '@stdlib/ndarray-base-order';\nsetReadOnly( ns, 'order', order );\n\n/**\n* @name outputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-dtype}\n*/\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\nsetReadOnly( ns, 'outputDataType', outputDataType );\n\n/**\n* @name outputOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-order}\n*/\nimport outputOrder from '@stdlib/ndarray-base-output-order';\nsetReadOnly( ns, 'outputOrder', outputOrder );\n\n/**\n* @name outputPolicyEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-enum2str}\n*/\nimport outputPolicyEnum2Str from '@stdlib/ndarray-base-output-policy-enum2str';\nsetReadOnly( ns, 'outputPolicyEnum2Str', outputPolicyEnum2Str );\n\n/**\n* @name outputPolicyResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-enum}\n*/\nimport outputPolicyResolveEnum from '@stdlib/ndarray-base-output-policy-resolve-enum';\nsetReadOnly( ns, 'outputPolicyResolveEnum', outputPolicyResolveEnum );\n\n/**\n* @name outputPolicyResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-str}\n*/\nimport outputPolicyResolveStr from '@stdlib/ndarray-base-output-policy-resolve-str';\nsetReadOnly( ns, 'outputPolicyResolveStr', outputPolicyResolveStr );\n\n/**\n* @name outputPolicyStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-str2enum}\n*/\nimport outputPolicyStr2Enum from '@stdlib/ndarray-base-output-policy-str2enum';\nsetReadOnly( ns, 'outputPolicyStr2Enum', outputPolicyStr2Enum );\n\n/**\n* @name pop\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/pop}\n*/\nimport pop from '@stdlib/ndarray-base-pop';\nsetReadOnly( ns, 'pop', pop );\n\n/**\n* @name prependSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/prepend-singleton-dimensions}\n*/\nimport prependSingletonDimensions from '@stdlib/ndarray-base-prepend-singleton-dimensions';\nsetReadOnly( ns, 'prependSingletonDimensions', prependSingletonDimensions );\n\n/**\n* @name promoteDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/promote-dtypes}\n*/\nimport promoteDataTypes from '@stdlib/ndarray-base-promote-dtypes';\nsetReadOnly( ns, 'promoteDataTypes', promoteDataTypes );\n\n/**\n* @name quaternaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quaternary-loop-interchange-order}\n*/\nimport quaternaryLoopOrder from '@stdlib/ndarray-base-quaternary-loop-interchange-order';\nsetReadOnly( ns, 'quaternaryLoopOrder', quaternaryLoopOrder );\n\n/**\n* @name quaternaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quaternary-tiling-block-size}\n*/\nimport quaternaryBlockSize from '@stdlib/ndarray-base-quaternary-tiling-block-size';\nsetReadOnly( ns, 'quaternaryBlockSize', quaternaryBlockSize );\n\n/**\n* @name quinaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quinary-loop-interchange-order}\n*/\nimport quinaryLoopOrder from '@stdlib/ndarray-base-quinary-loop-interchange-order';\nsetReadOnly( ns, 'quinaryLoopOrder', quinaryLoopOrder );\n\n/**\n* @name quinaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/quinary-tiling-block-size}\n*/\nimport quinaryBlockSize from '@stdlib/ndarray-base-quinary-tiling-block-size';\nsetReadOnly( ns, 'quinaryBlockSize', quinaryBlockSize );\n\n/**\n* @name reinterpretBoolean\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-boolean}\n*/\nimport reinterpretBoolean from '@stdlib/ndarray-base-reinterpret-boolean';\nsetReadOnly( ns, 'reinterpretBoolean', reinterpretBoolean );\n\n/**\n* @name reinterpretComplex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex}\n*/\nimport reinterpretComplex from '@stdlib/ndarray-base-reinterpret-complex';\nsetReadOnly( ns, 'reinterpretComplex', reinterpretComplex );\n\n/**\n* @name reinterpretComplex64\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex64}\n*/\nimport reinterpretComplex64 from '@stdlib/ndarray-base-reinterpret-complex64';\nsetReadOnly( ns, 'reinterpretComplex64', reinterpretComplex64 );\n\n/**\n* @name reinterpretComplex128\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reinterpret-complex128}\n*/\nimport reinterpretComplex128 from '@stdlib/ndarray-base-reinterpret-complex128';\nsetReadOnly( ns, 'reinterpretComplex128', reinterpretComplex128 );\n\n/**\n* @name removeSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/remove-singleton-dimensions}\n*/\nimport removeSingletonDimensions from '@stdlib/ndarray-base-remove-singleton-dimensions';\nsetReadOnly( ns, 'removeSingletonDimensions', removeSingletonDimensions );\n\n/**\n* @name reverse\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse}\n*/\nimport reverse from '@stdlib/ndarray-base-reverse';\nsetReadOnly( ns, 'reverse', reverse );\n\n/**\n* @name reverseDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimension}\n*/\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nsetReadOnly( ns, 'reverseDimension', reverseDimension );\n\n/**\n* @name reverseDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimensions}\n*/\nimport reverseDimensions from '@stdlib/ndarray-base-reverse-dimensions';\nsetReadOnly( ns, 'reverseDimensions', reverseDimensions );\n\n/**\n* @name rot90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rot90}\n*/\nimport rot90 from '@stdlib/ndarray-base-rot90';\nsetReadOnly( ns, 'rot90', rot90 );\n\n/**\n* @name rot180\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rot180}\n*/\nimport rot180 from '@stdlib/ndarray-base-rot180';\nsetReadOnly( ns, 'rot180', rot180 );\n\n/**\n* @name rotl90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rotl90}\n*/\nimport rotl90 from '@stdlib/ndarray-base-rotl90';\nsetReadOnly( ns, 'rotl90', rotl90 );\n\n/**\n* @name rotr90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/rotr90}\n*/\nimport rotr90 from '@stdlib/ndarray-base-rotr90';\nsetReadOnly( ns, 'rotr90', rotr90 );\n\n/**\n* @name serializeMetaData\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/serialize-meta-data}\n*/\nimport serializeMetaData from '@stdlib/ndarray-base-serialize-meta-data';\nsetReadOnly( ns, 'serializeMetaData', serializeMetaData );\n\n/**\n* @name setDescriptorOffsets\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/set-descriptor-offsets}\n*/\nimport setDescriptorOffsets from '@stdlib/ndarray-base-set-descriptor-offsets';\nsetReadOnly( ns, 'setDescriptorOffsets', setDescriptorOffsets );\n\n/**\n* @name shape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape}\n*/\nimport shape from '@stdlib/ndarray-base-shape';\nsetReadOnly( ns, 'shape', shape );\n\n/**\n* @name shape2strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape2strides}\n*/\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nsetReadOnly( ns, 'shape2strides', shape2strides );\n\n/**\n* @name shift\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shift}\n*/\nimport shift from '@stdlib/ndarray-base-shift';\nsetReadOnly( ns, 'shift', shift );\n\n/**\n* @name singletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/singleton-dimensions}\n*/\nimport singletonDimensions from '@stdlib/ndarray-base-singleton-dimensions';\nsetReadOnly( ns, 'singletonDimensions', singletonDimensions );\n\n/**\n* @name slice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice}\n*/\nimport slice from '@stdlib/ndarray-base-slice';\nsetReadOnly( ns, 'slice', slice );\n\n/**\n* @name sliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-assign}\n*/\nimport sliceAssign from '@stdlib/ndarray-base-slice-assign';\nsetReadOnly( ns, 'sliceAssign', sliceAssign );\n\n/**\n* @name sliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension}\n*/\nimport sliceDimension from '@stdlib/ndarray-base-slice-dimension';\nsetReadOnly( ns, 'sliceDimension', sliceDimension );\n\n/**\n* @name sliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-from}\n*/\nimport sliceDimensionFrom from '@stdlib/ndarray-base-slice-dimension-from';\nsetReadOnly( ns, 'sliceDimensionFrom', sliceDimensionFrom );\n\n/**\n* @name sliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-to}\n*/\nimport sliceDimensionTo from '@stdlib/ndarray-base-slice-dimension-to';\nsetReadOnly( ns, 'sliceDimensionTo', sliceDimensionTo );\n\n/**\n* @name sliceFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-from}\n*/\nimport sliceFrom from '@stdlib/ndarray-base-slice-from';\nsetReadOnly( ns, 'sliceFrom', sliceFrom );\n\n/**\n* @name sliceTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-to}\n*/\nimport sliceTo from '@stdlib/ndarray-base-slice-to';\nsetReadOnly( ns, 'sliceTo', sliceTo );\n\n/**\n* @name some\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/some}\n*/\nimport some from '@stdlib/ndarray-base-some';\nsetReadOnly( ns, 'some', some );\n\n/**\n* @name someBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/some-by}\n*/\nimport someBy from '@stdlib/ndarray-base-some-by';\nsetReadOnly( ns, 'someBy', someBy );\n\n/**\n* @name spreadDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/spread-dimensions}\n*/\nimport spreadDimensions from '@stdlib/ndarray-base-spread-dimensions';\nsetReadOnly( ns, 'spreadDimensions', spreadDimensions );\n\n/**\n* @name stride\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/stride}\n*/\nimport stride from '@stdlib/ndarray-base-stride';\nsetReadOnly( ns, 'stride', stride );\n\n/**\n* @name strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides}\n*/\nimport strides from '@stdlib/ndarray-base-strides';\nsetReadOnly( ns, 'strides', strides );\n\n/**\n* @name strides2offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2offset}\n*/\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nsetReadOnly( ns, 'strides2offset', strides2offset );\n\n/**\n* @name strides2order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2order}\n*/\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nsetReadOnly( ns, 'strides2order', strides2order );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/sub2ind}\n*/\nimport sub2ind from '@stdlib/ndarray-base-sub2ind';\nsetReadOnly( ns, 'sub2ind', sub2ind );\n\n/**\n* @name ternary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary}\n*/\nimport ternary from '@stdlib/ndarray-base-ternary';\nsetReadOnly( ns, 'ternary', ternary );\n\n/**\n* @name ternaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-loop-interchange-order}\n*/\nimport ternaryLoopOrder from '@stdlib/ndarray-base-ternary-loop-interchange-order';\nsetReadOnly( ns, 'ternaryLoopOrder', ternaryLoopOrder );\n\n/**\n* @name ternaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-output-dtype}\n*/\nimport ternaryOutputDataType from '@stdlib/ndarray-base-ternary-output-dtype';\nsetReadOnly( ns, 'ternaryOutputDataType', ternaryOutputDataType );\n\n/**\n* @name ternaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ternary-tiling-block-size}\n*/\nimport ternaryBlockSize from '@stdlib/ndarray-base-ternary-tiling-block-size';\nsetReadOnly( ns, 'ternaryBlockSize', ternaryBlockSize );\n\n/**\n* @name tile\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/tile}\n*/\nimport tile from '@stdlib/ndarray-base-tile';\nsetReadOnly( ns, 'tile', tile );\n\n/**\n* @name blockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/tiling-block-size}\n*/\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\nsetReadOnly( ns, 'blockSize', blockSize );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-array}\n*/\nimport ndarray2array from '@stdlib/ndarray-base-to-array';\nsetReadOnly( ns, 'ndarray2array', ndarray2array );\n\n/**\n* @name toFlippedlr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-flippedlr}\n*/\nimport toFlippedlr from '@stdlib/ndarray-base-to-flippedlr';\nsetReadOnly( ns, 'toFlippedlr', toFlippedlr );\n\n/**\n* @name toFlippedud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-flippedud}\n*/\nimport toFlippedud from '@stdlib/ndarray-base-to-flippedud';\nsetReadOnly( ns, 'toFlippedud', toFlippedud );\n\n/**\n* @name toNormalizedIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-normalized-indices}\n*/\nimport toNormalizedIndices from '@stdlib/ndarray-base-to-normalized-indices';\nsetReadOnly( ns, 'toNormalizedIndices', toNormalizedIndices );\n\n/**\n* @name toReversed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed}\n*/\nimport toReversed from '@stdlib/ndarray-base-to-reversed';\nsetReadOnly( ns, 'toReversed', toReversed );\n\n/**\n* @name toReversedDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed-dimension}\n*/\nimport toReversedDimension from '@stdlib/ndarray-base-to-reversed-dimension';\nsetReadOnly( ns, 'toReversedDimension', toReversedDimension );\n\n/**\n* @name toReversedDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-reversed-dimensions}\n*/\nimport toReversedDimensions from '@stdlib/ndarray-base-to-reversed-dimensions';\nsetReadOnly( ns, 'toReversedDimensions', toReversedDimensions );\n\n/**\n* @name toRot90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rot90}\n*/\nimport toRot90 from '@stdlib/ndarray-base-to-rot90';\nsetReadOnly( ns, 'toRot90', toRot90 );\n\n/**\n* @name toRot180\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rot180}\n*/\nimport toRot180 from '@stdlib/ndarray-base-to-rot180';\nsetReadOnly( ns, 'toRot180', toRot180 );\n\n/**\n* @name toRotl90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rotl90}\n*/\nimport toRotl90 from '@stdlib/ndarray-base-to-rotl90';\nsetReadOnly( ns, 'toRotl90', toRotl90 );\n\n/**\n* @name toRotr90\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-rotr90}\n*/\nimport toRotr90 from '@stdlib/ndarray-base-to-rotr90';\nsetReadOnly( ns, 'toRotr90', toRotr90 );\n\n/**\n* @name toTransposed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-transposed}\n*/\nimport toTransposed from '@stdlib/ndarray-base-to-transposed';\nsetReadOnly( ns, 'toTransposed', toTransposed );\n\n/**\n* @name toUnflattened\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-unflattened}\n*/\nimport toUnflattened from '@stdlib/ndarray-base-to-unflattened';\nsetReadOnly( ns, 'toUnflattened', toUnflattened );\n\n/**\n* @name toUniqueNormalizedIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-unique-normalized-indices}\n*/\nimport toUniqueNormalizedIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nsetReadOnly( ns, 'toUniqueNormalizedIndices', toUniqueNormalizedIndices );\n\n/**\n* @name transpose\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/transpose}\n*/\nimport transpose from '@stdlib/ndarray-base-transpose';\nsetReadOnly( ns, 'transpose', transpose );\n\n/**\n* @name trues\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/trues}\n*/\nimport trues from '@stdlib/ndarray-base-trues';\nsetReadOnly( ns, 'trues', trues );\n\n/**\n* @name truesLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/trues-like}\n*/\nimport truesLike from '@stdlib/ndarray-base-trues-like';\nsetReadOnly( ns, 'truesLike', truesLike );\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary}\n*/\nimport unary from '@stdlib/ndarray-base-unary';\nsetReadOnly( ns, 'unary', unary );\n\n/**\n* @name unaryAccumulate\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-accumulate}\n*/\nimport unaryAccumulate from '@stdlib/ndarray-base-unary-accumulate';\nsetReadOnly( ns, 'unaryAccumulate', unaryAccumulate );\n\n/**\n* @name unaryAddonDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-addon-dispatch}\n*/\nimport unaryAddonDispatch from '@stdlib/ndarray-base-unary-addon-dispatch';\nsetReadOnly( ns, 'unaryAddonDispatch', unaryAddonDispatch );\n\n/**\n* @name unaryBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-by}\n*/\nimport unaryBy from '@stdlib/ndarray-base-unary-by';\nsetReadOnly( ns, 'unaryBy', unaryBy );\n\n/**\n* @name unaryInputCastingDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-input-casting-dtype}\n*/\nimport unaryInputCastingDataType from '@stdlib/ndarray-base-unary-input-casting-dtype';\nsetReadOnly( ns, 'unaryInputCastingDataType', unaryInputCastingDataType );\n\n/**\n* @name unaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-loop-interchange-order}\n*/\nimport unaryLoopOrder from '@stdlib/ndarray-base-unary-loop-interchange-order';\nsetReadOnly( ns, 'unaryLoopOrder', unaryLoopOrder );\n\n/**\n* @name unaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-output-dtype}\n*/\nimport unaryOutputDataType from '@stdlib/ndarray-base-unary-output-dtype';\nsetReadOnly( ns, 'unaryOutputDataType', unaryOutputDataType );\n\n/**\n* @name unaryReduceStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d}\n*/\nimport unaryReduceStrided1d from '@stdlib/ndarray-base-unary-reduce-strided1d';\nsetReadOnly( ns, 'unaryReduceStrided1d', unaryReduceStrided1d );\n\n/**\n* @name unaryReduceStrided1dAssignStruct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-assign-struct}\n*/\nimport unaryReduceStrided1dAssignStruct from '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct';\nsetReadOnly( ns, 'unaryReduceStrided1dAssignStruct', unaryReduceStrided1dAssignStruct );\n\n/**\n* @name unaryReduceStrided1dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-by}\n*/\nimport unaryReduceStrided1dBy from '@stdlib/ndarray-base-unary-reduce-strided1d-by';\nsetReadOnly( ns, 'unaryReduceStrided1dBy', unaryReduceStrided1dBy );\n\n/**\n* @name unaryReduceStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch}\n*/\nimport unaryReduceStrided1dDispatch from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatch', unaryReduceStrided1dDispatch );\n\n/**\n* @name unaryReduceStrided1dDispatchBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by}\n*/\nimport unaryReduceStrided1dDispatchBy from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchBy', unaryReduceStrided1dDispatchBy );\n\n/**\n* @name unaryReduceStrided1dDispatchByFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by-factory}\n*/\nimport unaryReduceStrided1dDispatchByFactory from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchByFactory', unaryReduceStrided1dDispatchByFactory );\n\n/**\n* @name unaryReduceStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-factory}\n*/\nimport unaryReduceStrided1dDispatchFactory from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory';\nsetReadOnly( ns, 'unaryReduceStrided1dDispatchFactory', unaryReduceStrided1dDispatchFactory );\n\n/**\n* @name unaryReduceSubarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray}\n*/\nimport unaryReduceSubarray from '@stdlib/ndarray-base-unary-reduce-subarray';\nsetReadOnly( ns, 'unaryReduceSubarray', unaryReduceSubarray );\n\n/**\n* @name unaryReduceSubarrayBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray-by}\n*/\nimport unaryReduceSubarrayBy from '@stdlib/ndarray-base-unary-reduce-subarray-by';\nsetReadOnly( ns, 'unaryReduceSubarrayBy', unaryReduceSubarrayBy );\n\n/**\n* @name unaryStrided1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d}\n*/\nimport unaryStrided1d from '@stdlib/ndarray-base-unary-strided1d';\nsetReadOnly( ns, 'unaryStrided1d', unaryStrided1d );\n\n/**\n* @name unaryStrided1dDispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch}\n*/\nimport unaryStrided1dDispatch from '@stdlib/ndarray-base-unary-strided1d-dispatch';\nsetReadOnly( ns, 'unaryStrided1dDispatch', unaryStrided1dDispatch );\n\n/**\n* @name unaryStrided1dDispatchFactory\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch-factory}\n*/\nimport unaryStrided1dDispatchFactory from '@stdlib/ndarray-base-unary-strided1d-dispatch-factory';\nsetReadOnly( ns, 'unaryStrided1dDispatchFactory', unaryStrided1dDispatchFactory );\n\n/**\n* @name unaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-tiling-block-size}\n*/\nimport unaryBlockSize from '@stdlib/ndarray-base-unary-tiling-block-size';\nsetReadOnly( ns, 'unaryBlockSize', unaryBlockSize );\n\n/**\n* @name unflatten\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unflatten}\n*/\nimport unflatten from '@stdlib/ndarray-base-unflatten';\nsetReadOnly( ns, 'unflatten', unflatten );\n\n/**\n* @name unflattenShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unflatten-shape}\n*/\nimport unflattenShape from '@stdlib/ndarray-base-unflatten-shape';\nsetReadOnly( ns, 'unflattenShape', unflattenShape );\n\n/**\n* @name vind2bind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/vind2bind}\n*/\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\nsetReadOnly( ns, 'vind2bind', vind2bind );\n\n/**\n* @name wrapIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/wrap-index}\n*/\nimport wrapIndex from '@stdlib/ndarray-base-wrap-index';\nsetReadOnly( ns, 'wrapIndex', wrapIndex );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros}\n*/\nimport zeros from '@stdlib/ndarray-base-zeros';\nsetReadOnly( ns, 'zeros', zeros );\n\n/**\n* @name zerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros-like}\n*/\nimport zerosLike from '@stdlib/ndarray-base-zeros-like';\nsetReadOnly( ns, 'zerosLike', zerosLike );\n\n/**\n* @name zip2views1d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zip2views1d}\n*/\nimport zip2views1d from '@stdlib/ndarray-base-zip2views1d';\nsetReadOnly( ns, 'zip2views1d', zip2views1d );\n\n\n// EXPORTS //\n\nexport default ns;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Returns an array with a specified number of appended singleton dimensions.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeInteger} n - number of singleton dimensions to append\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = appendSingletonDimensions( x, 3, false );\n* // returns [ [ [ [ [ 1 ] ] ], [ [ [ 2 ] ] ] ], [ [ [ [ 3 ] ] ], [ [ [ 4 ] ] ] ] ]\n*/\nfunction appendSingletonDimensions( x, n, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar s;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Copy existing dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\t// Append singleton dimensions...\n\ts = ( N > 0 ) ? st[ N-1 ] : st[ 0 ];\n\tfor ( i = 0; i < n; i++ ) {\n\t\tshape.push( 1 );\n\t\tstrides.push( s );\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default appendSingletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcast from '@stdlib/ndarray-base-broadcast-array';\nimport diagonal from '@stdlib/ndarray-base-diagonal';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Assigns elements from a broadcasted input ndarray to a specified diagonal of an output ndarray.\n*\n* ## Notes\n*\n* - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n* - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function assigns to the main diagonal; when `k > 0`, the function assigns to a diagonal above the main diagonal; and when `k < 0`, the function assigns to a diagonal below the main diagonal.\n* - The input ndarray must be broadcast compatible with the output ndarray view defined by the specified diagonal.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {IntegerArray} dims - dimension indices defining the plane in which to assign elements to the diagonal\n* @param {integer} k - diagonal offset\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} output ndarray must have at least two dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @throws {Error} input ndarray must be broadcast compatible with the output ndarray diagonal view\n* @returns {ndarray} output ndarray\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var y = zeros( [ 3, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ]\n*\n* var out = assignDiagonal( [ x, y ], [ 0, 1 ], 0 );\n* // returns [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction assignDiagonal( arrays, dims, k ) {\n\tvar view;\n\tvar x;\n\n\t// Create a writable output array view of the specified diagonal:\n\tview = diagonal( arrays[ 1 ], dims, k, true );\n\n\t// Broadcast the input array to the diagonal view shape:\n\tx = broadcast( arrays[ 0 ], getShape( view, false ) );\n\n\t// Assign elements from the broadcasted input array to the output array view:\n\tassign( [ x, view ] );\n\n\t// Return the original output ndarray:\n\treturn arrays[ 1 ];\n}\n\n\n// EXPORTS //\n\nexport default assignDiagonal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least one dimension.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = scalar2ndarray( 3.14 );\n* // returns [ 3.14 ]\n*\n* var out = atleast1d( [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleast1d( arrays ) {\n\treturn atleastnd( 1, arrays );\n}\n\n\n// EXPORTS //\n\nexport default atleast1d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least two dimensions.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = scalar2ndarray( 3.14 );\n* // returns [ 3.14 ]\n*\n* var out = atleast2d( [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleast2d( arrays ) {\n\treturn atleastnd( 2, arrays );\n}\n\n\n// EXPORTS //\n\nexport default atleast2d;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport atleastnd from '@stdlib/ndarray-base-atleastnd';\n\n\n// MAIN //\n\n/**\n* Converts a list of values (scalars and/or ndarrays) to ndarrays having at least three dimensions.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing a list of scalars and/or ndarrays\n* @returns {Array} list of ndarrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ] ]\n*\n* var y = scalar2ndarray( 3.14 );\n* // returns [ 3.14 ]\n*\n* var out = atleast3d( [ x, y ] );\n* // returns [ , ]\n*/\nfunction atleast3d( arrays ) {\n\treturn atleastnd( 3, arrays );\n}\n\n\n// EXPORTS //\n\nexport default atleast3d;\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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport BinaryStrided1dDispatch from '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction on two input ndarrays.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {ArrayLikeObject} [table.types] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {ArrayLikeObject} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {Function} function for performing a reduction on two ndarrays\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = factory( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var z = dot( x, y );\n* // returns [ -5.0 ]\n*\n* @example\n* import base from '@stdlib/blas-base-ndarray-gdot';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'promoted',\n* 'casting': 'promoted'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var dot = factory( table, [ idt, idt ], odt, policies );\n*\n* var xbuf = [ 4.0, 2.0, -3.0, 5.0, -1.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 2.0, 6.0, -1.0, -4.0, 8.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var zbuf = [ 0.0 ];\n* var z = new ndarray( 'generic', zbuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = dot.assign( x, y, z );\n* // returns [ -5.0 ]\n*\n* var bool = ( out === z );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies ) {\n\tvar f = new BinaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Performs a reduction on two provided input ndarrays.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - first input ndarray\n\t* @param {ndarrayLike} y - second input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n\t* @param {*} [options.dtype] - output ndarray data type\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} second argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Performs a reduction on two provided input ndarrays and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - first input ndarray\n\t* @param {ndarrayLike} y - second input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} second argument must be an ndarray\n\t* @throws {TypeError} second argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isColumnMajor from '@stdlib/ndarray-base-assert-is-column-major-string';\nimport trunc from '@stdlib/math-base-special-trunc';\nimport abs from '@stdlib/math-base-special-abs';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an underlying data buffer to a linear index in an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an underlying data buffer\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an array view\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = bind2vind( shape, strides, offset, order, 7, mode );\n* // returns 1\n*/\nfunction bind2vind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a buffer index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the array view (i.e., where all strides are positive and offset is 0)...\n\tind = 0;\n\tif ( isColumnMajor( order ) ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tk += shape[ i ] - 1;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t}\n\t\t\tind += k * abs( s );\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tk += shape[ i ] - 1;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t}\n\t\tind += k * abs( s );\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nexport default bind2vind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcastShapes from '@stdlib/ndarray-base-broadcast-shapes';\nimport broadcastArray from '@stdlib/ndarray-base-broadcast-array';\nimport getShape from '@stdlib/ndarray-base-shape';\n\n\n// MAIN //\n\n/**\n* Broadcasts ndarrays to a common shape.\n*\n* ## Notes\n*\n* - The returned arrays are views on their respective underlying data buffers. The views are typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to one of the returned arrays, copy the array before performing operations which may mutate elements.\n*\n* @param {ArrayLikeObject} arrays - list of input arrays\n* @throws {Error} input arrays must be broadcast compatible\n* @returns {Array} broadcasted arrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x1.shape;\n* // returns [ 2, 2 ]\n*\n* var y1 = zeros( [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y1.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var out = broadcastArrays( [ x1, y1 ] );\n* // returns [ , ]\n*\n* var x2 = out[ 0 ];\n* // returns \n*\n* var y2 = out[ 1 ];\n* // returns \n*\n* shx = x2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* shy = y2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = x2.get( 0, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 0, 0, 1 );\n* // returns 2\n*\n* v = x2.get( 1, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 1, 1, 0 );\n* // returns 3\n*\n* v = x2.get( 2, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zeros( [ 4, 2 ] );\n* // returns \n*\n* var out = broadcastArrays( [ x, y ] );\n* // throws \n*/\nfunction broadcastArrays( arrays ) {\n\tvar shapes;\n\tvar out;\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = arrays.length;\n\n\t// Resolve the list of shapes...\n\tshapes = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshapes.push( getShape( arrays[ i ], false ) );\n\t}\n\t// Broadcast the shapes to a common shape:\n\tsh = broadcastShapes( shapes );\n\tif ( sh === null ) {\n\t\tthrow new Error( 'invalid arguments. Input arrays must be broadcast compatible.' );\n\t}\n\t// Broadcast each array to the common shape...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( broadcastArray( arrays[ i ], sh ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default broadcastArrays;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type';\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport azeros from '@stdlib/array-base-zeros';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts a scalar value to an ndarray having the same shape and data type as a provided input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {*} value - scalar value\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]\n*\n* var y = broadcastScalarLike( x, 1.0 );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction broadcastScalarLike( x, value ) {\n\tvar buf;\n\tvar set;\n\tvar sh;\n\tvar dt;\n\tvar N;\n\n\tdt = resolveStr( getDType( x ) );\n\tbuf = buffer( dt, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dt ) );\n\t}\n\tif ( isComplexDataType( dt ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, value );\n\tsh = getShape( x, true );\n\tN = sh.length || 1;\n\treturn new x.constructor( dt, buf, sh, azeros( N ), 0, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default broadcastScalarLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolveEnum from '@stdlib/ndarray-base-dtype-resolve-enum';\nimport dtype from '@stdlib/ndarray-base-buffer-dtype';\n\n\n// MAIN //\n\n/**\n* Returns the data type enumeration constant for a provided ndarray data buffer.\n*\n* @param {Collection} arr - ndarray data buffer\n* @returns {(integer|null)} data type enumeration constant or null\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* var x = new Float64Array( 10 );\n*\n* var c = dtypeEnum( x );\n* // returns \n*/\nfunction dtypeEnum( arr ) {\n\tvar dt = dtype( arr );\n\tif ( dt ) {\n\t\treturn resolveEnum( dt );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default dtypeEnum;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Clips an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clipIndex( -2, 10 );\n* // returns 8\n*\n* idx = clipIndex( 15, 10 );\n* // returns 10\n*\n* idx = clipIndex( 5, 10 );\n* // returns 5\n*/\nfunction clipIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max;\n\t\tif ( idx < 0 ) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default clipIndex;\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\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport indicesComplement from '@stdlib/array-base-indices-complement';\nimport takeIndexed from '@stdlib/array-base-take-indexed';\n\n\n// MAIN //\n\n/**\n* Returns the shape defined by the dimensions which are **not** included in a list of dimensions.\n*\n* @param {NonNegativeIntegerArray} shape - input shape\n* @param {IntegerArray} dims - list of dimensions\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* var sh = complementShape( [ 3, 2 ], [ 0 ] );\n* // returns [ 2 ]\n*/\nfunction complementShape( shape, dims ) {\n\tvar ind = normalizeIndices( dims, shape.length-1 );\n\tif ( ind === null ) {\n\t\t// Note: this is an error condition, as `null` is returned when provided out-of-bounds indices...\n\t\treturn [];\n\t}\n\treturn takeIndexed( shape, indicesComplement( shape.length, ind ) );\n}\n\n\n// EXPORTS //\n\nexport default complementShape;\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\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Copies an input ndarray to a new ndarray having the same shape and data type.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} output ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n*\n* var x = zeros( 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = copy( x );\n* // returns \n*/\nfunction copy( x ) {\n\tvar out = emptyLike( x );\n\tassign( [ x, out ] );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default copy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a plain object describing how to interpret a data buffer as an n-dimensional array.\n*\n* @param {*} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} ndarray descriptor\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = descriptor( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns {...}\n*/\nfunction descriptor( dtype, buffer, shape, strides, offset, order ) {\n\treturn {\n\t\t'dtype': dtype,\n\t\t'data': buffer,\n\t\t'shape': shape,\n\t\t'strides': strides,\n\t\t'offset': offset,\n\t\t'order': order\n\t};\n}\n\n\n// EXPORTS //\n\nexport default descriptor;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport resolve from '@stdlib/ndarray-base-dtype-resolve-str';\nimport TABLE from './table.json';\n\n\n// MAIN //\n\n/**\n* Returns the C data type associated with a provided data type string.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} C data type\n*\n* @example\n* var out = dtype2c( 'float64' );\n* // returns 'double'\n*\n* out = dtype2c( 'generic' );\n* // returns null\n*/\nfunction dtype2c( dtype ) {\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nexport default dtype2c;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isRowMajor from '@stdlib/ndarray-base-assert-is-row-major-string';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Expands the shape of an array by inserting a new dimension of size one at a specified dimension index.\n*\n* ## Notes\n*\n* - A provided dimension index must reside on the interval `[-N-1, N]`, where `N` is the rank (i.e., number of dimensions) of the provided input array. If provided a negative dimension index, the position at which to insert a singleton dimension is computed as `N + dim + 1`. Hence, if provided `-1`, the resolved position is `N` (i.e., a singleton dimension is appended to the input array).\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension index at which to insert a singleton dimension\n* @param {boolean} writable - boolean indicating whether the returned ndarray should be writable\n* @throws {RangeError} must provide a valid dimension index\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = expandDimensions( x, 1, false );\n* // returns [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ]\n*/\nfunction expandDimensions( x, dim, writable ) {\n\tvar strides;\n\tvar shape;\n\tvar isrm;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\n\tisrm = isRowMajor( ord );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\td = normalizeIndex( dim, N );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified dimension index is out-of-bounds. Must be on the interval: [-%u, %u]. Value: `%d`.', N+1, N, dim ) );\n\t}\n\tif ( d === 0 ) {\n\t\t// Prepend singleton dimension...\n\t\tshape.push( 1 );\n\t\tif ( isrm ) {\n\t\t\tstrides.push( sh[ 0 ] * st[ 0 ] );\n\t\t} else {\n\t\t\tstrides.push( st[ 0 ] );\n\t\t}\n\t\t// Copy remaining dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t} else if ( d === N ) {\n\t\t// Copy dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t\t// Append singleton dimension...\n\t\tshape.push( 1 );\n\t\tif ( isrm ) {\n\t\t\tstrides.push( st[ N-1 ] );\n\t\t} else {\n\t\t\tstrides.push( sh[ N-1 ] * st[ N-1 ] );\n\t\t}\n\t} else {\n\t\t// Insert a singleton dimension...\n\t\tfor ( i = 0; i < N+1; i++ ) {\n\t\t\tif ( i === d ) {\n\t\t\t\tshape.push( 1 );\n\t\t\t\tif ( isrm ) {\n\t\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t\t} else { // ord === 'column-major'\n\t\t\t\t\tstrides.push( st[ i ] );\n\t\t\t\t}\n\t\t\t} else if ( i < d ) {\n\t\t\t\tshape.push( sh[ i ] );\n\t\t\t\tstrides.push( st[ i ] );\n\t\t\t} else { // i > d\n\t\t\t\tshape.push( sh[ i-1 ] );\n\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t}\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default expandDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `false` values and having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = falses( 'bool', [ 2, 2 ], 'row-major' );\n* // returns [ [ false, false ], [ false, false ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'bool'\n*/\nfunction falses( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), false );\n}\n\n\n// EXPORTS //\n\nexport default falses;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `false` values and having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import empty from '@stdlib/ndarray-empty';\n*\n* var x = empty( [ 2, 2 ], {\n* 'dtype': 'bool'\n* });\n* // returns \n*\n* var y = falsesLike( x );\n* // returns [ [ false, false ], [ false, false ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'bool'\n*/\nfunction falsesLike( x ) {\n\treturn fill( emptyLike( x ), false );\n}\n\n\n// EXPORTS //\n\nexport default falsesLike;\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\nimport map from '@stdlib/ndarray-base-map';\n\n\n// MAIN //\n\n/**\n* Fills an input ndarray according to a callback function.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {ndarrayLike} input ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* var x = array( [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ] );\n* // returns [ [ [ 1.0, 2.0 ] ], [ [ 3.0, 4.0 ] ], [ [ 5.0, 6.0 ] ] ]\n*\n* var out = fillBy( x, fcn );\n* // returns [ [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ], [ [ 10.0, 10.0 ] ] ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fillBy( x, fcn, thisArg ) {\n\tmap( [ x, x ], fcn, thisArg );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default fillBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport diagonal from '@stdlib/ndarray-base-diagonal';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Fills a specified diagonal of a matrix (or stack of matrices) with a scalar value.\n*\n* ## Notes\n*\n* - The order of the dimension indices contained in `dims` matters. The first element specifies the row-like dimension. The second element specifies the column-like dimension.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n* - The diagonal offset `k` is interpreted as `column - row`. Accordingly, when `k = 0`, the function fills the main diagonal; when `k > 0`, the function fills the diagonal above the main diagonal; and when `k < 0`, the function fills the diagonal below the main diagonal.\n* - The function mutates the input ndarray in-place.\n*\n* @param {ndarray} x - input array\n* @param {*} value - scalar value\n* @param {IntegerArray} dims - dimension indices defining the plane in which to fill the diagonal\n* @param {integer} k - diagonal offset\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @throws {TypeError} second argument cannot be safely cast to the input array data type\n* @returns {ndarray} input ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0 ] ]\n*\n* var out = fillDiagonal( x, 1.0, [ 0, 1 ], 0 );\n* // returns [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction fillDiagonal( x, value, dims, k ) {\n\tfill( diagonal( x, dims, k, true ), value );\n\treturn x;\n}\n\n\n// EXPORTS //\n\nexport default fillDiagonal;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MultiSlice from '@stdlib/slice-multi';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport slice from '@stdlib/ndarray-base-slice';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getShape from '@stdlib/ndarray-shape';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var sh = getShape( x );\n* // returns [ 3, 2 ]\n*\n* var y = fliplr( x, false );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ]\n*\n* sh = getShape( y );\n* // returns [ 3, 2 ]\n*/\nfunction fliplr( x, writable ) {\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( ndims( x ) === 0 ) {\n\t\t// Nothing to reverse so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\treturn reverseDimension( x, -1, writable );\n}\n\n\n// EXPORTS //\n\nexport default fliplr;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport MultiSlice from '@stdlib/slice-multi';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport slice from '@stdlib/ndarray-base-slice';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import getShape from '@stdlib/ndarray-shape';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var sh = getShape( x );\n* // returns [ 3, 2 ]\n*\n* var y = flipud( x, false );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*\n* sh = getShape( y );\n* // returns [ 3, 2 ]\n*/\nfunction flipud( x, writable ) {\n\tvar N = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\t// Nothing to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\t// Check whether we were provided a one-dimensional array...\n\tif ( N === 1 ) {\n\t\t// No second-to-last dimension to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice( null ), true, writable );\n\t}\n\treturn reverseDimension( x, -2, writable );\n}\n\n\n// EXPORTS //\n\nexport default flipud;\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\nimport dtype from '@stdlib/ndarray-base-buffer-dtype';\nimport ndarray from '@stdlib/ndarray-base-ctor';\n\n\n// MAIN //\n\n/**\n* Converts an array to a one-dimensional ndarray.\n*\n* @param {Collection} buf - input array\n* @param {string} order - memory layout (either 'row-major' or 'column-major')\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = [ 1, 2, 3 ];\n*\n* var x = array2ndarray( arr, 'row-major' );\n* // returns \n*\n* var dt = String( getDType( x ) );\n* // returns 'generic'\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n* import Float64Array from '@stdlib/array-float64';\n*\n* var arr = new Float64Array( [ 1.0, 2.0, 3.0 ] );\n*\n* var x = array2ndarray( arr, 'row-major' );\n* // returns \n*\n* var dt = String( getDType( x ) );\n* // returns 'float64'\n*/\nfunction array2ndarray( buf, order ) {\n\tvar dt = dtype( buf ) || 'generic';\n\treturn new ndarray( dt, buf, [ buf.length ], [ 1 ], 0, order );\n}\n\n\n// EXPORTS //\n\nexport default array2ndarray;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNumber } from '@stdlib/assert-is-number';\nimport isAccessorArray from '@stdlib/array-base-assert-is-accessor-array';\nimport accessorSetter from '@stdlib/array-base-accessor-setter';\nimport setter from '@stdlib/array-base-setter';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport emptyArray from '@stdlib/array-empty';\nimport allocUnsafe from '@stdlib/buffer-alloc-unsafe';\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value and having the same data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {*} value - scalar value\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = scalar2ndarrayLike( x, 1.0 );\n* // returns \n*\n* var sh = y.shape;\n* // returns []\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*\n* var v = y.get();\n* // returns 1.0\n*/\nfunction scalar2ndarrayLike( x, value ) {\n\tvar buf;\n\tvar set;\n\tvar dt;\n\n\tdt = getDType( x );\n\tif ( dt === 'binary' ) {\n\t\tbuf = allocUnsafe( 1 );\n\t} else {\n\t\tbuf = emptyArray( 1, dt );\n\t}\n\tif ( /^complex/.test( dt ) && isNumber( value ) ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, value );\n\treturn new x.constructor( dt, buf, [], [ 0 ], 0, getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default scalar2ndarrayLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isScalarMostlySafeCompatible from '@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible'; // eslint-disable-line id-length\nimport empty from '@stdlib/ndarray-base-empty';\nimport scalar2ndarray from '@stdlib/ndarray-base-from-scalar';\nimport assign from '@stdlib/ndarray-base-assign-scalar';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray filled with a specified value and having a specified shape and data type.\n*\n* @param {*} value - fill value\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} second argument must be a recognized data type\n* @throws {TypeError} first argument cannot be safely cast to the output array data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = full( 10.0, 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*\n* var sh = getShape( arr );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction full( value, dtype, shape, order ) {\n\tvar out;\n\tvar v;\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isScalarMostlySafeCompatible( value, dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. The first argument cannot be safely cast to the output array data type. Data type: %s. Value: `%s`.', dtype, value ) );\n\t}\n\t// Allocate an output array:\n\tout = empty( dtype, shape, order );\n\n\t// Convert the fill value to an ndarray having the same data type as the output ndarray:\n\tv = scalar2ndarray( value, dtype, order );\n\n\t// Assign the fill value to each element of the output ndarray:\n\tassign( [ v, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default full;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport map from '@stdlib/ndarray-base-map';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray filled according to a callback function and having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* function clbk() {\n* return 10.0;\n* }\n*\n* var arr = fullBy( 'float64', [ 2, 2 ], 'row-major', clbk );\n* // returns [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float64'\n*/\nfunction fullBy( dtype, shape, order, clbk, thisArg ) {\n\tvar out;\n\n\t// Allocate an output array:\n\tout = empty( dtype, shape, order );\n\n\t// Fill the output ndarray according to a callback function:\n\tmap( [ out, out ], wrapper );\n\n\treturn out;\n\n\t/**\n\t* Wraps a callback function so that only indices are passed.\n\t*\n\t* @private\n\t* @param {*} value - current array element\n\t* @param {NonNegativeIntegerArray} indices - current array element indices\n\t* @returns {*} callback return value\n\t*/\n\tfunction wrapper( value, indices ) {\n\t\treturn clbk.call( thisArg, indices );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default fullBy;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the maximum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*/\nfunction maxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] > 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 );\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default maxViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcast from '@stdlib/ndarray-base-broadcast-array-except-dimensions';\nimport normalizeIndices from '@stdlib/ndarray-base-to-unique-normalized-indices';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport copy from '@stdlib/array-base-copy';\nimport join from '@stdlib/array-base-join';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape while keeping a list of specified dimensions unchanged if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - The function expects that each index in the list of dimensions is negative in order to ensure that indices correspond to the same relative position in the output ndarray shape. For example, given an input ndarray shape `[2,X1,X2]` and a desired shape `[6,7,2,Y1,Y2]`, a list of negative dimensions `[-2,-1]` correctly maps the unchanged dimensions `X` in the input ndarray to ignored dimensions `Y` in the provided target shape. Nonnegative indices, however, afford no such mapping. For example, the list of dimensions `[1,2]` corresponds to `[X1,X2]` in the input ndarray shape, but to `[7,2]` in the target shape, which is not desired. By expecting negative indices, we avoid confusion and ensure that users always refer to dimensions relative to the last broadcasted dimension.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @param {NegativeIntegerArray} dims - list of dimensions to exclude from broadcasting\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} broadcasted dimensions in the input array and desired shape must be broadcast compatible\n* @throws {RangeError} dimension indices must not exceed desired shape bounds\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} broadcasted array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import getShape from '@stdlib/ndarray-shape';\n*\n* var x = array( [ [ 1, 2, 3 ] ] );\n* // returns [ [ 1, 2, 3 ] ]\n*\n* var y = maybeBroadcastArrayExceptDimensions( x, [ 2, 2, 3 ], [ -2 ] );\n* // returns [ [ [ 1, 2, 3 ] ], [ [ 1, 2, 3 ] ] ]\n*/\nfunction maybeBroadcastArrayExceptDimensions( arr, shape, dims ) { // eslint-disable-line id-length\n\tvar idx;\n\tvar sh;\n\tvar dl;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar j;\n\n\t// Resolve the shape of the input array:\n\tsh = getShape( arr, false );\n\tN = shape.length;\n\tM = sh.length;\n\n\t// Check whether we need to broadcast the input array...\n\tif ( M === N ) {\n\t\t// Copy input arguments to avoid unintended mutation:\n\t\tidx = copy( dims );\n\n\t\t// Verify that we've been provided a list of unique dimension indices...\n\t\tdl = idx.length;\n\t\tidx = normalizeIndices( idx, M-1 );\n\t\tif ( idx === 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\tidx.sort(); // sort in ascending order\n\t\tif ( idx.length !== dl ) {\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\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t// Check for a skipped dimension...\n\t\t\tif ( j < dl && i === idx[ j ] ) {\n\t\t\t\tj += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== shape[ i ] ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( arr, shape, dims );\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( arr, shape, dims );\n}\n\n\n// EXPORTS //\n\nexport default maybeBroadcastArrayExceptDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport broadcastShapes from '@stdlib/ndarray-base-broadcast-shapes';\nimport maybeBroadcastArray from '@stdlib/ndarray-base-maybe-broadcast-array';\nimport getShape from '@stdlib/ndarray-base-shape';\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarrays to a common shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has a shape matching the common shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the common shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to a returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ArrayLikeObject} arrays - list of input arrays\n* @throws {Error} input arrays must be broadcast compatible\n* @returns {Array} broadcasted arrays\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x1.shape;\n* // returns [ 2, 2 ]\n*\n* var y1 = zeros( [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y1.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var out = maybeBroadcastArrays( [ x1, y1 ] );\n* // returns \n*\n* var x2 = out[ 0 ];\n* // returns \n*\n* var y2 = out[ 1 ];\n* // returns \n*\n* shx = x2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* shy = y2.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = x2.get( 0, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 0, 0, 1 );\n* // returns 2\n*\n* v = x2.get( 1, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 1, 1, 0 );\n* // returns 3\n*\n* v = x2.get( 2, 0, 0 );\n* // returns 1\n*\n* v = x2.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zeros( [ 4, 2 ] );\n* // returns \n*\n* var out = maybeBroadcastArrays( [ x, y ] );\n* // throws \n*/\nfunction maybeBroadcastArrays( arrays ) {\n\tvar shapes;\n\tvar out;\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = arrays.length;\n\n\t// Resolve the list of shapes...\n\tshapes = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshapes.push( getShape( arrays[ i ], false ) );\n\t}\n\t// Broadcast the shapes to a common shape:\n\tsh = broadcastShapes( shapes );\n\tif ( sh === null ) {\n\t\tthrow new Error( 'invalid arguments. Input arrays must be broadcast compatible.' );\n\t}\n\t// Broadcast each array to the common shape...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( maybeBroadcastArray( arrays[ i ], sh ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default maybeBroadcastArrays;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport setReadOnlyAccessor from '@stdlib/utils-define-nonenumerable-read-only-accessor';\nimport dtypes2signatures from '@stdlib/ndarray-base-dtypes2signatures';\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of ndarray data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( x, y ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs );\n*/\nfunction setProps( meta, dtypes, obj ) {\n\t// Define the number of arguments:\n\tsetReadOnly( obj, 'nargs', meta.nargs );\n\n\t// Define the number of input arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default setProps;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport UINT8_MAX from '@stdlib/constants-uint8-max';\nimport UINT16_MAX from '@stdlib/constants-uint16-max';\nimport UINT32_MAX from '@stdlib/constants-uint32-max';\n\n\n// MAIN //\n\n/**\n* Returns the minimum ndarray data type for storing a provided unsigned integer value.\n*\n* @param {uinteger} value - scalar value\n* @returns {string} ndarray data type\n*\n* @example\n* var dt = minUnsignedIntegerDataType( 9999 );\n* // returns 'uint16'\n*\n* @example\n* var dt = minUnsignedIntegerDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minUnsignedIntegerDataType( value ) { // eslint-disable-line id-length\n\tif ( value <= UINT8_MAX ) {\n\t\treturn 'uint8';\n\t}\n\tif ( value <= UINT16_MAX ) {\n\t\treturn 'uint16';\n\t}\n\tif ( value <= UINT32_MAX ) {\n\t\treturn 'uint32';\n\t}\n\treturn 'float64';\n}\n\n\n// EXPORTS //\n\nexport default minUnsignedIntegerDataType;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Computes the minimum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*/\nfunction minViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 ); // decrements the index\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default minViewBufferIndex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type'; // eslint-disable-line id-length\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\nimport CNAN from '@stdlib/constants-complex128-nan';\n\n\n// MAIN //\n\n/**\n* Creates a NaN-filled ndarray having a specified shape and data type.\n*\n* @param {*} dtype - floating-point or generic data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = nans( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ NaN, NaN ], [ NaN, NaN ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction nans( dtype, shape, order ) {\n\tif ( isComplexFloatingPointDataType( dtype ) ) {\n\t\treturn fill( empty( dtype, shape, order ), CNAN );\n\t}\n\treturn fill( empty( dtype, shape, order ), NaN );\n}\n\n\n// EXPORTS //\n\nexport default nans;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplexFloatingPointDataType from '@stdlib/ndarray-base-assert-is-complex-floating-point-data-type'; // eslint-disable-line id-length\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\nimport dtype from '@stdlib/ndarray-base-dtype';\nimport CNAN from '@stdlib/constants-complex128-nan';\n\n\n// MAIN //\n\n/**\n* Creates a NaN-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import ones from '@stdlib/ndarray-ones';\n*\n* var x = ones( [ 2, 2 ], {\n* 'dtype': 'float32'\n* });\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var y = nansLike( x );\n* // returns [ [ NaN, NaN ], [ NaN, NaN ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction nansLike( x ) {\n\tif ( isComplexFloatingPointDataType( dtype( x ) ) ) {\n\t\treturn fill( emptyLike( x ), CNAN );\n\t}\n\treturn fill( emptyLike( x ), NaN );\n}\n\n\n// EXPORTS //\n\nexport default nansLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to an ndarray descriptor.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Object} ndarray descriptor\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = ndarraylike2descriptor( zeros( [ 2, 2 ] ) );\n* // returns {...}\n*/\nfunction ndarraylike2descriptor( x ) {\n\treturn {\n\t\t'dtype': getDType( x ),\n\t\t'data': getData( x ),\n\t\t'shape': getShape( x, true ),\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x )\n\t};\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2descriptor;\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\nimport resolveGetter from '@stdlib/array-base-resolve-getter';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-like object to a scalar value.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {*} scalar value\n*\n* @example\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n*\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var out = ndarraylike2scalar( x );\n* // returns 1.0\n*/\nfunction ndarraylike2scalar( x ) {\n\tvar buf = getData( x );\n\tvar get = resolveGetter( buf );\n\treturn get( buf, getOffset( x ) );\n}\n\n\n// EXPORTS //\n\nexport default ndarraylike2scalar;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the number of non-singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of non-singleton dimensions\n*\n* @example\n* var shape = [ 2, 2, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 1, 1, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 0\n*/\nfunction nonsingletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] !== 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nexport default nonsingletonDimensions;\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\nimport NullaryStrided1dDispatch from '@stdlib/ndarray-base-nullary-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for applying a strided function to a provided ndarray.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided functions which are specific to specialized output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\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 an output ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} function for applying a strided function to an ndarray\n*\n* @example\n* import base from '@stdlib/blas-ext-base-ndarray-gsorthp';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import scalar2ndarray from '@stdlib/ndarray-from-scalar';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = dtypes( 'all' );\n*\n* var table = {\n* 'default': base\n* };\n* var sorthp = factory( table, [ idt ], odt );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var o = scalar2ndarray( 1.0, {\n* 'dtype': 'generic'\n* });\n*\n* var out = sorthp( x, o );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ -3.0, -1.0, 2.0 ]\n*\n* var bool = ( out === x );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, options ) {\n\tvar f;\n\tif ( arguments.length > 3 ) {\n\t\tf = new NullaryStrided1dDispatch( table, idtypes, odtypes, options );\n\t} else {\n\t\tf = new NullaryStrided1dDispatch( table, idtypes, odtypes );\n\t}\n\treturn assign;\n\n\t/**\n\t* Applies a strided function and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of output ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a null-filled ndarray having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = nulls( 'generic', [ 2, 2 ], 'row-major' );\n* // returns [ [ null, null ], [ null, null ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'generic'\n*/\nfunction nulls( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), null );\n}\n\n\n// EXPORTS //\n\nexport default nulls;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a null-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import empty from '@stdlib/ndarray-empty';\n*\n* var x = empty( [ 2, 2 ], {\n* 'dtype': 'generic'\n* });\n* // returns \n*\n* var y = nullsLike( x );\n* // returns [ [ null, null ], [ null, null ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'generic'\n*/\nfunction nullsLike( x ) {\n\treturn fill( emptyLike( x ), null );\n}\n\n\n// EXPORTS //\n\nexport default nullsLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the size (i.e., number of elements) of a specified dimension for a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {integer} dim - dimension index\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {NonNegativeInteger} dimension size\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = numelDimension( zeros( [ 4, 2, 3 ] ), 0 );\n* // returns 4\n*/\nfunction numelDimension( x, dim ) {\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Return the dimension size:\n\treturn getShape( x, false )[ d ];\n}\n\n\n// EXPORTS //\n\nexport default numelDimension;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport offset from '@stdlib/ndarray-base-offset';\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated element for each ndarray in a provided list of ndarrays.\n*\n* @param {ArrayLikeObject} arr - list of ndarray-like objects\n* @returns {Array} list of offsets\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var x = zeros( [ 3, 3, 3 ] );\n*\n* var out = offsets( [ x ] );\n* // returns [ 0 ]\n*/\nfunction offsets( arr ) {\n\tvar out = [];\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tout.push( offset( arr[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default offsets;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a ones-filled ndarray having a specified shape and data type.\n*\n* @param {*} dtype - numeric data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = ones( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var sh = getShape( arr );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'float32'\n*/\nfunction ones( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default ones;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates a ones-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import ones from '@stdlib/ndarray-base-ones';\n*\n* var x = ones( 'float32', [ 2, 2 ], 'row-major' );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var y = onesLike( x );\n* // returns [ [ 1.0, 1.0 ], [ 1.0, 1.0 ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'float32'\n*/\nfunction onesLike( x ) {\n\treturn fill( emptyLike( x ), 1.0 );\n}\n\n\n// EXPORTS //\n\nexport default onesLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport enum2str from '@stdlib/ndarray-base-output-policy-enum2str';\nimport str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type policy value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} policy - policy value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'same' );\n* // returns \n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( policy ) ) ? policy : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport enum2str from '@stdlib/ndarray-base-output-policy-enum2str';\nimport str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with a supported ndarray data type policy value.\n*\n* @param {*} policy - policy value\n* @returns {(string|null)} policy string or null\n*\n* @example\n* import str2enum from '@stdlib/ndarray-base-output-policy-str2enum';\n*\n* var v = resolve( str2enum( 'same' ) );\n* // returns 'same'\n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( policy ) === null ) ? null : policy;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nexport default resolve;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport sliceFrom from '@stdlib/ndarray-base-slice-from';\nimport sliceTo from '@stdlib/ndarray-base-slice-to';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array containing a truncated view of an input ndarray and a view of the last element(s) along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension along which to perform the operation\n* @param {boolean} writable - boolean indicating whether returned arrays should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {Array} a list of ndarrays\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = pop( x, 0, false );\n* // returns [ , ]\n*\n* arr = ndarray2array( y[ 0 ] );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*\n* arr = ndarray2array( y[ 1 ] );\n* // returns [ [ 5.0, 6.0 ] ]\n*/\nfunction pop( x, dim, writable ) {\n\tvar v0;\n\tvar v1;\n\tvar sh;\n\tvar N;\n\tvar s;\n\n\t// Retrieve array meta data:\n\tsh = getShape( x );\n\tN = sh.length;\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\tdim = normalizeIndex( dim, N-1 );\n\tif ( dim === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\ts = nulls( N );\n\ts[ dim ] = sh[ dim ] - 1;\n\n\t// Create a truncated view:\n\tv0 = sliceTo( x, s, false, writable );\n\n\t// Create a view of the last element(s):\n\tv1 = sliceFrom( x, s, false, writable );\n\n\treturn [ v0, v1 ];\n}\n\n\n// EXPORTS //\n\nexport default pop;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Returns an array with a specified number of prepended singleton dimensions.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeInteger} n - number of singleton dimensions to prepend\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = prependSingletonDimensions( x, 3, false );\n* // returns [ [ [ [ [ 1, 2 ], [ 3, 4 ] ] ] ] ]\n*/\nfunction prependSingletonDimensions( x, n, writable ) { // eslint-disable-line id-length\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Prepend singleton dimensions...\n\tfor ( i = 0; i < n; i++ ) {\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ 0 ] );\n\t}\n\t// Copy remaining dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nexport default prependSingletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: third input ndarray strides sorted in loop order.\n* - **sw**: fourth input ndarray strides sorted in loop order.\n* - **su**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - third input array stride lengths\n* @param {IntegerArray} sw - fourth input array stride lengths\n* @param {IntegerArray} su - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, 4, 12 ]; // column-major\n* var sw = [ 1, -2, 6 ]; // column-major\n* var su = [ 1, -2, 6 ]; // column-major\n*\n* var o = quaternaryLoopOrder( sh, sx, sy, sz, sw, su );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 2, 3, 4 ]\n*\n* var ssx = o.sx;\n* // returns [ 12, 4, 1 ]\n*\n* var ssy = o.sy;\n* // returns [ 24, 8, 1 ]\n*\n* var ssz = o.sz;\n* // returns [ 1, 4, 12 ]\n*\n* var ssw = o.sw;\n* // returns [ 1, -2, 6 ]\n*\n* var ssu = o.su;\n* // returns [ 1, -2, 6 ]\n*/\nfunction quaternaryLoopOrder( sh, sx, sy, sz, sw, su ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz, sw, su ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ],\n\t\t'sw': tmp[ 4 ],\n\t\t'su': tmp[ 5 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default quaternaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - third input array data type\n* @param {*} dtypeW - fourth input array data type\n* @param {*} dtypeU - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = quaternaryBlockSize( 'float64', 'float64', 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction quaternaryBlockSize( dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU ] );\n}\n\n\n// EXPORTS //\n\nexport default quaternaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport loopOrder from '@stdlib/ndarray-base-loop-interchange-order';\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: third input ndarray strides sorted in loop order.\n* - **sw**: fourth input ndarray strides sorted in loop order.\n* - **su**: fifth input ndarray strides sorted in loop order.\n* - **sv**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - third input array stride lengths\n* @param {IntegerArray} sw - fourth input array stride lengths\n* @param {IntegerArray} su - fifth input array stride lengths\n* @param {IntegerArray} sv - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 12, 4, 1 ]; // row-major\n* var sw = [ 24, 8, 1 ]; // row-major\n* var su = [ 1, 4, 12 ]; // column-major\n* var sv = [ 1, -2, 6 ]; // column-major\n*\n* var o = quinaryLoopOrder( sh, sx, sy, sz, sw, su, sv );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 1, 4, 12 ]\n*\n* var ssw = o.sw;\n* // returns [ 1, 8, 24 ]\n*\n* var ssu = o.su;\n* // returns [ 12, 4, 1 ]\n*\n* var ssv = o.sv;\n* // returns [ 6, -2, 1 ]\n*/\nfunction quinaryLoopOrder( sh, sx, sy, sz, sw, su, sv ) {\n\tvar tmp = loopOrder( sh, [ sx, sy, sz, sw, su, sv ] );\n\treturn {\n\t\t'sh': tmp[ 0 ],\n\t\t'sx': tmp[ 1 ],\n\t\t'sy': tmp[ 2 ],\n\t\t'sz': tmp[ 3 ],\n\t\t'sw': tmp[ 4 ],\n\t\t'su': tmp[ 5 ],\n\t\t'sv': tmp[ 6 ]\n\t};\n}\n\n\n// EXPORTS //\n\nexport default quinaryLoopOrder;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport blockSize from '@stdlib/ndarray-base-tiling-block-size';\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {*} dtypeX - first input array data type\n* @param {*} dtypeY - second input array data type\n* @param {*} dtypeZ - third input array data type\n* @param {*} dtypeW - fourth input array data type\n* @param {*} dtypeU - fifth input array data type\n* @param {*} dtypeV - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = quinaryBlockSize( 'float64', 'float64', 'float64', 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction quinaryBlockSize( dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU, dtypeV ) {\n\treturn blockSize( [ dtypeX, dtypeY, dtypeZ, dtypeW, dtypeU, dtypeV ] );\n}\n\n\n// EXPORTS //\n\nexport default quinaryBlockSize;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport reinterpret from '@stdlib/strided-base-reinterpret-boolean';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Reinterprets a boolean ndarray as an unsigned 8-bit integer ndarray.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @returns {ndarray} unsigned 8-bit integer ndarray view\n*\n* @example\n* import falses from '@stdlib/ndarray-base-falses';\n*\n* var x = falses( 'bool', [ 2, 2 ], 'row-major' );\n* // returns [ [ false, false ], [ false, false ] ]\n*\n* var out = reinterpretBoolean( x );\n* // returns [ [ 0, 0 ], [ 0, 0 ] ]\n*/\nfunction reinterpretBoolean( x ) {\n\tvar strides;\n\tvar shape;\n\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\n\treturn ndarray( 'uint8', reinterpret( getData( x ), 0 ), shape, strides, getOffset( x ), getOrder( x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretBoolean;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isComplex128Array from '@stdlib/array-base-assert-is-complex128array';\nimport isComplex64Array from '@stdlib/array-base-assert-is-complex64array';\nimport reinterpret128 from '@stdlib/ndarray-base-reinterpret-complex128';\nimport reinterpret64 from '@stdlib/ndarray-base-reinterpret-complex64';\nimport resolveStr from '@stdlib/ndarray-base-dtype-resolve-str';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Reinterprets a complex-valued floating-point ndarray as a real-valued floating-point ndarray having the same precision.\n*\n* ## Notes\n*\n* - The returned ndarray is a view on the input ndarray data buffer.\n* - The returned ndarray has an additional trailing dimension of size two whose elements correspond to the real and imaginary components, respectively, of each complex-valued element in the input ndarray.\n* - The returned ndarray is a \"base\" ndarray, and, thus, the returned ndarray does not perform bounds checking or afford any of the guarantees of the non-base ndarray constructor. The primary intent of this function is to reinterpret an ndarray-like object within internal implementations and to do so with minimal overhead.\n*\n* @param {ndarray} x - input ndarray\n* @throws {TypeError} must provide a complex-valued floating-point ndarray\n* @returns {ndarray} real-valued floating-point ndarray view\n*\n* @example\n* import zeroTo from '@stdlib/blas-ext-zero-to';\n*\n* var x = zeroTo( [ 2, 2 ], {\n* 'dtype': 'complex128'\n* });\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex( x );\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* @example\n* import zeroTo from '@stdlib/blas-ext-zero-to';\n*\n* var x = zeroTo( [ 2, 2 ], {\n* 'dtype': 'complex64'\n* });\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*\n* var out = reinterpretComplex( x );\n* // returns [ [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ], [ [ 0.0, 0.0 ], [ 1.0, 0.0 ] ] ]\n*/\nfunction reinterpretComplex( x ) {\n\tvar dtype;\n\tvar buf;\n\n\tdtype = resolveStr( getDType( x ) );\n\tbuf = getData( x );\n\tif ( dtype === 'complex128' && isComplex128Array( buf ) ) {\n\t\treturn reinterpret128( x );\n\t}\n\tif ( dtype === 'complex64' && isComplex64Array( buf ) ) {\n\t\treturn reinterpret64( x );\n\t}\n\t// Note: intentionally throw here to catch the scenario in which we add, e.g., a Complex32Array and need to explicitly add support here...\n\tthrow new TypeError( format( 'invalid argument. Must provide a complex-valued floating-point ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nexport default reinterpretComplex;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isReadOnly from '@stdlib/ndarray-base-assert-is-read-only';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getData from '@stdlib/ndarray-base-data-buffer';\n\n\n// MAIN //\n\n/**\n* Returns an array without singleton dimensions.\n*\n* ## Notes\n*\n* - If a provided ndarray does not have any singleton dimensions, the function returns the provided ndarray unchanged.\n* - If a provided ndarray does have singleton dimensions, the function returns a new ndarray view.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} squeezed array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ], {\n* 'ndmin': 5\n* });\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var y = removeSingletonDimensions( x );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 2 ]\n*\n* var v = y.get( 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0 );\n* // returns 3\n*\n* v = y.get( 1, 1 );\n* // returns 4\n*/\nfunction removeSingletonDimensions( x ) {\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Check for singleton dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( sh[ i ] !== 1 ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t}\n\tif ( shape.length === N ) {\n\t\t// We did not find any singleton dimensions...\n\t\treturn x;\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default removeSingletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 ndarray descriptor index offsets.\n*\n* ## Notes\n*\n* - This function mutates the provided descriptors.\n*\n* @param {ArrayLikeObject} descriptors - list of ndarray descriptors\n* @param {Collection} offsets - list of index offsets\n* @returns {ArrayLikeObject} input array\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n* import getOffset from '@stdlib/ndarray-base-offset';\n* import ndarraylike2descriptor from '@stdlib/ndarray-base-ndarraylike2descriptor';\n*\n* var obj = ndarraylike2descriptor({\n* 'dtype': 'float64',\n* 'data': new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ),\n* 'shape': [ 1 ],\n* 'strides': [ 1 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* });\n*\n* var arr = [ obj ];\n* var out = setDescriptorOffsets( arr, [ 2 ] );\n* // returns [...]\n*\n* var bool = ( out === arr );\n* // returns true\n*\n* var offset = getOffset( arr[ 0 ] );\n* // returns 2\n*/\nfunction setDescriptorOffsets( descriptors, offsets ) {\n\tvar i;\n\tfor ( i = 0; i < offsets.length; i++ ) {\n\t\tdescriptors[ i ].offset = offsets[ i ];\n\t}\n\treturn descriptors;\n}\n\n\n// EXPORTS //\n\nexport default setDescriptorOffsets;\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\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport sliceFrom from '@stdlib/ndarray-base-slice-from';\nimport sliceTo from '@stdlib/ndarray-base-slice-to';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an array containing a truncated view of an input ndarray and a view of the first element(s) along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension along which to perform the operation\n* @param {boolean} writable - boolean indicating whether returned arrays should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {Array} a list of ndarrays\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = shift( x, 0, false );\n* // returns [ , ]\n*\n* arr = ndarray2array( y[ 0 ] );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* arr = ndarray2array( y[ 1 ] );\n* // returns [ [ 1.0, 2.0 ] ]\n*/\nfunction shift( x, dim, writable ) {\n\tvar v0;\n\tvar v1;\n\tvar N;\n\tvar s;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\tdim = normalizeIndex( dim, N-1 );\n\tif ( dim === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\ts = nulls( N );\n\ts[ dim ] = 1;\n\n\t// Create a truncated view:\n\tv0 = sliceFrom( x, s, false, writable );\n\n\t// Create a view of the first element(s):\n\tv1 = sliceTo( x, s, false, writable );\n\n\treturn [ v0, v1 ];\n}\n\n\n// EXPORTS //\n\nexport default shift;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the number of singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of singleton dimensions\n*\n* @example\n* var shape = [ 2, 1, 1 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 0\n*/\nfunction singletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nexport default singletonDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport isMostlySafeCast from '@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast';\nimport broadcast from '@stdlib/ndarray-base-broadcast-array';\nimport assign from '@stdlib/ndarray-base-assign';\nimport slice from '@stdlib/ndarray-base-slice';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @param {ndarray} x - input array\n* @param {ndarray} y - output array\n* @param {MultiSlice} s - multi-slice object for the output array\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @throws {Error} input array must be broadcast compatible with an output array view\n* @throws {TypeError} input array cannot be safely cast to the output array data type\n* @returns {ndarray} output array\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import MultiSlice from '@stdlib/slice-multi';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndzeros from '@stdlib/ndarray-zeros';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s, false );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] ]\n*/\nfunction sliceAssign( x, y, s, strict ) {\n\tvar view;\n\tvar xdt;\n\tvar ydt;\n\n\txdt = getDType( x );\n\tydt = getDType( y );\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isMostlySafeCast( xdt, ydt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Input array values cannot be safely cast to the output array data type. Data types: [%s, %s].', xdt, ydt ) );\n\t}\n\t// Resolve a writable output array view:\n\tview = slice( y, s, strict, true );\n\n\t// Broadcast the input array:\n\tx = broadcast( x, getShape( view, true ) );\n\n\t// Set elements from `x` in `y`:\n\tassign( [ x, view ] );\n\n\t// Return the original output array:\n\treturn y;\n}\n\n\n// EXPORTS //\n\nexport default sliceAssign;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport slice from '@stdlib/ndarray-base-slice';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray when sliced along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {(Slice|integer)} s - slice object or an integer\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import Slice from '@stdlib/slice-ctor';\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction sliceDimension( x, dim, s, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = nulls( N );\n\targs[ d ] = s;\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceDimension;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport slice from '@stdlib/ndarray-base-slice';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} start - starting index (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceDimensionFrom( x, dim, start, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = nulls( N );\n\targs[ d ] = new Slice( start, null );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceDimensionFrom;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport args2multislice from '@stdlib/slice-base-args2multislice';\nimport Slice from '@stdlib/slice-ctor';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport slice from '@stdlib/ndarray-base-slice';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport nulls from '@stdlib/array-base-nulls';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} stop - ending index (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceDimensionTo( x, dim, stop, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = nulls( N );\n\targs[ d ] = new Slice( stop );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nexport default sliceDimensionTo;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the stride along a specified dimension for a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {integer} dim - dimension index\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {integer} stride\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var out = stride( zeros( [ 3, 3, 3 ] ), 0 );\n* // returns 9\n*/\nfunction stride( x, dim ) {\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Return the array stride:\n\treturn getStrides( x, false )[ d ];\n}\n\n\n// EXPORTS //\n\nexport default stride;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Converts subscripts to a linear index.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a subscript exceeds array dimensions.\n* - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions.\n* - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension.\n*\n* - When provided fewer modes than dimensions, the function recycles modes using modulo arithmetic.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function treats subscripts as mapping to a linear index in an underlying data buffer for the array, thus returning a linear index from the perspective of that buffer. If an `offset` is equal to `0`, the function treats subscripts as mapping to a linear index in an array view, thus returning a linear index from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = [ 'throw' ];\n*\n* // From the perspective of a view...\n* var idx = sub2ind( shape, strides, 0, 0, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, 0, 0, 1, mode );\n* // returns 1\n*\n* idx = sub2ind( shape, strides, 0, 1, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, 0, 1, 1, mode );\n* // returns 3\n*\n* // From the perspective of an underlying buffer...\n* idx = sub2ind( shape, strides, offset, 0, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, offset, 0, 1, mode );\n* // returns 3\n*\n* idx = sub2ind( shape, strides, offset, 1, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, offset, 1, 1, mode );\n* // returns 1\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {...integer} i - subscripts\n* @param {StringArray} mode - specifies how to handle subscripts which exceed array dimensions\n* @throws {RangeError} must provide subscripts which do not exceed array dimensions\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 3, 1 ];\n* var offset = 0;\n* var mode = [ 'throw' ]\n*\n* var idx = sub2ind( shape, strides, offset, 1, 2, 2, mode );\n* // returns [ 'throw' ]\n*/\nfunction sub2ind() {\n\tvar strides;\n\tvar offset;\n\tvar nmodes;\n\tvar shape;\n\tvar ndims;\n\tvar modes;\n\tvar mode;\n\tvar idx;\n\tvar m;\n\tvar s;\n\tvar j;\n\tvar i;\n\n\tshape = arguments[ 0 ];\n\tstrides = arguments[ 1 ];\n\toffset = arguments[ 2 ];\n\tndims = shape.length;\n\tmodes = arguments[ 3+ndims ]; // last argument\n\tnmodes = modes.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tm = shape[ i ];\n\t\tj = arguments[ i+3 ];\n\t\tmode = modes[ i%nmodes ];\n\t\tif ( mode === 'clamp' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj = 0;\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj = m - 1;\n\t\t\t}\n\t\t} else if ( mode === 'wrap' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj += m; // slight optimization to avoid modulo arithmetic when |j| <= m\n\t\t\t\tif ( j < 0 ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t\tif ( j !== 0 ) {\n\t\t\t\t\t\tj += m;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj -= m; // slight optimization to avoid modulo arithmetic when m < j <= 2m\n\t\t\t\tif ( j >= m ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif ( mode === 'normalize' && j < 0 ) {\n\t\t\t\tj += m;\n\t\t\t}\n\t\t\tif ( j < 0 || j >= m ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.', i, j ) );\n\t\t\t}\n\t\t}\n\t\ts = strides[ i ];\n\n\t\t// Check if array view...\n\t\tif ( s < 0 && offset === 0 ) {\n\t\t\tidx -= j * s; // increments idx\n\t\t} else {\n\t\t\tidx += j * s; // may increment or decrement idx\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nexport default sub2ind;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray via loop interchange.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} z.accessors - data buffer accessors\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} w.accessors - data buffer accessors\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import toAccessorArray from '@stdlib/array-base-to-accessor-array';\n* import accessors from '@stdlib/array-base-accessors';\n* import copy from '@stdlib/array-base-copy';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = toAccessorArray( [ 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = toAccessorArray( [ 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = toAccessorArray( [ 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 4 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 1 ];\n* var sy = [ 4, 4, 4, 1 ];\n* var sz = [ 4, 4, 4, 1 ];\n* var sw = [ 4, 4, 4, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': accessors( xbuf ).accessors\n* };\n* var y = {\n* 'dtype': 'generic',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': accessors( ybuf ).accessors\n* };\n* var z = {\n* 'dtype': 'generic',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major',\n* 'accessors': accessors( zbuf ).accessors\n* };\n* var w = {\n* 'dtype': 'generic',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major',\n* 'accessors': accessors( wbuf ).accessors\n* };\n*\n* // Apply the ternary function:\n* ternarynd( x, y, z, w, fcn );\n*\n* console.log( copy( w.data ) );\n* // => [ 2.5, 3.5, 4.5, 5.5 ]\n*/\nfunction ternarynd( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar xget;\n\tvar yget;\n\tvar zget;\n\tvar wset;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar ordw;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\tordw = w.order;\n\n\t// Cache accessors:\n\txget = x.accessors[ 0 ];\n\tyget = y.accessors[ 0 ];\n\tzget = z.accessors[ 0 ];\n\twset = w.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, 'throw' );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, 'throw' );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, 'throw' );\n\t\tiw = vind2bind( sh, sw, ow, ordw, i, 'throw' );\n\t\twset( wbuf, iw, fcn( xget( xbuf, ix ), yget( ybuf, iy ), zget( zbuf, iz ) ) ); // eslint-disable-line max-len\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport numel from '@stdlib/ndarray-base-numel';\nimport vind2bind from '@stdlib/ndarray-base-vind2bind';\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in n-dimensional input ndarrays and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {*} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing input ndarray meta data\n* @param {*} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} z - object containing input ndarray meta data\n* @param {*} z.dtype - data type\n* @param {Collection} z.data - data buffer\n* @param {NonNegativeIntegerArray} z.shape - dimensions\n* @param {IntegerArray} z.strides - stride lengths\n* @param {NonNegativeInteger} z.offset - index offset\n* @param {string} z.order - specifies whether `z` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} w - object containing output ndarray meta data\n* @param {*} w.dtype - data type\n* @param {Collection} w.data - data buffer\n* @param {NonNegativeIntegerArray} w.shape - dimensions\n* @param {IntegerArray} w.strides - stride lengths\n* @param {NonNegativeInteger} w.offset - index offset\n* @param {string} w.order - specifies whether `w` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* import Float64Array from '@stdlib/array-float64';\n*\n* function fcn( a, b, c ) {\n* return a + b + c;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Float64Array( [ 1.0, 1.0, 1.0, 1.0 ] );\n* var zbuf = new Float64Array( [ 0.5, 0.5, 0.5, 0.5 ] );\n* var wbuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 4 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 4, 1 ];\n* var sy = [ 4, 4, 4, 1 ];\n* var sz = [ 4, 4, 4, 1 ];\n* var sw = [ 4, 4, 4, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n* var oz = 0;\n* var ow = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n* var z = {\n* 'dtype': 'float64',\n* 'data': zbuf,\n* 'shape': shape,\n* 'strides': sz,\n* 'offset': oz,\n* 'order': 'row-major'\n* };\n* var w = {\n* 'dtype': 'float64',\n* 'data': wbuf,\n* 'shape': shape,\n* 'strides': sw,\n* 'offset': ow,\n* 'order': 'row-major'\n* };\n*\n* // Apply the ternary function:\n* ternarynd( x, y, z, w, fcn );\n*\n* console.log( w.data );\n* // => [ 2.5, 3.5, 4.5, 5.5 ]\n*/\nfunction ternarynd( x, y, z, w, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar zbuf;\n\tvar wbuf;\n\tvar ordx;\n\tvar ordy;\n\tvar ordz;\n\tvar ordw;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar sz;\n\tvar sw;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar ow;\n\tvar ix;\n\tvar iy;\n\tvar iz;\n\tvar iw;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\tzbuf = z.data;\n\twbuf = w.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\tsz = z.strides;\n\tsw = w.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\toz = z.offset;\n\tow = w.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\tordz = z.order;\n\tordw = w.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, 'throw' );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, 'throw' );\n\t\tiz = vind2bind( sh, sz, oz, ordz, i, 'throw' );\n\t\tiw = vind2bind( sh, sw, ow, ordw, i, 'throw' );\n\t\twbuf[ iw ] = fcn( xbuf[ ix ], ybuf[ iy ], zbuf[ iz ] );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default ternarynd;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport outputDataType from '@stdlib/ndarray-base-output-dtype';\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a ternary function.\n*\n* @param {*} xdtype - first input ndarray data type\n* @param {*} ydtype - second input ndarray data type\n* @param {*} zdtype - third input ndarray data type\n* @param {(string|*)} policy - output ndarray data type policy\n* @throws {TypeError} fourth argument must be a recognized data type policy\n* @throws {Error} must provide data types amenable to type promotion\n* @returns {DataType} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'float32', 'float32', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( xdtype, ydtype, zdtype, policy ) {\n\treturn outputDataType( [ xdtype, ydtype, zdtype ], policy );\n}\n\n\n// EXPORTS //\n\nexport default resolve;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport assign from '@stdlib/ndarray-base-assign';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport numel from '@stdlib/ndarray-base-numel';\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2order from '@stdlib/ndarray-base-strides2order';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getStrides from '@stdlib/ndarray-base-strides';\nimport getOffset from '@stdlib/ndarray-base-offset';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getData from '@stdlib/ndarray-base-data-buffer';\nimport zeros from '@stdlib/array-base-zeros';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns an ndarray created by repeating the elements of an input ndarray a specified number of times along each dimension.\n*\n* ## Notes\n*\n* - The number of repetitions must have at least as many elements as the number of input dimensions. When the number of repetitions exceeds the number of input dimensions, the input array is treated as if singleton dimensions were prepended.\n* - The function always copies data to a new ndarray.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeIntegerArray} reps - number of repetitions along each dimension\n* @throws {RangeError} second argument must have at least as many elements as the number of input dimensions\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = tile( x, [ 2, 2 ] );\n* // returns [ [ 1, 2, 1, 2 ], [ 3, 4, 3, 4 ], [ 1, 2, 1, 2 ], [ 3, 4, 3, 4 ] ]\n*/\nfunction tile( x, reps ) {\n\tvar dtype;\n\tvar order;\n\tvar shx;\n\tvar sho;\n\tvar shi;\n\tvar sto;\n\tvar buf;\n\tvar len;\n\tvar out;\n\tvar Ds;\n\tvar si;\n\tvar sx;\n\tvar v1;\n\tvar v2;\n\tvar M;\n\tvar N;\n\tvar o;\n\tvar s;\n\tvar t;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tshx = getShape( x, false );\n\tsx = getStrides( x, false );\n\tdtype = getDType( x );\n\tN = reps.length;\n\tM = shx.length;\n\n\tif ( N < M ) {\n\t\tthrow new RangeError( format( 'invalid argument. Second argument must have at least as many elements as the number of dimensions of the first argument. Number of input dimensions: `%u`. Number of repetitions: `%u`.', M, N ) );\n\t}\n\t// Compute the implicit left-padding amount for the input shape:\n\tDs = N - M;\n\n\to = strides2order( sx );\n\tif ( o === 0 || o === 3 ) {\n\t\t// Fallback to stated layout when unable to infer the underlying physical layout:\n\t\torder = getOrder( x );\n\t} else if ( o === 1 ) {\n\t\torder = 'row-major';\n\t} else {\n\t\torder = 'column-major';\n\t}\n\t// Compute an interleaved 2N-D shape and strides for \"broadcasting\" the input, along with the final N-D output shape. By inserting a repetition axis next to each original axis, a contiguous 2N-D buffer can be reinterpreted as the N-D tiled output without an additional copy...\n\tshi = zeros( 2*N );\n\tsi = zeros( 2*N );\n\tsho = zeros( N );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = i - Ds;\n\t\tk = 2 * i;\n\t\ts = ( j < 0 ) ? 1 : shx[ j ];\n\t\tt = ( j < 0 ) ? 0 : sx[ j ];\n\t\tsho[ i ] = reps[ i ] * s;\n\t\tif ( order === 'row-major' ) {\n\t\t\tshi[ k ] = reps[ i ];\n\t\t\tshi[ k+1 ] = s;\n\t\t\tsi[ k+1 ] = t;\n\t\t} else { // order === 'column-major'\n\t\t\tshi[ k ] = s;\n\t\t\tshi[ k+1 ] = reps[ i ];\n\t\t\tsi[ k ] = t;\n\t\t}\n\t}\n\tif ( N > 0 ) {\n\t\tlen = numel( sho );\n\t\tsto = shape2strides( sho, order );\n\t} else {\n\t\tlen = 1;\n\t\tsto = [ 0 ];\n\t}\n\t// Allocate an output array:\n\tbuf = buffer( dtype, len );\n\tout = new x.constructor( dtype, buf, sho, sto, 0, order );\n\n\t// Create a \"broadcasted\" input 2N-D view over the data buffers:\n\tv1 = ndarray( dtype, getData( x ), shi, si, getOffset( x ), order );\n\tv2 = ndarray( dtype, buf, shi, shape2strides( shi, order ), 0, order );\n\n\t// Copy the elements to the output array:\n\tassign( [ v1, v2 ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default tile;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport arraylike2object from '@stdlib/array-base-arraylike2object';\nimport recurse from './recurse.js';\n\n\n// MAIN //\n\n/**\n* Converts an ndarray buffer to a generic array (which may include nested arrays).\n*\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(EmptyArray|Array|Array)} array (which may include nested arrays)\n*\n* @example\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray2array( buffer, shape, strides, offset, order );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\nfunction ndarray2array( buffer, shape, strides, offset, order ) {\n\tvar i;\n\tif ( shape.length === 0 ) {\n\t\treturn [];\n\t}\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t}\n\treturn recurse( arraylike2object( buffer ), shape, strides, offset, order, 0 ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default ndarray2array;\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\nimport ndims from '@stdlib/ndarray-base-ndims';\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements along the last dimension of an input ndarray is reversed.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toFlippedlr( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ]\n*/\nfunction toFlippedlr( x ) {\n\tvar out;\n\tvar xr;\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( ndims( x ) === 0 ) {\n\t\t// No last dimension to reverse, so just return a copy:\n\t\tassign( [ x, out ] );\n\t\treturn out;\n\t}\n\t// Create a reversed view of the input ndarray:\n\txr = reverseDimension( x, -1, false );\n\n\t// Assign the elements of the reversed input ndarray view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toFlippedlr;\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\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport assign from '@stdlib/ndarray-base-assign';\nimport ndims from '@stdlib/ndarray-base-ndims';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements along the second-to-last dimension of an input ndarray is reversed.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toFlippedud( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction toFlippedud( x ) {\n\tvar out;\n\tvar xr;\n\tvar N;\n\n\t// Get the number of dimensions:\n\tN = ndims( x );\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Check whether we were provided a zero-dimensional or a one-dimensional array...\n\tif ( N === 0 || N === 1 ) {\n\t\t// No second-to-last dimension to reverse, so just return a copy:\n\t\tassign( [ x, out ] );\n\t\treturn out;\n\t}\n\t// Create a view of the input ndarray with the second-to-last dimension reversed:\n\txr = reverseDimension( x, -2, false );\n\n\t// Assign the elements of the reversed view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toFlippedud;\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\nimport emptyLike from '@stdlib/array-empty-like';\nimport normalizeIndex from '@stdlib/ndarray-base-normalize-index';\n\n\n// MAIN //\n\n/**\n* Normalizes a list of indices to the interval `[0,max]`.\n*\n* @param {IntegerArray} indices - indices\n* @param {NonNegativeInteger} max - maximum index\n* @returns {IntegerArray} normalized indices\n*\n* @example\n* var idx = toNormalizedIndices( [ -2, 5 ], 10 );\n* // returns [ 9, 5 ]\n*\n* idx = toNormalizedIndices( [ 15 ], 10 );\n* // returns [ -1 ]\n*/\nfunction toNormalizedIndices( indices, max ) {\n\tvar out;\n\tvar i;\n\n\tout = emptyLike( indices );\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout[ i ] = normalizeIndex( indices[ i ], max );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toNormalizedIndices;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport dtype from '@stdlib/array-dtype';\nimport empty from '@stdlib/array-empty';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ], 'float32' );\n* // returns \n*/\nfunction emptyLike( x ) {\n\tvar dt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\treturn empty( x.length, dt );\n}\n\n\n// EXPORTS //\n\nexport default emptyLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverse from '@stdlib/ndarray-base-reverse';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements of an input ndarray is reversed along each dimension.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toReversed( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction toReversed( x ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a reversed view of the input ndarray:\n\txr = reverse( x, false );\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Assign the elements of the reversed input ndarray view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toReversed;\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\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimension from '@stdlib/ndarray-base-reverse-dimension';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements of an input ndarray along a specified dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to reverse\n* @returns {ndarray} output array\n*\n* @example\n* import ndarray from '@stdlib/ndarray-ctor';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toReversedDimension( x, 0 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction toReversedDimension( x, dim ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a reversed view of the input ndarray:\n\txr = reverseDimension( x, dim, false );\n\n\t// Create an output ndarray with the same shape and data type as the input ndarray:\n\tout = emptyLike( x );\n\n\t// Assign the elements of the reversed input ndarray view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toReversedDimension;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport reverseDimensions from '@stdlib/ndarray-base-reverse-dimensions';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where the order of elements of an input ndarray along specified dimensions is reversed.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - indices of dimensions to reverse\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ] );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = toReversedDimensions( x, [ 0, 1 ] );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction toReversedDimensions( x, dims ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a reversed view of the input ndarray:\n\txr = reverseDimensions( x, dims, false );\n\n\t// Create an output ndarray having the same shape and data type as the reversed view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the reversed view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toReversedDimensions;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rot90 from '@stdlib/ndarray-base-rot90';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where an ndarray is rotated 90 degrees in a specified plane.\n*\n* ## Notes\n*\n* - If `k > 0`, the function rotates the plane from the first specified dimension toward the second specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane counterclockwise.\n* - If `k < 0`, the function rotates the plane from the second specified dimension toward the first specified dimension. This means that, for a two-dimensional ndarray and `dims = [0, 1]`, the function rotates the plane clockwise.\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @param {integer} k - number of times to rotate by 90 degrees\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRot90( x, [ 0, 1 ], 1 );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction toRot90( x, dims, k ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rot90( x, dims, k, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRot90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rot180 from '@stdlib/ndarray-base-rot180';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where an ndarray is rotated 180 degrees in a specified plane.\n*\n* ## Notes\n*\n* - Each provided dimension index must reside on the interval `[-ndims, ndims-1]`.\n*\n* @param {ndarray} x - input array\n* @param {IntegerArray} dims - dimension indices defining the plane of rotation\n* @throws {RangeError} must provide exactly two dimension indices\n* @throws {RangeError} input ndarray must have two or more dimensions\n* @throws {RangeError} must provide valid dimension indices\n* @throws {Error} must provide unique dimension indices\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRot180( x, [ 0, 1 ] );\n* // returns [ [ 4, 3 ], [ 2, 1 ] ]\n*/\nfunction toRot180( x, dims ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rot180( x, dims, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRot180;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rotl90 from '@stdlib/ndarray-base-rotl90';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where a matrix (or a stack of matrices) is rotated 90 degrees counterclockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRotl90( x, 1 );\n* // returns [ [ 2, 4 ], [ 1, 3 ] ]\n*/\nfunction toRotl90( x, k ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rotl90( x, k, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRotl90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport rotr90 from '@stdlib/ndarray-base-rotr90';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray where a matrix (or a stack of matrices) is rotated 90 degrees clockwise.\n*\n* @param {ndarray} x - input array\n* @param {integer} k - number of times to rotate by 90 degrees\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* var y = toRotr90( x, 1 );\n* // returns [ [ 3, 1 ], [ 4, 2 ] ]\n*/\nfunction toRotr90( x, k ) {\n\tvar out;\n\tvar xr;\n\n\t// Create a rotated view of the input ndarray:\n\txr = rotr90( x, k, false );\n\n\t// Create an output ndarray having the same shape and data type as the rotated view:\n\tout = emptyLike( xr );\n\n\t// Assign the elements of the rotated view to the output ndarray:\n\tassign( [ xr, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toRotr90;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport transpose from '@stdlib/ndarray-base-transpose';\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray containing the elements of an input ndarray but whose last two dimensions are transposed.\n*\n* @param {ndarray} x - input array\n* @throws {Error} must provide an array with two or more dimensions\n* @returns {ndarray} output ndarray\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]\n*\n* var out = toTransposed( x );\n* // returns [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ]\n*/\nfunction toTransposed( x ) {\n\tvar view;\n\tvar out;\n\n\t// Create transposed view of the input array:\n\tview = transpose( x, false );\n\n\t// Create an output array:\n\tout = emptyLike( view );\n\n\t// Copy elements from transposed view to output array:\n\tassign( [ view, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toTransposed;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport unflatten from '@stdlib/ndarray-base-unflatten';\nimport assign from '@stdlib/ndarray-base-assign';\n\n\n// MAIN //\n\n/**\n* Returns a new ndarray in which a specified dimension of an input ndarray is expanded over multiple dimensions.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - dimension index\n* @param {NonNegativeIntegerArray} sizes - new shape of the unflattened dimension\n* @throws {RangeError} must provide a valid dimension index\n* @throws {RangeError} product of the sizes must be equal to the size of the dimension to be unflattened\n* @returns {ndarray} output array\n*\n* @example\n* import array from '@stdlib/ndarray-array';\n*\n* var x = array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] );\n* // returns [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ]\n*\n* var y = toUnflattened( x, 0, [ 2, 3 ] );\n* // returns [ [ 1.0, 2.0, 3.0 ], [ 4.0, 5.0, 6.0 ] ]\n*/\nfunction toUnflattened( x, dim, sizes ) {\n\tvar out;\n\tvar xv;\n\n\t// Create an unflattened view of the input ndarray:\n\txv = unflatten( x, dim, sizes, false );\n\n\t// Create an output ndarray with the same data type as the input ndarray having the unflattened shape:\n\tout = emptyLike( xv );\n\n\t// Assign the elements of the unflattened input ndarray view to the output ndarray:\n\tassign( [ xv, out ] );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default toUnflattened;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport empty from '@stdlib/ndarray-base-empty';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `true` values and having a specified shape and data type.\n*\n* @param {*} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import getDType from '@stdlib/ndarray-dtype';\n*\n* var arr = trues( 'bool', [ 2, 2 ], 'row-major' );\n* // returns [ [ true, true ], [ true, true ] ]\n*\n* var dt = String( getDType( arr ) );\n* // returns 'bool'\n*/\nfunction trues( dtype, shape, order ) {\n\treturn fill( empty( dtype, shape, order ), true );\n}\n\n\n// EXPORTS //\n\nexport default trues;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2026 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport emptyLike from '@stdlib/ndarray-base-empty-like';\nimport fill from '@stdlib/ndarray-base-fill';\n\n\n// MAIN //\n\n/**\n* Creates an ndarray filled with `true` values and having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} ndarray\n*\n* @example\n* import getShape from '@stdlib/ndarray-shape';\n* import getDType from '@stdlib/ndarray-dtype';\n* import empty from '@stdlib/ndarray-empty';\n*\n* var x = empty( [ 2, 2 ], {\n* 'dtype': 'bool'\n* });\n* // returns \n*\n* var y = truesLike( x );\n* // returns [ [ true, true ], [ true, true ] ]\n*\n* var sh = getShape( y );\n* // returns [ 2, 2 ]\n*\n* var dt = String( getDType( y ) );\n* // returns 'bool'\n*/\nfunction truesLike( x ) {\n\treturn fill( emptyLike( x ), true );\n}\n\n\n// EXPORTS //\n\nexport default truesLike;\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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport UnaryStrided1dDispatchBy from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction on a provided ndarray according to a callback function.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {Function} function for performing a reduction on an ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var y = maxBy( x, clbk );\n* // returns \n*\n* var v = y.get();\n* // returns 4.0\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max-by';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var maxBy = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* function clbk( v ) {\n* return v * 2.0;\n* }\n*\n* var out = maxBy.assign( x, y, clbk );\n* // returns \n*\n* var v = out.get();\n* // returns 4.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies ) {\n\tvar f = new UnaryStrided1dDispatchBy( table, idtypes, odtypes, policies );\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Performs a reduction a provided input ndarray according to a callback function.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n\t* @param {string} [options.dtype] - output ndarray data type\n\t* @param {Function} clbk - callback function\n\t* @param {*} [thisArg] - callback function execution context\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} callback argument must be a function\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Performs a reduction a provided input ndarray according to a callback and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {Function} clbk - callback function\n\t* @param {*} [thisArg] - callback function execution context\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {TypeError} callback argument must be a function\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport UnaryStrided1dDispatch from '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for performing a reduction on a provided ndarray.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided reduction function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized input ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided reduction functions which are specific to specialized input ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {Error} first argument must be an object having valid properties\n* @returns {Function} function for performing a reduction on an ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = max( x );\n* // returns \n*\n* var v = y.get();\n* // returns 2.0\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-max';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var max = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [], [ 0 ], 0, 'row-major' );\n*\n* var out = max.assign( x, y );\n* // returns \n*\n* var v = out.get();\n* // returns 2.0\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies ) {\n\tvar f = new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Performs a reduction a provided input ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @param {boolean} [options.keepdims=false] - boolean indicating whether the reduced dimensions should be included in the returned ndarray as singleton dimensions\n\t* @param {string} [options.dtype] - output ndarray data type\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Performs a reduction a provided input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform a reduction\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default 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\nimport setReadOnly from '@stdlib/utils-define-nonenumerable-read-only-property';\nimport UnaryStrided1dDispatch from '@stdlib/ndarray-base-unary-strided1d-dispatch';\n\n\n// MAIN //\n\n/**\n* Returns a function for applying a strided function a provided ndarray.\n*\n* @param {Object} table - dispatch table\n* @param {Function} table.default - default strided function\n* @param {StringArray} [table.types] - one-dimensional list of ndarray data types describing specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} [table.fcns] - list of strided functions which are specific to specialized input and output ndarray argument signatures\n* @param {ArrayLikeObject} idtypes - list containing lists of supported input data types for each ndarray argument\n* @param {StringArray} odtypes - list of supported output data types\n* @param {Object} policies - policies\n* @param {string} policies.output - output data type policy\n* @param {string} policies.casting - input ndarray casting policy\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 an input ndarray\n* @throws {TypeError} first argument must be an object having valid properties\n* @throws {Error} first argument must be an object having valid properties\n* @throws {TypeError} second argument must be an array containing arrays of supported data types\n* @throws {TypeError} third argument must be an array of supported data types\n* @throws {TypeError} fourth argument must be an object having supported policies\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} function for applying a strided function to an ndarray\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var y = cumax( x );\n* // returns \n*\n* var arr = ndarray2array( y );\n* // returns [ -1.0, 2.0, 2.0 ]\n*\n* @example\n* import base from '@stdlib/stats-base-ndarray-cumax';\n* import dtypes from '@stdlib/ndarray-dtypes';\n* import ndarray2array from '@stdlib/ndarray-to-array';\n* import ndarray from '@stdlib/ndarray-base-ctor';\n*\n* var idt = dtypes( 'real_and_generic' );\n* var odt = idt;\n* var policies = {\n* 'output': 'same',\n* 'casting': 'none'\n* };\n*\n* var table = {\n* 'default': base\n* };\n* var cumax = factory( table, [ idt ], odt, policies );\n*\n* var xbuf = [ -1.0, 2.0, -3.0 ];\n* var x = new ndarray( 'generic', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var ybuf = [ 0.0, 0.0, 0.0 ];\n* var y = new ndarray( 'generic', ybuf, [ ybuf.length ], [ 1 ], 0, 'row-major' );\n*\n* var out = cumax.assign( x, y );\n* // returns \n*\n* var arr = ndarray2array( out );\n* // returns [ -1.0, 2.0, 2.0 ]\n*\n* var bool = ( out === y );\n* // returns true\n*/\nfunction factory( table, idtypes, odtypes, policies, options ) {\n\tvar f;\n\tif ( arguments.length > 4 ) {\n\t\tf = new UnaryStrided1dDispatch( table, idtypes, odtypes, policies, options ); // eslint-disable-line max-len\n\t} else {\n\t\tf = new UnaryStrided1dDispatch( table, idtypes, odtypes, policies );\n\t}\n\tsetReadOnly( main, 'assign', assign );\n\treturn main;\n\n\t/**\n\t* Applies a strided function to a provided input ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation\n\t* @param {string} [options.dtype] - output ndarray data type\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarray} output ndarray\n\t*/\n\tfunction main() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.apply.apply( f, args );\n\t}\n\n\t/**\n\t* Applies a strided function to a provided input ndarray and assigns results to a provided output ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @param {...ndarrayLike} [args] - additional ndarray arguments\n\t* @param {ndarrayLike} out - output ndarray\n\t* @param {Options} [options] - function options\n\t* @param {IntegerArray} [options.dims] - list of dimensions over which to perform operation\n\t* @throws {TypeError} first argument must be an ndarray\n\t* @throws {TypeError} first argument must have a supported data type\n\t* @throws {TypeError} output argument must be an ndarray\n\t* @throws {TypeError} options argument must be an object\n\t* @throws {RangeError} dimension indices must not exceed input ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of input ndarray dimensions\n\t* @throws {Error} must provide valid options\n\t* @returns {ndarrayLike} output ndarray\n\t*/\n\tfunction assign() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn f.assign.apply( f, args );\n\t}\n}\n\n\n// EXPORTS //\n\nexport default factory;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport format from '@stdlib/string-format';\nimport ndarray from '@stdlib/ndarray-base-ctor';\nimport numel from '@stdlib/ndarray-base-numel';\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having a specified shape and data type.\n*\n* @param {string} dtype - numeric data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\n*/\nfunction zeros( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nexport default zeros;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport shape2strides from '@stdlib/ndarray-base-shape2strides';\nimport strides2offset from '@stdlib/ndarray-base-strides2offset';\nimport buffer from '@stdlib/ndarray-base-buffer';\nimport numel from '@stdlib/ndarray-base-numel';\nimport getDType from '@stdlib/ndarray-base-dtype';\nimport getShape from '@stdlib/ndarray-base-shape';\nimport getOrder from '@stdlib/ndarray-base-order';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* import zeros from '@stdlib/ndarray-base-zeros';\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*/\nfunction zerosLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dt, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dt ) );\n\t}\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\n}\n\n\n// EXPORTS //\n\nexport default zerosLike;\n","/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nimport { isPrimitive as isNonNegativeInteger } from '@stdlib/assert-is-nonnegative-integer';\nimport isCollection from '@stdlib/assert-is-collection';\nimport format from '@stdlib/string-format';\n\n\n// MAIN //\n\n/**\n* Returns the number of elements in an ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* import zeros from '@stdlib/ndarray-zeros';\n*\n* var n = numel( zeros( [ 3, 3, 3 ] ) );\n* // returns 27\n*/\nfunction numel( x ) {\n\tvar ndims;\n\tvar sh;\n\tvar n;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects (e.g., vanilla arrays) can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.length;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims === 0 ) {\n\t\t// Note: for minimal \"ndarray-like objects\", this will erroneously return zero when `x` is a zero-dimensional ndarray. This is part of the rationale for having a `length` property on actual ndarrays. As we don't can't know whether a provided ndarray-like is actually zero-dimensional without knowing/inspecting implementation details, we return zero here...\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tn *= d;\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nexport default numel;\n"],"names":["main","Object","defineProperty","isNumber","value","zeros","n","i","out","zeroPad","str","width","right","negative","pad","length","startsWithMinus","substr","lowercase","String","prototype","toLowerCase","uppercase","toUpperCase","formatInteger","token","base","specifier","arg","parseInt","isFinite","Error","toString","precision","padRight","sign","alternate","call","charAt","abs","Math","replace","RE_EXP_POS_DIGITS","RE_EXP_NEG_DIGITS","RE_ONLY_DIGITS","RE_DIGITS_BEFORE_EXP","RE_TRAILING_PERIOD_ZERO","RE_PERIOD_ZERO_EXP","RE_ZERO_BEFORE_EXP","formatDouble","f","digits","toExponential","toFixed","toPrecision","spaces","fromCharCode","isArray","Array","isnan","initialize","flags","mapping","formatInterpolate","tokens","hasPeriod","flag","num","pos","j","TypeError","padZeros","indexOf","arguments","maxWidth","parseFloat","substring","RE","parse","match","formatTokenize","content","prev","exec","slice","lastIndex","push","format","args","tokenize","interpolate","apply","objectProtoype","toStr","defineGetter","__defineGetter__","defineSetter","__defineSetter__","lookupGetter","__lookupGetter__","lookupSetter","__lookupSetter__","err","hasDefinePropertySupport","builtin","obj","prop","descriptor","hasValue","hasGet","hasSet","__proto__","get","set","defineProperty$1","setReadOnly","configurable","enumerable","writable","C64_BYTES_PER_ELEMENT","C128_BYTES_PER_ELEMENT","isComplexTypedArray","constructor","name","BYTES_PER_ELEMENT","isBooleanArray","iterationOrder","strides","cnt","setNonEnumerableReadOnly","minmaxViewBufferIndex","shape","offset","ndims","min","max","s","assign","TYPE","isAccessorArray","GETTERS","complex128","arr","idx","complex64","default","getter","dtype","SETTERS","setter","float64","float32","int32","int16","int8","uint32","uint16","uint8","uint8c","generic","numel","x","copy","len","sh","copyIndexed","isString","FLG","Symbol","hasToStringTagSupport","toStringTag","has","hasOwnProperty","hasOwnProp","property","Sym","toStrTag","nativeClass","hasToStringTag","v","isOwn","tag","valueOf","test","isPrimitive","isObject","isColumnMajorString","shape2strides","order","isColumnMajor","columnmajor","rowmajor","ROW_MAJOR","ord","st","main$h","Number","strides2offset","o","strides2order","column","row","s1","s2","COLUMN_MAJOR","data","ndarraylike2object","xbuf","bool","dt","getData","getShape","getDType","ref","getStrides","getOffset","getOrder","accessorProtocol","accessors","accessorGetter","accessorSetter","isComplex128Array","isComplex64Array","hasFloat64Array","Float64Array","hasFloat64ArraySupport","GlobalFloat64Array","NaN","ctor","Float64Array$1","reinterpret","buffer","byteOffset","hasFloat32Array","Float32Array","FLOAT64_PINF","POSITIVE_INFINITY","GlobalFloat32Array","PINF","hasFloat32ArraySupport","Float32Array$1","reinterpret128","reinterpret64","hasUint8Array","Uint8Array","isUint8Array","UINT8_MAX","GlobalUint8Array","hasUint8ArraySupport","Uint8Array$1","stride2offset","N","stride","main$d","arrayfcn","predicate","isObjectLike","isBuffer","_isBuffer","reFunctionName","arrayfun","RE_FUNCTION_NAME","constructorName","REGEXP","ctor2dtypes","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Complex64Array","Complex128Array","BooleanArray","hasUint32Array","UINT32_MAX","GlobalUint32Array","hasUint32ArraySupport","Uint32Array$1","hasInt32Array","INT32_MAX","INT32_MIN","GlobalInt32Array","hasInt32ArraySupport","Int32Array$1","hasUint16Array","UINT16_MAX","GlobalUint16Array","hasUint16ArraySupport","Uint16Array$1","hasInt16Array","INT16_MAX","INT16_MIN","GlobalInt16Array","hasInt16ArraySupport","Int16Array$1","hasUint8ClampedArray","GlobalUint8ClampedArray","hasUint8ClampedArraySupport","Uint8ClampedArray$1","hasInt8Array","INT8_MAX","INT8_MIN","GlobalInt8Array","hasInt8ArraySupport","Int8Array$1","FLOAT64_NINF","NEGATIVE_INFINITY","floor","isInteger","NINF","isInt","isNonNegativeInteger","MAX_ARRAY_LENGTH","isArrayLikeObject","MAX_LENGTH","MAX_TYPED_ARRAY_LENGTH","isCollection","hasArrayBuffer","ArrayBuffer","isArrayBuffer","isPrimitiveArray","isObjectArray","isStringArray","isBoolean","Bool","Boolean","self","window","global","globalThis","getGlobal","codegen","Function","GlobalThis","Self","Win","Global","root","nodeList","document","childNodes","typedarray","ctorName","type","isFunction","typeOf","Complex128","real","imag","this","setEnumerableReadOnly","re","im","fround","FLOAT32_VIEW","float64ToFloat32$1","Complex64","float64ToFloat32","isComplexLike","isEven","hasIteratorSymbolSupport","iterator","IteratorSymbol","setNonEnumerableReadOnlyAccessor","z","fromIterator","it","next","done","realf","imagf","HAS_ITERATOR_SYMBOL","isComplexArray","_length","_buffer","isComplexArrayConstructor","getComplex64","buf","nargs","fromArray","RangeError","byteLength","ITERATOR_SYMBOL","src","thisArg","clbk","tmp","flg","fromIteratorMap","target","start","copyWithin","iter","entries","end","fcn","searchElement","fromIndex","separator","sep","join","keys","outbuf","reducer","initialValue","acc","sbuf","outlen","compareFcn","sort","begin","locales","options","opts","loc","toLocaleString","values","index","getComplex128","isBooleanArrayConstructor","val","a","b","CTORS","DTYPES","NTYPES","ctor2dtype","arraylike2object","M","gscal","alpha","ix","m","xget","xset","ndarray","zeroTo","complex","take","indices","loopOrder","sx","y","avx","iy","jx","jy","vx","vy","ux","sort2ins","isPositiveInteger","indexed","isArguments","bool$f","detect","hasArgumentsClass","isNan","isEnumerableProperty","propertyIsEnumerable","hasStringEnumBug","isEnum","isArguments$1","isConstructorPrototype","w","hasAutomationEqualityBug","k","win","EXCLUDED_KEYS","check","HAS_BUILTIN","skipConstructor","skipPrototype","isFcn","p","HAS_ENUM_PROTO_BUG","HAS_NON_ENUM_PROPS_BUG","HAS_WINDOW","error","NON_ENUMERABLE","getProto","main$5","Obj","getPrototypeOf","proto","getProto$1","objectPrototype","isPlainObject","isPrototypeOf","key","ownProps","invert","allowDupes","duplicates","objectKeys","dtypeEnums","int64","uint64","float16","complex32","binary","notype","userdefined_type","hash","objectInverse","enum2str","bytesPerElement","defaults","BLOCK_SIZE_IN_BYTES","BLOCK_SIZE_IN_ELEMENTS","blockSize","dtypes","nb","nullaryBlockSize","dtypeX","vind2bind","mode","ind","MODE","ANY","dx0","S0","i0","dx1","S1","i1","dx2","S2","i2","dx3","S3","i3","dx4","S4","i4","dx5","S5","i5","dx6","S6","i6","dx7","S7","i7","dx8","S8","i8","dx9","S9","i9","ACCESSOR_ANY","COMPLEX_ANY","BLOCKED_ANY","bsize","ox1","s0","ox","j0","j1","ox2","j2","ox3","s3","j3","ox4","s4","j4","ox5","s5","j5","ox6","s6","j6","ox7","s7","j7","ox8","s8","j8","ox9","s9","j9","BLOCKED_ACCESSOR_ANY","BLOCKED_COMPLEX_ANY","MAX_DIMS","reverse","method","hasMethod","internal","filled","ceil","trunc","ind2sub","getSubscripts","isStructConstructorLike","alignment","byteLengthOf","byteOffsetOf","bufferOf","isStruct","viewOf","ENUM","str2enum","resolve","t","layout","TABLE","ntypes","dt1","dt2","SAFE_CASTS","generateFullTable","generateTable","safeCasts","isSafeCast","from","to","resolveStr","CASTS","casts","isMostlySafeCast","SAME_KIND_CASTS","sameKindCasts","isSameKindCast","isAllowedCast","casting","contains","factory","search","newval","RE_SUFFIX","dtypeStrings","kind","all","isDataType","isBooleanDataType","isBooleanIndexDataType","isBufferLengthCompatible","minmax","modes","MODES","none","equiv","safe","unsafe","isSingleSegmentCompatible","isComplexFloatingPointDataType","dtypeChars","DATA","isComplexFloatingPointDataTypeChar","isDataTypeString","hasProp","enum","dtypeDesc","bfloat16","float128","int128","int256","uint128","uint256","dtypeChar","dtypeAlignment","DataType","char","description","byteOrder","dtype2desc","dtype2char","resolveEnum","dtype2alignment","isDataTypeObject","isStructDataType","isEqualDataType","v1","v2","_alignment","_byteLength","_byteOrder","_char","_description","_enum","_value","_type","isFloatingPointDataType","enumerated","throw","clamp","wrap","normalize","enumeration","isIndexMode","policies","POLICIES","promoted","accumulation","output","source","isInputCastingPolicy","isIntegerDataType","isIntegerIndexDataType","isMaskIndexDataType","isNumericDataType","orders","ORDERS","LAYOUTS","isOrder","same","boolean","boolean_and_generic","signed_integer","signed_integer_and_generic","unsigned_integer","unsigned_integer_and_generic","integer","integer_and_generic","floating_point","floating_point_and_generic","real_floating_point","real_floating_point_and_generic","complex_floating_point","complex_floating_point_and_generic","real_and_generic","numeric","numeric_and_generic","integer_index","integer_index_and_generic","boolean_index","boolean_index_and_generic","mask_index","mask_index_and_generic","default_index","isOutputDataTypePolicy","getOwnPropertySymbols","propertySymbols","enumerableProperties","isEnumerable","hasObjectAssign","objectAssign","isReadOnly","isRealDataType","isRealFloatingPointDataType","isRowMajor","isRowMajorString","view","GlobalArrayBuffer","isView","hasArrayBufferSupport","ArrayBuffer$1","hasDataView","DataView","isDataView","GlobalDataView","getFloat64","setFloat64","hasDataViewSupport","DataView$1","PRIVATE_BUFFER","CTOR_NAME","setNonEnumerableReadWriteAccessor","setReadOnlyAccessor","setReadWriteAccessor","uint16view","DATA_VIEW_METHODS","ctors","IS_LITTLE_ENDIAN","table","DEFAULT_CTOR","CMPLX_TO_REAL","getComplex","DEFAULTS","HASH","DEFAULT_DTYPE","reinterpretBoolean","isStructType","getStructArray","getTypedArray","getBigInt","getBoolean","getStruct","isSignedIntegerDataType","hasBigIntSupport","BigInt","isBigInt","isSymbol","constantFunction","hasBigInts","polyfill","isNegativeZero","FLOAT32_SMALLEST_SUBNORMAL","FLOAT32_MAX_SAFE_INTEGER","FLOAT32_MIN_SAFE_INTEGER","minFloatDataType","minDataType","boolean2number","bigint2number","setNumber","minSignedIntegerDataType","complexDType","castingMode","number2boolean","complex2boolean","setBoolean","bigint2boolean","BigInteger","setBigInt","boolean2bigint","gcopy","strideX","offsetX","strideY","offsetY","ybuf","oy","isStructInstance","gfill","xobj","yobj","xdata","ydata","yset","io","map","complex2number","views","dest","setStructArray","isComplexDataType","reinterpretComplex","setTypedArray","setComplex","setStruct","FIELD_PROPERTIES","isUnionType","fields","isUndefinedOrNull","gjoin","strided","isValidBoolean","ALIGNMENTS","MANDATORY_FIELD_NAMES","VALIDATORS","padding","hasProperties","JSON","stringify","normalizeUnion","dflg","normalizeField","resolveAlignment","resolveGetter","fieldIndex","names","setPadding","replacer","p1","layoutFormat","FORMATS","isFormat","Struct","fmt0","fmt1","fmt2","bfmt","ufmt","fmt","ib","c0","c1","c2","w1","linearFormat","foo","isFunctionNameSupported","TypedArray","Dummy","fcnName","hasHasInstanceSymbolSupport","hasInstance","HasInstanceSymbol","hasSupport","instanceOf","typeName","typedarray2json","NAMES","isTypedArray","FIELD_NAMES","BYTE_LENGTH","PARTITIONS","ALIGNMENT","ACCESSORS","FIELDS","o1","fieldNames","cache","byteOffsets","flatten","partitions","createPrototypeAccessors","struct2string","struct","toJSON","struct2json","structFactory","isUnsignedIntegerDataType","validateStruct","isScalarMostlySafeCompatible","validateBinary","isRealFloatingDataType","validateRealFloating","validateUnsignedInteger","validateSignedInteger","validateBoolean","validateComplexFloating","ns","hasEqualValuesIndexed","isAllowedDataTypeCast","isMostlySafeDataTypeCast","isSafeDataTypeCast","isSameKindDataTypeCast","T","fcns","r","sy","unaryBlockSize","dtypeY","ASSIGN","dy0","dy1","dy2","dy3","dy4","dy5","dy6","dy7","dy8","dy9","ACCESSOR_ASSIGN","BLOCKED_ASSIGN","oy1","oy2","oy3","oy4","oy5","oy6","oy7","oy8","oy9","BLOCKED_ACCESSOR_ASSIGN","COMPLEX_TO_REAL","boolean2uint8","complex2real","arrays","xmmv","ymmv","shx","shy","iox","ioy","d","ndarray2object","castReturn","complexCtors","ordx","ordy","accessorassignnd","assignnd","arraySlice","isColumnMajorContiguous","contiguous","isRowMajorContiguous","RE_CHARS","RegExp","isRegExp","rescape","LOW_MASK","TWO_32","BYTES","VIEW","float64ToInt64Bytes","hi","lo","setUint32","bytes","nbytes","_bytesPerElement","_dtype","_ndims","_offset","_order","_shape","_strides","_accessors","_iterationOrder","isContiguous","_flags","ROW_MAJOR_CONTIGUOUS","COLUMN_MAJOR_CONTIGUOUS","READONLY","__meta_dataview__","broadcastArray","dim","normalizeIndex","toUniqueNormalizedIndices","diagonal","dims","sr","sc","ro","co","L","readonly","copyFlags","iget","flgs","sm","_mode","_submode","setInt8","setInt16","setBigInt64","setInt32","COMPLEX_ASSIGN","BLOCKED_COMPLEX_ASSIGN","assignScalar","isCmplx","complexassignnd","isndarrayLike","isProtoOf","bbytes","sview","LAYOUT","StructArray","_byteOffset","isStructArray","Buffer","require$$0","GlobalBuffer","hasNodeBufferSupport","Buffer$1","notImplemented","CACHE","allocUnsafe$1","allocUnsafe","size","fill","bufferCtors","broadcastScalar","index_mode","ones","DEFAULT_REAL","DEFAULT_CMPLX","DEFAULT_BOOL","ORDER","atleastnd","complexDataType","anyIsEntryIn","binaryLoopOrder","sz","binaryBlockSize","dtypeZ","BINARY","zbuf","dz0","iz","dz1","dz2","dz3","dz4","dz5","dz6","dz7","dz8","dz9","ACCESSOR_BINARY","yget","zset","BLOCKED_BINARY","oz1","oz","oz2","oz3","oz4","oz5","oz6","oz7","oz8","oz9","BLOCKED_ACCESSOR_BINARY","hasAccessors","promotionRules","dtype1","dtype2","PROMOTION_RULES","promoteDataTypes","DEFAULT_SIGNED_INTEGER_DTYPE","DEFAULT_UNSIGNED_INTEGER_DTYPE","DEFAULT_REAL_FLOATING_POINT_DTYPE","idtype1","idtype2","odtype","policy","DEFAULT_INDEX_DTYPE","DEFAULT_COMPLEX_FLOATING_POINT_DTYPE","POLICY_TABLE1","promotedPolicy","POLICY_TABLE2","resolveDefaultRealFloatingPoint","resolveDefaultComplexFloatingPoint","COMPLEX2FLOAT","FLOAT2COMPLEX","xdtype","ydtype","outputDataType","indicesComplement","take2","o2","DEFAULT_ORDER","ndarraylike2ndarray","empty","gzeros","empty$4","emptyLike","dts","emptyArray","identity","broadcast","strategy","squeeze","workspace","incrementOffsets","offsets","inc","setViewOffsets","xo","oo","so","odata","oset","without","strategyX","strategyY","stridesX","stridesY","dv0","iv","dv1","sv","dv2","dv3","dv4","dv5","dv6","dv7","dv8","dv9","ov1","ov","takeIndexed","ov2","ov3","ov4","ov5","ov6","ov7","ov8","ov9","binaryReduceStrided1d","ldims","ordz","tmpx","tmpy","shc","shl","ioz","scx","scy","slx","sly","K","normalizeIndices","takeIndexed2","initializeViews","reshapeStrategy","accessorbinarynd","binarynd","isEmptyCollection","isArrayLike","arraylikefcn","reduce","isFunctionArray","dtypes2enums","dtypes2strings","spreadDimensions","isrm","S","toNormalizedIndices","isSortedAscending","isNonNegativeIntegerArray","isIntegerArray","validate","create","Ctor","createObject$1","clampIndex","wrapIndex","mp1","parent","iset","INDEX_MODE","submode","superCtor","createObject","inherit","getIndex","DTYPE","insertAt","everyBy","every","layouts","isLayout","gindexOfRow","A","strideA1","strideA2","offsetA","matches","da0","da1","ia","oa","abuf","aget","LDA","sa1","sa2","keepdims","BinaryStrided1dDispatch","idtypes","odtypes","types","_table","_idtypes","_odtypes","_policies","broadcastArrayExceptDimensions","dl","broadcastShapes","shapes","n1","n2","shz","xdt","ydt","zdt","binaryOutputDataType","binaryInputCastingDataType","baseEmpty","pop","Float16Array","Complex32Array","resolveString","COUNT","count","ACCESSOR_COUNT","COMPLEX_COUNT","BLOCKED_COUNT","BLOCKED_ACCESSOR_COUNT","BLOCKED_COMPLEX_COUNT","dtypes2signatures","nin","nout","EVERY","ACCESSOR_EVERY","COMPLEX_EVERY","BLOCKED_EVERY","BLOCKED_ACCESSOR_EVERY","BLOCKED_COMPLEX_EVERY","MAP","ACCESSOR_MAP","BLOCKED_MAP","BLOCKED_ACCESSOR_MAP","accessormapnd","mapnd","FIND","sentinelValue","ACCESSOR_FIND","flattenShape","depth","flattenShapeFrom","isNull","isUndefined","isValid","Slice","stop","step","_start","_stop","_step","isSlice","MultiSlice","proxy","_data","args2multislice","strict","code","int2slice","normalizeSlice","normalizeMultiSlice","sliceLength","x1","x2","sliceShape","sdims","nonreducedDimensions","sliceStart","rdims","slice2strides","nulls","reverseDimension","FOR_EACH","ACCESSOR_FOR_EACH","BLOCKED_FOR_EACH","BLOCKED_ACCESSOR_FOR_EACH","scalar2ndarray","INCLUDES","ACCESSOR_INCLUDES","COMPLEX_INCLUDES","BLOCKED_INCLUDES","BLOCKED_ACCESSOR_INCLUDES","BLOCKED_COMPLEX_INCLUDES","maybeBroadcastArray","COMPLEX128_NAN","nextCartesianIndex","NULLARY","ACCESSOR_NULLARY","BLOCKED_NULLARY","BLOCKED_ACCESSOR_NULLARY","copyToWorkspace","copyFromWorkspace","input","OPTS","strictTraversalOrder","nullarynd","nullaryStrided1d","nullary","mainFactory","NullaryStrided1dDispatch","_apply","odt","sliceFrom","sliceTo","reinterpretComplex128","reinterpretComplex64","reverseDimensions","rot90","sd0","sd1","d0","d1","rot180","rotr90","sn","rotl90","__array_meta_dataview__","serializeMetaData","somend","SOME","ACCESSOR_SOME","accessorsomend","COMPLEX_SOME","complexsomend","BLOCKED_SOME","BLOCKED_ACCESSOR_SOME","BLOCKED_COMPLEX_SOME","ternaryLoopOrder","sw","ternaryBlockSize","dtypeW","TERNARY","wbuf","dx","dy","dz","dw","iw","dw0","dw1","dw2","dw3","dw4","dw5","dw6","dw7","dw8","dw9","ACCESSOR_TERNARY","zget","wset","BLOCKED_TERNARY","ow1","ow","ow2","ow3","ow4","ow5","ow6","ow7","ow8","ow9","BLOCKED_ACCESSOR_TERNARY","recurse","item","transpose","unflattenShape","sizes","unflatten","UNARY","ACCESSOR_UNARY","BLOCKED_UNARY","BLOCKED_ACCESSOR_UNARY","initial","isTypedArrayLike","MAX","COMPLEX64","COMPLEX128","BOOLEAN","idtype","unaryReduceStrided1d","sl","accessorunarynd","unarynd","put","vo","maxIndex","idata","vdata","vget","lidx","cdims","cidx","aidx","ibuf","hasOpts","unaryReduceStrided1dBy","ctx","cb","sub","UnaryStrided1dDispatch","unaryOutputDataType","unaryInputCastingDataType","ndarrayAssign","UnaryStrided1dDispatchBy","unaryReduceSubarray","unaryReduceSubarrayBy","unaryStrided1d","unary","getValue","_i","setValue","accessoranynd","complexanynd","anynd","assert","zmmv","binaryReduceStrided1dDispatch","azeros","bufferDataType","ch","accessorcountnd","complexcountnd","countnd","dtypeEnum2Str","createTable","dtypeResolveEnum","dtypeResolveStr","dtypeStr2Enum","accessoreverynd","complexeverynd","everynd","accessorfindnd","findnd","accessorForEachnd","forEachnd","accessorincludesnd","complexincludesnd","includesnd","meta","CNAN","accessornullarynd","nullaryLoopOrder","nullaryStrided1dDispatch","outputPolicyEnum2Str","outputPolicyStr2Enum","su","dtypeU","dtypeV","descriptors","nmodes","wmmv","shw","iow","ordw","accessorternarynd","ternarynd","zdtype","reps","sho","shi","sto","Ds","si","xr","xv","addon","fallback","dataX","dataY","viewX","viewY","serialize","unaryLoopOrder","unaryReduceStrided1dAssignStruct","unaryReduceStrided1dDispatch","unaryReduceStrided1dDispatchBy","unaryStrided1dDispatch","labels","list","Datum"],"mappings":"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AI7U,EAAK+F,EAAMiO,KAC1BA,IAAMyF,EACN5E,IAAMke,EAEP/e,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CAUX,ECrQA,SAA2BtwB,EAAG0R,GAC7B,IAAI+G,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACA3I,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZ4W,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O,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtB2hB,EAAME,IAAO5pB,EAAK7L,EAAMiO,IAAM4X,EAAM/W,KACpCb,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EAEPvnB,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,CACN,CACDznB,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,CACN,CACD1nB,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,CACN,CACD3nB,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,CACN,CACD5nB,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,CACN,CAOR,EC3NA,SAA0B54B,EAAG0R,EAAG9E,EAAG+B,GAClC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA7hB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAkI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAngB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAgX,EACAC,EACAC,EACAC,EACAC,EACAC,EACAsI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAx5B,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,GACAlI,GACAie,GACAuI,GACArf,GACAgQ,GACA0Q,GACAvoB,GACAa,GACA2mB,GACA7hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAvX,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,UACzCqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GAGPxf,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,OAGvC0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OAGP2E,EAAO9C,EAAE4C,KAC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GA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtB2hB,EAAME,IAAO5pB,EAAK7L,EAAMiO,IAAM4X,EAAM/W,KACpCb,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EAEPvnB,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,CACN,CACDznB,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,CACN,CACD1nB,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,CACN,CACD3nB,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,CACN,CACD5nB,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,CACN,CACD7nB,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,CACN,CAQT,ECxPA,SAA0B74B,EAAG0R,EAAG9E,EAAG+B,GAClC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA7hB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAiI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAqI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAz5B,EACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACArI,GACAie,GACAuI,GACArf,GACAgQ,GACA0Q,GACAvoB,GACAa,GACA2mB,GACA7hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,UACzCqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GAGPxf,EAAQ3C,GAAW9V,EAAEd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AAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,GAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,GAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtB2hB,EAAME,IAAO5pB,EAAK7L,EAAMiO,IAAM4X,EAAM/W,KACpCb,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EAEPvnB,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,CACN,CACDznB,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,CACN,CACD1nB,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,CACN,CACD3nB,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,CACN,CACD5nB,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,CACN,CACD7nB,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,CACN,CACD9nB,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,CACN,CACD/nB,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,CACN,CAUX,EClTA,SAA2B/4B,EAAG0R,EAAG9E,EAAG+B,GACnC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA7hB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAmI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA35B,GACAwY,GACAlW,GACAC,GACAwW,GACAG,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EACNqI,IAAMI,CACN,CACD5nB,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,CACN,CACD7nB,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,CACN,CAQT,EChQA,SAA0B74B,EAAG0R,EAAG9E,EAAG+B,GAClC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACApnB,EACAioB,EACAC,EACA3iB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAiI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAqI,EACAE,EACAC,EACAC,EACAC,EACAC,GACAC,GACAz5B,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACArI,GACAie,GACAuI,GACArf,GACAgQ,GACA0Q,GACAvoB,GACAa,GACA2mB,GACA7hB,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GAmCJ,IA7BAlC,IADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,UACzCqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GAGPxf,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,OAGvC0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GACT4I,EAAML,GAAG,GAGThnB,EAAOjR,EAAEyD,UAAU,GACnBy1B,EAAOxnB,EAAEjO,UAAU,GACnB01B,EAAOvsB,EAAEnJ,UA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K+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,GAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,GAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtByiB,EAAMd,EAAME,GAAI5pB,EAAKsC,EAAMnO,EAAMiO,IAAMmoB,EAAMvQ,EAAM/W,MACnDb,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EAEPvnB,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,CACN,CACDznB,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,CACN,CACD1nB,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,CACN,CACD3nB,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,CACN,CACD5nB,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,CACN,CACD7nB,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,CACN,CACD9nB,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,CACN,CACD/nB,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,CACN,CAUX,EC1TA,SAA2B/4B,EAAG0R,EAAG9E,EAAG+B,GACnC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACApnB,EACAioB,EACAC,EACA3iB,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAmI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA35B,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAie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,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CAUX,ECjQA,SAAwBtwB,EAAG0R,EAAG/C,EAAKX,GAClC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApyB,EACAqB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA3G,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GA2BJ,IArBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACP5wB,EAAM2b,GAASpY,GAAEvD,KAGjB2Z,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GAGHrV,GAAKla,EAAG,GAAIka,GAAK,GAUtB,IATKA,GAAK5B,GACTL,GAAKiC,GACLA,GAAK,IAELjC,GAAKK,EACL4B,IAAM5B,GAEP0B,EAAMvB,GAAOyB,GAAG5I,GAAG,GACnByf,EAAMtI,GAAOvO,GAAGqV,GAAG,GACbxV,GAAK/Z,EAAG,GAAI+Z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AK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBy1B,EAAMK,GAAO79B,EAAK7L,EAAMiO,GAAM4X,EAAM/W,GAAMymB,EAAME,IAChDxnB,GAAMyF,EACN5E,GAAMke,EACNyI,GAAMD,EACNkU,GAAMC,EAEP17B,GAAM4F,EACN/E,GAAMme,EACNwI,GAAMC,EACNgU,GAAME,CACN,CACD37B,GAAM+F,EACNlF,GAAMoe,EACNuI,GAAME,EACN+T,GAAMG,CACN,CACD57B,GAAMkG,EACNrF,GAAMqe,EACNsI,GAAMG,EACN8T,GAAMI,CACN,CACD77B,GAAMqG,EACNxF,GAAMse,EACNqI,GAAMI,EACN6T,GAAMK,CACN,CACD97B,GAAMwG,EACN3F,GAAMue,EACNoI,GAAMK,EACN4T,GAAMM,CACN,CACF,EC9KA,SAAoB9sC,EAAG0R,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC3C,IAAI7L,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAkI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5sC,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAie,EACAuI,EACA8T,EACAh7B,EACAa,EACA2mB,EACAiU,EACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GAkGJ,IA7FAzX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACPm6B,EAAKrrB,EAAE9O,QACPiuC,EAAK/4B,EAAElV,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,E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,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KACtBy1B,EAAMK,GAAO79B,EAAK7L,EAAMiO,GAAM4X,EAAM/W,GAAMymB,EAAME,IAChDxnB,GAAMyF,EACN5E,GAAMke,EACNyI,GAAMD,EACNkU,GAAMC,EAEP17B,GAAM4F,EACN/E,GAAMme,EACNwI,GAAMC,EACNgU,GAAME,CACN,CACD37B,GAAM+F,EACNlF,GAAMoe,EACNuI,GAAME,EACN+T,GAAMG,CACN,CACD57B,GAAMkG,EACNrF,GAAMqe,EACNsI,GAAMG,EACN8T,GAAMI,CACN,CACD77B,GAAMqG,EACNxF,GAAMse,EACNqI,GAAMI,EACN6T,GAAMK,CACN,CACD97B,GAAMwG,EACN3F,GAAMue,EACNoI,GAAMK,EACN4T,GAAMM,CACN,CACD/7B,GAAM2G,EACN9F,GAAMwe,EACNmI,GAAMM,EACN2T,GAAMO,CACN,CACF,ECpMA,SAAoB/sC,EAAG0R,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC3C,IAAI7L,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAiI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7sC,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAie,EACAuI,EACA8T,GACAh7B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GA4GJ,IAvGA5X,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACPm6B,EAAKrrB,EAAE9O,QACPiuC,GAAK/4B,EAAElV,QACFumB,GAEJ5N,EAAK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GA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB22B,EAAMlB,EAAMK,EAAI79B,EAAKsC,EAAMnO,EAAMiO,GAAMmoB,EAAMvQ,EAAM/W,GAAMw7B,EAAM/U,EAAME,KACrExnB,GAAMyF,EACN5E,GAAMke,EACNyI,GAAMD,EACNkU,GAAMC,EAEP17B,GAAM4F,EACN/E,GAAMme,EACNwI,GAAMC,EACNgU,GAAME,CACN,CACD37B,GAAM+F,EACNlF,GAAMoe,EACNuI,GAAME,EACN+T,GAAMG,CACN,CACD57B,GAAMkG,EACNrF,GAAMqe,EACNsI,GAAMG,EACN8T,GAAMI,CACN,CACD77B,GAAMqG,EACNxF,GAAMse,EACNqI,GAAMI,EACN6T,GAAMK,CACN,CACD97B,GAAMwG,EACN3F,GAAMue,EACNoI,GAAMK,EACN4T,GAAMM,CACN,CACF,ECxLA,SAAoB9sC,EAAG0R,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC3C,IAAI7L,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAkI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5sC,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAie,EACAuI,EACA8T,EACAh7B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GAwGJ,IAnGAzX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACPm6B,EAAKrrB,EAAE9O,QACPiuC,EAAK/4B,EAAElV,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAK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AMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACF,ECpOA,SAAoBhtC,EAAG0R,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC3C,IAAI7L,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAgI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA0T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9sC,EACAsW,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAxG,GACAie,GACAuI,GACA8T,GACAh7B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GA4HJ,IAvHA/X,EAAKH,EAAE9B,MACPuT,GAAKzR,EAAElC,QACP4xB,GAAKhe,EAAE5T,QACPm6B,GAAKrrB,EAAE9O,QACPiuC,GAAK/4B,EAAElV,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,GAAK/W,EAAI,GACTkX,GAAKlX,EAAI,GACTqX,GAAKrX,EAAI,GACTwX,GA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AAMke,EACNyI,IAAMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACDj8B,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,EACNyT,IAAMS,CACN,CACF,EC1PA,SAAqBjtC,EAAG0R,EAAG9E,EAAGoG,EAAGqR,EAAY1V,GAC5C,IAAI7L,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAyT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/sC,GACAsW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3G,GACAie,GACAuI,GACA8T,GACAh7B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GAsIJ,IAjIAlY,GAAKH,EAAE9B,MACPuT,GAAKzR,EAAElC,QACP4xB,GAAKhe,EAAE5T,QACPm6B,GAAKrrB,EAAE9O,QACPiuC,GAAK/4B,EAAElV,QACFumB,GAEJ5N,GAAKtW,GAAI,GACTyW,GAAKzW,GAAI,GACT4W,GAAK5W,GAAI,GACT+W,GAAK/W,GAAI,GACTkX,GAAKlX,GAAI,GACTqX,GAAKrX,GAAI,GACTwX,GAAKxX,GAAI,GACT2X,GAAK3X,GAAI,GACT8X,GAAK9X,GAAI,GACTiY,GAAKjY,GAAI,GACTqW,EAAM/E,GAAI,GACVkF,EAAMlF,GAAI,GAAQgF,GAAGhF,GAAG,GACxBqF,EAAMrF,GAAI,GAAQmF,GAAGnF,GAAG,GACxBwF,EAAMxF,GAAI,GAAQsF,GAAGtF,GAAG,GACxB2F,EAAM3F,GAAI,GAAQyF,GAAGzF,GAAG,GACxB8F,EAAM9F,GAAI,GAAQ4F,GAAG5F,GAAG,GACxBiG,EAAMjG,GAAI,GAAQ+F,GAAG/F,GAAG,GACxBoG,EAAMpG,GAAI,GAAQkG,GAAGlG,GAAG,GACxBuG,EAAMvG,GAAI,GAAQqG,GAAGrG,GAAG,GACxB0G,EAAM1G,GAAI,GAAQwG,GAAGxG,GAAG,GACxBqe,EAAMJ,GAAI,GACVK,EAAML,GAAI,GAAQjZ,GAAGiZ,GAAG,GACxBM,EAAMN,GAAI,GAAQ9Y,GAAG8Y,GAAG,GACxBO,EAAMP,GAAI,GAAQ3Y,GAAG2Y,GAAG,GACxBQ,EAAMR,GAAI,GAAQxY,GAAGwY,GAAG,GACxBS,EAAMT,GAAI,GAAQrY,GAAGqY,GAAG,GACxBU,EAAMV,GAAI,GAAQlY,GAAGkY,GAAG,GACxBW,EAAMX,GAAI,GAAQ/X,GAAG+X,GAAG,GACxBY,EAAMZ,GAAI,GAAQ5X,GAAG4X,GAAG,GACxBa,EAAMb,GAAI,GAAQzX,GAAGyX,GAAG,GACxB4I,EAAML,GAAI,GACVO,EAAMP,GAAI,GAAQxhB,GAAGwhB,GAAG,GACxBQ,EAAMR,GAAI,GAAQrhB,GAAGqhB,GAAG,GACxBS,EAAMT,GAAI,GAAQlhB,GAAGkhB,GAAG,GACxBU,EAAMV,GAAI,GAAQ/gB,GAAG+gB,GAAG,GACxBW,EAAMX,GAAI,GAAQ5gB,GAAG4gB,GAAG,GACxBY,EAAMZ,GAAI,GAAQzgB,GAAGygB,GAAG,GACxBa,EAAMb,GAAI,GAAQtgB,GAAGsgB,GAAG,GACxBc,EAAMd,GAAI,GAAQngB,GAAGmgB,GAAG,GACxBe,EAAMf,GAAI,GAAQhgB,GAAGggB,GAAG,GACxBwU,EAAMV,GAAI,GACVW,EAAMX,GAAI,GAAQt1B,GAAGs1B,GAAG,GACxBY,EAAMZ,GAAI,GAAQn1B,GAAGm1B,GAAG,GACxBa,EAAMb,GAAI,GAAQh1B,GAAGg1B,GAAG,GACxBc,EAAMd,GAAI,GAAQ70B,GAAG60B,GAAG,GACxBe,EAAMf,GAAI,GAAQ10B,GAAG00B,GAAG,GACxBgB,EAAMhB,GAAI,GAAQv0B,GAAGu0B,GAAG,GACxBiB,EAAMjB,GAAI,GAAQp0B,GAAGo0B,GAAG,GACxBkB,EAAMlB,GAAI,GAAQj0B,GAAGi0B,GAAG,GACxBmB,EAAMnB,GAAI,GAAQ9zB,GAAG8zB,GAAG,KAGxBt1B,GAAKtW,GAAI,GACTyW,GAAKzW,GAAI,GACT4W,GAAK5W,GAAI,GACT+W,GAAK/W,GAAI,GACTkX,GAAKlX,GAAI,GACTqX,GAAKrX,GAAI,GACTwX,GAAKxX,GAAI,GACT2X,GAAK3X,GAAI,GACT8X,GAAK9X,GAAI,GACTiY,GAAKjY,GAAI,GACTqW,EAAM/E,GAAI,GACVkF,EAAMlF,GAAI,GAAQgF,GAAGhF,GAAG,GACxBqF,EAAMrF,GAAI,GAAQmF,GAAGnF,GAAG,GACxBwF,EAAMxF,GAAI,GAAQsF,GAAGtF,GAAG,GACxB2F,EAAM3F,GAAI,GAAQyF,GAAGzF,GAAG,GACxB8F,EAAM9F,GAAI,GAAQ4F,GAAG5F,GAAG,GACxBiG,EAAMjG,GAAI,GAAQ+F,GAAG/F,GAAG,GACxBoG,EAAMpG,GAAI,GAAQkG,GAAGlG,GAAG,GACxBuG,EAAMvG,GAAI,GAAQqG,GAAGrG,GAAG,GACxB0G,EAAM1G,GAAI,GAAQwG,GAAGxG,GAAG,GACxBqe,EAAMJ,GAAI,GACVK,EAAML,GAAI,GAAQjZ,GAAGiZ,GAAG,GACxBM,EAAMN,GAAI,GAAQ9Y,GAAG8Y,GAAG,GACxBO,EAAMP,GAAI,GAAQ3Y,GAAG2Y,GAAG,GACxBQ,EAAMR,GAAI,GAAQxY,GAAGwY,GAAG,GACxBS,EAAMT,GAAI,GAAQrY,GAAGqY,GAAG,GACxBU,EAAMV,GAAI,GAAQlY,GAAGkY,GAAG,GACxBW,EAAMX,GAAI,GAAQ/X,GAAG+X,GAAG,GACxBY,EAAMZ,GAAI,GAAQ5X,GAAG4X,GAAG,GACxBa,EAAMb,GAAI,GAAQzX,GAAGyX,GAAG,GACxB4I,EAAML,GAAI,GACVO,EAAMP,GAAI,GAAQxhB,GAAGwhB,GAAG,GACxBQ,EAAMR,GAAI,GAAQrhB,GAAGqhB,GAAG,GACxBS,EAAMT,GAAI,GAAQlhB,GAAGkhB,GAAG,GACxBU,EAAMV,GAAI,GAAQ/gB,GAAG+gB,GAAG,GACxBW,EAAMX,GAAI,GAAQ5gB,GAAG4gB,GAAG,GACxBY,EAAMZ,GAAI,GAAQzgB,GAAGygB,GAAG,GACxBa,EAAMb,GAAI,GAAQtgB,GAAGsgB,GAAG,GACxBc,EAAMd,GAAI,GAAQngB,GAAGmgB,GAAG,GACxBe,EAAMf,GAAI,GAAQhgB,GAAGggB,GAAG,GACxBwU,EAAMV,GAAI,GACVW,EAAMX,GAAI,GAAQt1B,GAAGs1B,GAAG,GACxBY,EAAMZ,GAAI,GAAQn1B,GAAGm1B,GAAG,GACxBa,EAAMb,GAAI,GAAQh1B,GAAGg1B,GAAG,GACxBc,EAAMd,GAAI,GAAQ70B,GAAG60B,GAAG,GACxBe,EAAMf,GAAI,GAAQ10B,GAAG00B,GAAG,GACxBgB,EAAMhB,GAAI,GAAQv0B,GAAGu0B,GAAG,GACxBiB,EAAMjB,GAAI,GAAQp0B,GAAGo0B,GAAG,GACxBkB,EAAMlB,GAAI,GAAQj0B,GAAGi0B,GAAG,GACxBmB,EAAMnB,GAAI,GAAQ9zB,GAAG8zB,GAAG,IAGzBh7B,GAAK/Q,EAAE7B,OACPyT,GAAKF,EAAEvT,OACPo6B,GAAK3rB,EAAEzO,OACPquC,GAAKx5B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGTqO,EAAOjR,EAAEyD,UAAW,GACpBy1B,EAAOxnB,EAAEjO,UAAW,GACpB2pC,EAAOp6B,EAAEvP,UAAW,GACpB4pC,EAAOzgC,EAAEnJ,UAAW,GAGd4U,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKD,GAAIC,KACtB22B,EAAMlB,EAAMK,GAAI79B,EAAKsC,EAAMnO,EAAMiO,IAAMmoB,EAAMvQ,EAAM/W,IAAMw7B,EAAM/U,EAAME,MACrExnB,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACDj8B,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,EACNyT,IAAMS,CACN,CACDl8B,IAAMoH,EACNvG,IAAM2e,EACNgI,IAAMS,EACNwT,IAAMU,CACN,CACF,GtBtTII,GAAkB,CuB8BtB,SAA2BttC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAmZ,EACAC,EACAuI,EACAE,EACAiU,EACAC,EACAh0B,EACAgY,EACA2I,EACAkU,EACAptC,EACAwY,EACAlW,EACAgP,EACAie,EACAuI,EACA8T,EACAnzB,EACAgQ,EACA0Q,EACAkU,EACAz8B,EACAa,EACA2mB,EACAiU,EACA91B,EACAG,EACAgC,EACAC,EACAzW,EAkCJ,IA5BAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GACPuI,EAAK51B,EAAE41B,GACP8T,EAAK1pC,EAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OACPm7B,EAAK1sB,EAAEzO,OACPqvC,EAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GACT4I,EAAML,EAAG,GACTwU,EAAMV,EAAG,GAGHjzB,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBif,EAAM9H,EAAO9P,EAAG4W,EAAG,GACnB2J,EAAMC,EAAOxgB,EAAGmf,EAAG,GACnBsV,EAAMC,EAAO10B,EAAGizB,EAAG,GACblzB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAqBtB,IApBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GACnB6I,EAAKc,EAAQxgB,EAAGof,EAAG,GACnBuU,EAAKe,EAAQ10B,EAAGkzB,EAAG,GAGnBp1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GACtB8I,EAAMP,EAAG,GAAOtf,EAAGsf,EAAG,GACtByU,EAAMX,EAAG,GAAOpzB,EAAGozB,EAAG,GAGhBl1B,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBy1B,EAAMK,GAAO79B,EAAK7L,EAAMiO,GAAM4X,EAAM/W,GAAMymB,EAAME,IAChDxnB,GAAMyF,EACN5E,GAAMke,EACNyI,GAAMD,EACNkU,GAAMC,EAEP17B,GAAM4F,EACN/E,GAAMme,EACNwI,GAAMC,EACNgU,GAAME,CACN,CAGJ,ECrHA,SAA2B1sC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACAsI,EACAE,EACAC,EACAgU,EACAC,EACAC,EACAj0B,EACAK,EACA2X,EACAC,EACA0I,EACAE,EACAgU,EACAE,EACAttC,EACAwY,EACAlW,EACAC,EACA+O,EACAie,EACAuI,EACA8T,EACAnzB,EACAgQ,EACA0Q,EACAkU,EACAz8B,EACAa,EACA2mB,EACAiU,EACA91B,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EAkCJ,IA5BAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GACPuI,EAAK51B,EAAE41B,GACP8T,EAAK1pC,EAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OACPm7B,EAAK1sB,EAAEzO,OACPqvC,EAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GACT4I,EAAML,EAAG,GACTwU,EAAMV,EAAG,GAGH/yB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBkf,EAAM/H,EAAO5P,EAAG0W,EAAG,GACnB6J,EAAMD,EAAOtgB,EAAGif,EAAG,GACnBwV,EAAMD,EAAOx0B,EAAG+yB,EAAG,GACbjzB,EAAK3Y,EAAG,GAAI2Y,EAAK,GAgBtB,IAfKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtB+I,EAAMR,EAAG,GAAOx1B,EAAGw1B,EAAG,GACtB0U,EAAMZ,EAAG,GAAOtpC,EAAGspC,EAAG,GACtBrzB,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACpB2J,EAAME,EAAQzgB,EAAGmf,EAAG,GACpBsV,EAAME,EAAQ30B,EAAGizB,EAAG,GACdlzB,EAAK1Y,EAAG,GAAI0Y,EAAK,GAqBtB,IApBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GACnB6I,EAAKc,EAAQxgB,EAAGof,EAAG,GACnBuU,EAAKe,EAAQ10B,EAAGkzB,EAAG,GAGnBp1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GACtB8I,EAAMP,EAAG,GAAOtf,EAAGsf,EAAG,GACtByU,EAAMX,EAAG,GAAOpzB,EAAGozB,EAAG,GAGhB/0B,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBy1B,EAAMK,GAAO79B,EAAK7L,EAAMiO,GAAM4X,EAAM/W,GAAMymB,EAAME,IAChDxnB,GAAMyF,EACN5E,GAAMke,EACNyI,GAAMD,EACNkU,GAAMC,EAEP17B,GAAM4F,EACN/E,GAAMme,EACNwI,GAAMC,EACNgU,GAAME,CACN,CACD37B,GAAM+F,EACNlF,GAAMoe,EACNuI,GAAME,EACN+T,GAAMG,CACN,CAIL,ECzJA,SAA2B3sC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACAqI,EACAE,EACAC,EACAC,EACA+T,EACAC,EACAC,EACAC,EACAl0B,EACAK,EACAE,EACAyX,EACAC,EACAC,EACAyI,EACAE,EACAC,EACA+T,EACAE,EACAC,EACAvtC,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAie,EACAuI,EACA8T,EACAnzB,EACAgQ,EACA0Q,EACAkU,EACAz8B,EACAa,EACA2mB,EACAiU,GACA91B,GACAG,GACAG,GACAG,GACA0B,GACAC,GACAE,GACAG,GACA9W,GAkCJ,IA5BAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GACPuI,EAAK51B,GAAE41B,GACP8T,EAAK1pC,GAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OACPm7B,EAAK1sB,EAAEzO,OACPqvC,EAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GACT4I,EAAML,EAAG,GACTwU,EAAMV,EAAG,GAGH5yB,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPQ,EAAML,EAAOO,GAAG1H,EAAG,GACnBmf,EAAMhI,EAAOzP,GAAGuW,EAAG,GACnB8J,EAAMF,EAAOngB,GAAG8e,EAAG,GACnByV,EAAMF,EAAOr0B,GAAG4yB,EAAG,GACb/yB,GAAK7Y,EAAG,GAAI6Y,GAAK,GAgBtB,IAfKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtBgJ,EAAMT,EAAG,GAAOv1B,EAAGu1B,EAAG,GACtB2U,EAAMb,EAAG,GAAOrpC,EAAGqpC,EAAG,GACtBhzB,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACpB6J,EAAMC,EAAQxgB,GAAGif,EAAG,GACpBwV,EAAMC,EAAQ10B,GAAG+yB,EAAG,GACdjzB,GAAK3Y,EAAG,GAAI2Y,GAAK,GAgBtB,IAfKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtB+I,EAAMR,EAAG,GAAOx1B,EAAGw1B,EAAG,GACtB0U,EAAMZ,EAAG,GAAOtpC,EAAGspC,EAAG,GACtBrzB,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACpB2J,EAAME,EAAQzgB,GAAGmf,EAAG,GACpBsV,EAAME,EAAQ30B,GAAGizB,EAAG,GACdlzB,GAAK1Y,EAAG,GAAI0Y,GAAK,GAqBtB,IApBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GACnB6I,EAAKc,EAAQxgB,GAAGof,EAAG,GACnBuU,GAAKe,EAAQ10B,GAAGkzB,EAAG,GAGnBp1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GACtB8I,EAAMP,EAAG,GAAOtf,EAAGsf,EAAG,GACtByU,EAAMX,EAAG,GAAOpzB,EAAGozB,EAAG,GAGhB50B,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBy1B,EAAMK,IAAO79B,EAAK7L,EAAMiO,GAAM4X,EAAM/W,GAAMymB,EAAME,IAChDxnB,GAAMyF,EACN5E,GAAMke,EACNyI,GAAMD,EACNkU,IAAMC,EAEP17B,GAAM4F,EACN/E,GAAMme,EACNwI,GAAMC,EACNgU,IAAME,CACN,CACD37B,GAAM+F,EACNlF,GAAMoe,EACNuI,GAAME,EACN+T,IAAMG,CACN,CACD57B,GAAMkG,EACNrF,GAAMqe,EACNsI,GAAMG,EACN8T,IAAMI,CACN,CAKN,EC3LA,SAA2B5sC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACAoI,EACAE,EACAC,EACAC,EACAC,EACA8T,EACAC,EACAC,EACAC,EACAC,EACAn0B,EACAK,EACAE,EACAG,EACAsX,EACAC,EACAC,EACAC,EACAwI,EACAE,EACAC,EACAC,EACA8T,EACAE,EACAC,EACAC,EACAxtC,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAie,EACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAuB,GACAC,GACAE,GACAG,GACAG,GACAjX,GAkCJ,IA5BAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GACP8T,GAAK1pC,GAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OACPqvC,GAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GACT4I,EAAML,GAAG,GACTwU,EAAMV,GAAG,GAGHzyB,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPW,EAAMR,GAAOU,GAAG7H,EAAG,GACnBof,EAAMjI,GAAOtP,GAAGoW,EAAG,GACnB+J,EAAMH,GAAOhgB,GAAG2e,GAAG,GACnB0V,EAAMH,GAAOl0B,GAAGyyB,GAAG,GACb5yB,GAAKhZ,EAAG,GAAIgZ,GAAK,GAgBtB,IAfKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBiJ,EAAMV,GAAG,GAAO/e,EAAG+e,GAAG,GACtB4U,EAAMd,GAAG,GAAO7yB,EAAG6yB,GAAG,GACtB9yB,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACpB8J,EAAMC,EAAQtgB,GAAG8e,GAAG,GACpByV,EAAMC,EAAQx0B,GAAG4yB,GAAG,GACd/yB,GAAK7Y,EAAG,GAAI6Y,GAAK,GAgBtB,IAfKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtBgJ,EAAMT,GAAG,GAAOv1B,EAAGu1B,GAAG,GACtB2U,EAAMb,GAAG,GAAOrpC,EAAGqpC,GAAG,GACtBhzB,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACpB6J,EAAMC,EAAQxgB,GAAGif,GAAG,GACpBwV,EAAMC,EAAQ10B,GAAG+yB,GAAG,GACdjzB,GAAK3Y,EAAG,GAAI2Y,GAAK,GAgBtB,IAfKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtB+I,EAAMR,GAAG,GAAOx1B,EAAGw1B,GAAG,GACtB0U,EAAMZ,GAAG,GAAOtpC,EAAGspC,GAAG,GACtBrzB,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACpB2J,EAAME,EAAQzgB,GAAGmf,GAAG,GACpBsV,EAAME,EAAQ30B,GAAGizB,GAAG,GACdlzB,GAAK1Y,EAAG,GAAI0Y,GAAK,GAqBtB,IApBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,EAAG,GACnB6I,GAAKc,EAAQxgB,GAAGof,GAAG,GACnBuU,GAAKe,EAAQ10B,GAAGkzB,GAAG,GAGnBp1B,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GACtB8I,EAAMP,GAAG,GAAOtf,EAAGsf,GAAG,GACtByU,EAAMX,GAAG,GAAOpzB,EAAGozB,GAAG,GAGhBz0B,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBy1B,EAAMK,IAAO79B,EAAK7L,EAAMiO,IAAM4X,EAAM/W,IAAMymB,EAAME,KAChDxnB,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CAMP,EC7NA,SAA2B7sC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAmI,EACAE,EACAC,EACAC,EACAC,EACAC,EACA6T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAp0B,EACAK,EACAE,EACAG,EACAG,EACAmX,EACAC,EACAC,EACAC,EACAC,EACAuI,EACAE,EACAC,EACAC,EACAC,EACA6T,EACAE,EACAC,EACAC,EACAC,EACAztC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACA/H,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAoB,GACAC,GACAE,GACAG,GACAG,GACAG,GACApX,GAkCJ,IA5BAlC,IADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,GAAKpP,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7B,IAAMH,GAAK,EAAGA,GAAKpU,GAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtBy1B,EAAMK,IAAO79B,EAAK7L,EAAMiO,IAAM4X,EAAM/W,IAAMymB,EAAME,KAChDxnB,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CAQT,ECjSA,SAA2B/sC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAiI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAt0B,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAqI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACA2T,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACA3tC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACArI,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,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me,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACDj8B,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,EACNyT,IAAMS,CACN,CAUX,ECrWA,SAA4BjtC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACvC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACA31B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAyT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAx0B,EACAK,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAuW,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAmI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAyT,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA7tC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GAkCJ,IA5BAlC,IADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GACP8T,GAAK1pC,GAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OACPqvC,GAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GACT4I,EAAML,GAAG,GACTwU,EAAMV,GAAG,GAGH1xB,GAAKla,GAAG,GAAIka,GAAK,GAYtB,IAXKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM5B,GAEP0B,GAAMvB,GAAOyB,GAAG5I,GAAG,GACnByf,GAAMtI,GAAOvO,GAAGqV,GAAG,GACnBoK,GAAMR,GAAOjf,GAAG4d,GAAG,GACnB+V,GAAMR,GAAOnzB,GAAG0xB,GAAG,GACb7xB,GAAK/Z,GAAG,GAAI+Z,GAAK,GAgBtB,IAfKA,GAAKzB,GACTwB,GAAKC,GACLA,GAAK,IAELD,GAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,GAAG,GAAOwI,GAAGxI,GAAG,GACtB8e,EAAMb,GAAG,GAAOzV,GAAGyV,GAAG,GACtBsJ,EAAMf,GAAG,GAAOhe,GAAGge,GAAG,GACtBiV,EAAMnB,GAAG,GAAO9xB,GAAG8xB,GAAG,GACtB/xB,GAAMG,GAAQD,GAAGzI,GAAG,GACpBwf,GAAMC,GAAQhX,GAAGwV,GAAG,GACpBmK,GAAMC,GAAQ5f,GAAG+d,GAAG,GACpB8V,GAAMC,GAAQ9zB,GAAG6xB,GAAG,GACdhyB,GAAK5Z,GAAG,GAAI4Z,GAAK,GAgBtB,IAfKA,GAAKtB,GACTqB,GAAKC,GACLA,GAAK,IAELD,GAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,GAAGrI,GAAG,GACtB6e,EAAMZ,GAAG,GAAO5V,GAAG4V,GAAG,GACtBqJ,EAAMd,GAAG,GAAOne,GAAGme,GAAG,GACtBgV,EAAMlB,GAAG,GAAOjyB,GAAGiyB,GAAG,GACtBlyB,GAAMG,GAAQD,GAAGtI,GAAG,GACpBuf,GAAMC,GAAQlX,GAAG2V,GAAG,GACpBkK,GAAMC,GAAQ9f,GAAGke,GAAG,GACpB6V,GAAMC,GAAQh0B,GAAGgyB,GAAG,GACdnyB,GAAKzZ,GAAG,GAAIyZ,GAAK,GAgBtB,IAfKA,GAAKnB,GACTkB,GAAKC,GACLA,GAAK,IAELD,GAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,GAAGlI,GAAG,GACtB4e,EAAMX,GAAG,GAAO/V,GAAG+V,GAAG,GACtBoJ,EAAMb,GAAG,GAAOte,GAAGse,GAAG,GACtB+U,EAAMjB,GAAG,GAAOpyB,GAAGoyB,GAAG,GACtBryB,GAAMG,GAAQD,GAAGnI,GAAG,GACpBsf,GAAMC,GAAQpX,GAAG8V,GAAG,GACpBiK,GAAMC,GAAQhgB,GAAGqe,GAAG,GACpB4V,GAAMC,GAAQl0B,GAAGmyB,GAAG,GACdtyB,GAAKtZ,GAAG,GAAIsZ,GAAK,GAgBtB,IAfKA,GAAKhB,GACTe,GAAKC,GACLA,GAAK,IAELD,GAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,GAAG/H,GAAG,GACtB2e,EAAMV,GAAG,GAAOlW,GAAGkW,GAAG,GACtBmJ,EAAMZ,GAAG,GAAOze,GAAGye,GAAG,GACtB8U,EAAMhB,GAAG,GAAOvyB,GAAGuyB,GAAG,GACtBxyB,GAAMG,GAAQD,GAAGhI,GAAG,GACpBqf,GAAMC,GAAQtX,GAAGiW,GAAG,GACpBgK,GAAMC,GAAQlgB,GAAGwe,GAAG,GACpB2V,GAAMC,GAAQp0B,GAAGsyB,GAAG,GACdzyB,GAAKnZ,GAAG,GAAImZ,GAAK,GAgBtB,IAfKA,GAAKb,GACTY,GAAKC,GACLA,GAAK,IAELD,GAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,GAAG5H,GAAG,GACtB0e,EAAMT,GAAG,GAAOrW,GAAGqW,GAAG,GACtBkJ,EAAMX,GAAG,GAAO5e,GAAG4e,GAAG,GACtB6U,EAAMf,GAAG,GAAO1yB,GAAG0yB,GAAG,GACtB3yB,EAAMG,GAAQD,GAAG7H,GAAG,GACpBof,GAAMC,GAAQxX,GAAGoW,GAAG,GACpB+J,GAAMC,GAAQpgB,GAAG2e,GAAG,GACpB0V,GAAMC,GAAQt0B,GAAGyyB,GAAG,GACd5yB,GAAKhZ,GAAG,GAAIgZ,GAAK,GAgBtB,IAfKA,GAAKV,GACTS,GAAKC,GACLA,GAAK,IAELD,GAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,GAAGzH,GAAG,GACtBye,EAAMR,GAAG,GAAOxW,GAAGwW,GAAG,GACtBiJ,EAAMV,GAAG,GAAO/e,GAAG+e,GAAG,GACtB4U,EAAMd,GAAG,GAAO7yB,GAAG6yB,GAAG,GACtB9yB,EAAMG,EAAQD,GAAG1H,GAAG,GACpBmf,GAAMC,GAAQ1X,GAAGuW,GAAG,GACpB8J,GAAMC,GAAQtgB,GAAG8e,GAAG,GACpByV,GAAMC,GAAQx0B,GAAG4yB,GAAG,GACd/yB,GAAK7Y,GAAG,GAAI6Y,GAAK,GAgBtB,IAfKA,GAAKP,GACT/V,GAAKsW,GACLA,GAAK,IAELtW,GAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO/O,GAAG+O,GAAG,GACtBwe,EAAMP,GAAG,GAAOhtB,GAAGgtB,GAAG,GACtBgJ,EAAMT,GAAG,GAAOv1B,GAAGu1B,GAAG,GACtB2U,EAAMb,GAAG,GAAOrpC,GAAGqpC,GAAG,GACtBhzB,EAAME,EAAQD,GAAGvH,GAAG,GACpBkf,GAAMC,GAAQ5X,GAAG0W,GAAG,GACpB6J,GAAMC,GAAQxgB,GAAGif,GAAG,GACpBwV,GAAMC,GAAQ10B,GAAG+yB,GAAG,GACdjzB,GAAK3Y,GAAG,GAAI2Y,GAAK,GAgBtB,IAfKA,GAAKL,GACThW,GAAKqW,GACLA,GAAK,IAELrW,GAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAOhP,GAAGgP,GAAG,GACtBue,EAAMN,GAAG,GAAOjtB,GAAGitB,GAAG,GACtB+I,EAAMR,GAAG,GAAOx1B,GAAGw1B,GAAG,GACtB0U,EAAMZ,GAAG,GAAOtpC,GAAGspC,GAAG,GACtBrzB,EAAMK,EAAQD,GAAGrH,GAAG,GACpBif,GAAMC,GAAQ7X,GAAG4W,GAAG,GACpB2J,GAAME,GAAQzgB,GAAGmf,GAAG,GACpBsV,GAAME,GAAQ30B,GAAGizB,GAAG,GACdlzB,GAAK1Y,GAAG,GAAI0Y,GAAK,GAqBtB,IApBKA,GAAKJ,GACTE,GAAKE,GACLA,GAAK,IAELF,GAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,GAAG,GACnBG,GAAK8e,GAAQ7X,GAAG6W,GAAG,GACnB6I,GAAKc,GAAQxgB,GAAGof,GAAG,GACnBuU,GAAKe,GAAQ10B,GAAGkzB,GAAG,GAGnBp1B,EAAMlF,GAAG,GAAOkH,GAAGlH,GAAG,GACtBse,EAAML,GAAG,GAAO/W,GAAG+W,GAAG,GACtB8I,EAAMP,GAAG,GAAOtf,GAAGsf,GAAG,GACtByU,EAAMX,GAAG,GAAOpzB,GAAGozB,GAAG,GAGhB1zB,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,GAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,GAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtBy1B,EAAMK,IAAO79B,EAAK7L,EAAMiO,IAAM4X,EAAM/W,IAAMymB,EAAME,KAChDxnB,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACDj8B,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,EACNyT,IAAMS,CACN,CACDl8B,IAAMoH,EACNvG,IAAM2e,EACNgI,IAAMS,EACNwT,IAAMU,CACN,CAWZ,G/B5ZIe,GAA2B,CgC6B/B,SAA2BjuC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAmZ,EACAC,EACAuI,EACAE,EACAiU,EACAC,EACAh0B,EACAgY,EACA2I,EACAkU,EACAptC,EACAwY,EACAlW,EACAgP,EACAie,EACAuI,EACA8T,EACAnzB,EACAgQ,EACA0Q,EACAkU,EACAz8B,EACAa,EACA2mB,EACAiU,EACA91B,EACAG,EACAgC,EACAC,EACAzW,EAwCJ,IAlCAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GACPuI,EAAK51B,EAAE41B,GACP8T,EAAK1pC,EAAE0pC,GAGP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IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CAOR,ECzQA,SAA2B9sC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAkI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACA4T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAr0B,EACAK,EACAE,EACAG,EACAG,EACAG,EACAgX,EACAC,EACAC,EACAC,EACAC,EACAC,EACAsI,GACAE,GACAC,GACAC,GACAC,GACAC,GACA4T,GACAE,GACAC,GACAC,GACAC,GACAC,GACA1tC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAlI,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAvX,GAwCJ,IAlCAlC,IADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GACP8T,GAAK1pC,GAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OACPqvC,GAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAA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ACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAiI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA2T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAt0B,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAqI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACA2T,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACA3tC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACArI,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GAwCJ,IAlCAlC,IADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GACP8T,GAAK1pC,GAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OACPqvC,GAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GACT4I,EAAML,GAAG,GACTwU,EAA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EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CASV,EC7UA,SAA2BhtC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACtC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAgI,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA0T,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAv0B,EACAK,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACA0W,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAoI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA0T,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA5tC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAxI,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GAwC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AAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACDj8B,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,EACNyT,IAAMS,CACN,CAUX,EC/WA,SAA4BjtC,EAAG0R,EAAG9E,EAAGoG,EAAGrE,GACvC,IAAI8J,EACA3V,EACA6lB,EACA0P,EACA8T,EACAl7B,EACAioB,EACAkU,EACAC,EACA72B,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+H,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAyT,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAx0B,GACAK,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAuW,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAmI,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAyT,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA7tC,GACAwY,GACAlW,GACAC,GACAwW,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAie,GACAuI,GACA8T,GACAnzB,GACAgQ,GACA0Q,GACAkU,GACAz8B,GACAa,GACA2mB,GACAiU,GACA91B,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GAwCJ,IAlCAlC,IADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,QAAS8O,EAAE9O,QAASkV,EAAElV,UACpDqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GACPuI,GAAK51B,GAAE41B,GACP8T,GAAK1pC,GAAE0pC,GAGPtzB,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,MAAO0N,EAAE1N,MAAO8T,EAAE9T,OAGhD0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OACPm7B,GAAK1sB,EAAEzO,OACPqvC,GAAKx6B,EAAE7U,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KACTy1B,EAAOzrB,EAAEhK,KACTupC,EAAOn5B,EAAEpQ,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GACT4I,EAAML,GAAG,GACTwU,EAAMV,GAAG,GAGT96B,EAAOjR,EAAEyD,UAAU,GACnBy1B,EAAOxnB,EAAEjO,UAAU,GACnB2pC,EAAOxgC,EAAEnJ,UAAU,GACnB4pC,EAAOr6B,EAAEvP,UAAU,GAGb4W,GAAKla,GAAG,GAAIka,GAAK,GAYtB,IAXKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM5B,GAEP0B,GAAMvB,GAAOyB,GAAG5I,GAAG,GACnByf,GAAMtI,GAAOvO,GAAGqV,GAAG,GACnBoK,GAAMR,GAAOjf,GAAG4d,GAAG,GACnB+V,GAAMR,GAAOnzB,GAAG0xB,GAAG,GACb7xB,GAAK/Z,GAAG,GAAI+Z,GAAK,GAgBtB,IAfKA,GAAKzB,GACTwB,GAAKC,GACLA,GAAK,IAELD,GAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,GAAG,GAAOwI,GAAGxI,GAAG,GACtB8e,EAAMb,GAAG,GAAOzV,GAAGyV,GAAG,GACtBsJ,EAAMf,GAAG,GAAOhe,GAAGge,GAAG,GACtBiV,EAAMnB,GAAG,GAAO9xB,GAAG8xB,GAAG,GACtB/xB,GAAMG,GAAQD,GAAGzI,GAAG,GACpBwf,GAAMC,GAAQhX,GAAGwV,GAAG,GACpBmK,GAAMC,GAAQ5f,GAAG+d,GAAG,GACpB8V,GAAMC,GAAQ9zB,GAAG6xB,GAAG,GACdhyB,GAAK5Z,GAAG,GAAI4Z,GAAK,GAgBtB,IAfKA,GAAKtB,GACTqB,GAAKC,GACLA,GAAK,IAELD,GAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,GAAGrI,GAAG,GACtB6e,EAAMZ,GAAG,GAAO5V,GAAG4V,GAAG,GACtBqJ,EAAMd,GAAG,GAAOne,GAAGme,GAAG,GACtBgV,EAAMlB,GAAG,GAAOjyB,GAAGiyB,GAAG,GACtBlyB,GAAMG,GAAQD,GAAGtI,GAAG,GACpBuf,GAAMC,GAAQlX,GAAG2V,GAAG,GACpBkK,GAAMC,GAAQ9f,GAAGke,GAAG,GACpB6V,GAAMC,GAAQh0B,GAAGgyB,GAAG,GACdnyB,GAAKzZ,GAAG,GAAIyZ,GAAK,GAgBtB,IAfKA,GAAKnB,GACTkB,GAAKC,GACLA,GAAK,IAELD,GAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,GAAGlI,GAAG,GACtB4e,EAAMX,GAAG,GAAO/V,GAAG+V,GAAG,GACtBoJ,EAAMb,GAAG,GAAOte,GAAGse,GAAG,GACtB+U,EAAMjB,GAAG,GAAOpyB,GAAGoyB,GAAG,GACtBryB,GAAMG,GAAQD,GAAGnI,GAAG,GACpBsf,GAAMC,GAAQpX,GAAG8V,GAAG,GACpBiK,GAAMC,GAAQhgB,GAAGqe,GAAG,GACpB4V,GAAMC,GAAQl0B,GAAGmyB,GAAG,GACdtyB,GAAKtZ,GAAG,GAAIsZ,GAAK,GAgBtB,IAfKA,GAAKhB,GACTe,GAAKC,GACLA,GAAK,IAELD,GAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,GAAG/H,GAAG,GACtB2e,EAAMV,GAAG,GAAOlW,GAAGkW,GAAG,GACtBmJ,EAAMZ,GAAG,GAAOze,GAAGye,GAAG,GACtB8U,EAAMhB,GAAG,GAAOvyB,GAAGuyB,GAAG,GACtBxyB,GAAMG,GAAQD,GAAGhI,GAAG,GACpBqf,GAAMC,GAAQtX,GAAGiW,GAAG,GACpBgK,GAAMC,GAAQlgB,GAAGwe,GAAG,GACpB2V,GAAMC,GAAQp0B,GAAGsyB,GAAG,GACdzyB,GAAKnZ,GAAG,GAAImZ,GAAK,GAgBtB,IAfKA,GAAKb,GACTY,GAAKC,GACLA,GAAK,IAELD,GAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,GAAG5H,GAAG,GACtB0e,EAAMT,GAAG,GAAOrW,GAAGqW,GAAG,GACtBkJ,EAAMX,GAAG,GAAO5e,GAAG4e,GAAG,GACtB6U,EAAMf,GAAG,GAAO1yB,GAAG0yB,GAAG,GACtB3yB,GAAMG,GAAQD,GAAG7H,GAAG,GACpBof,GAAMC,GAAQxX,GAAGoW,GAAG,GACpB+J,GAAMC,GAAQpgB,GAAG2e,GAAG,GACpB0V,GAAMC,GAAQt0B,GAAGyyB,GAAG,GACd5yB,GAAKhZ,GAAG,GAAIgZ,GAAK,GAgBtB,IAfKA,GAAKV,GACTS,GAAKC,GACLA,GAAK,IAELD,GAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,GAAGzH,GAAG,GACtBye,EAAMR,GAAG,GAAOxW,GAAGwW,GAAG,GACtBiJ,EAAMV,GAAG,GAAO/e,GAAG+e,GAAG,GACtB4U,EAAMd,GAAG,GAAO7yB,GAAG6yB,GAAG,GACtB9yB,GAAMG,GAAQD,GAAG1H,GAAG,GACpBmf,GAAMC,GAAQ1X,GAAGuW,GAAG,GACpB8J,GAAMC,GAAQtgB,GAAG8e,GAAG,GACpByV,GAAMC,GAAQx0B,GAAG4yB,GAAG,GACd/yB,GAAK7Y,GAAG,GAAI6Y,GAAK,GAgBtB,IAfKA,GAAKP,GACT/V,GAAKsW,GACLA,GAAK,IAELtW,GAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO/O,GAAG+O,GAAG,GACtBwe,EAAMP,GAAG,GAAOhtB,GAAGgtB,GAAG,GACtBgJ,EAAMT,GAAG,GAAOv1B,GAAGu1B,GAAG,GACtB2U,EAAMb,GAAG,GAAOrpC,GAAGqpC,GAAG,GACtBhzB,GAAME,GAAQD,GAAGvH,GAAG,GACpBkf,GAAMC,GAAQ5X,GAAG0W,GAAG,GACpB6J,GAAMC,GAAQxgB,GAAGif,GAAG,GACpBwV,GAAMC,GAAQ10B,GAAG+yB,GAAG,GACdjzB,GAAK3Y,GAAG,GAAI2Y,GAAK,GAgBtB,IAfKA,GAAKL,GACThW,GAAKqW,GACLA,GAAK,IAELrW,GAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAOhP,GAAGgP,GAAG,GACtBue,EAAMN,GAAG,GAAOjtB,GAAGitB,GAAG,GACtB+I,EAAMR,GAAG,GAAOx1B,GAAGw1B,GAAG,GACtB0U,EAAMZ,GAAG,GAAOtpC,GAAGspC,GAAG,GACtBrzB,GAAMK,GAAQD,GAAGrH,GAAG,GACpBif,GAAMC,GAAQ7X,GAAG4W,GAAG,GACpB2J,GAAME,GAAQzgB,GAAGmf,GAAG,GACpBsV,GAAME,GAAQ30B,GAAGizB,GAAG,GACdlzB,GAAK1Y,GAAG,GAAI0Y,GAAK,GAqBtB,IApBKA,GAAKJ,GACTE,GAAKE,GACLA,GAAK,IAELF,GAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,GAAQG,GAAGpH,GAAG,GACnBG,GAAK8e,GAAQ7X,GAAG6W,GAAG,GACnB6I,GAAKc,GAAQxgB,GAAGof,GAAG,GACnBuU,GAAKe,GAAQ10B,GAAGkzB,GAAG,GAGnBp1B,EAAMlF,GAAG,GAAOkH,GAAGlH,GAAG,GACtBse,EAAML,GAAG,GAAO/W,GAAG+W,GAAG,GACtB8I,EAAMP,GAAG,GAAOtf,GAAGsf,GAAG,GACtByU,EAAMX,GAAG,GAAOpzB,GAAGozB,GAAG,GAGhB1zB,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,GAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,GAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,GAAIjC,KACtB22B,EAAMlB,EAAMK,GAAI79B,EAAKsC,EAAMnO,EAAMiO,IAAMmoB,EAAMvQ,EAAM/W,IAAMw7B,EAAM/U,EAAME,MACrExnB,IAAMyF,EACN5E,IAAMke,EACNyI,IAAMD,EACNkU,IAAMC,EAEP17B,IAAM4F,EACN/E,IAAMme,EACNwI,IAAMC,EACNgU,IAAME,CACN,CACD37B,IAAM+F,EACNlF,IAAMoe,EACNuI,IAAME,EACN+T,IAAMG,CACN,CACD57B,IAAMkG,EACNrF,IAAMqe,EACNsI,IAAMG,EACN8T,IAAMI,CACN,CACD77B,IAAMqG,EACNxF,IAAMse,EACNqI,IAAMI,EACN6T,IAAMK,CACN,CACD97B,IAAMwG,EACN3F,IAAMue,EACNoI,IAAMK,EACN4T,IAAMM,CACN,CACD/7B,IAAM2G,EACN9F,IAAMwe,EACNmI,IAAMM,EACN2T,IAAMO,CACN,CACDh8B,IAAM8G,EACNjG,IAAMye,EACNkI,IAAMO,EACN0T,IAAMQ,CACN,CACDj8B,IAAMiH,EACNpG,IAAM0e,EACNiI,IAAMQ,EACNyT,IAAMS,CACN,CACDl8B,IAAMoH,EACNvG,IAAM2e,EACNgI,IAAMS,EACNwT,IAAMU,CACN,CAWZ,GxCraI1yB,GAAW0xB,GAAQp1C,OAAS,EAehC,SAASkjC,GAAch6B,EAAG0R,EAAG9E,EAAGoG,GAC/B,OAAO+kB,GAAc,CAAE/3B,EAAG0R,EAAG9E,EAAGoG,GAAK,oBAAoB,EAC1D,CyCvGA,SAASk7B,GAAS1xC,EAAK0B,EAAOJ,EAASK,EAAQwD,EAAO6yB,GACrD,IAAI7uB,EACAwoC,EACA53C,EACAF,EACAC,EAEJ,GAAKk+B,GAAOt2B,EAAMpH,OACjB,OAAO0F,EAAIiH,UAAW,GAAKjH,EAAIoG,KAAMzE,GAOtC,IALA5H,EAAM,GAENF,EAAI6H,EAAOs2B,GACX7uB,EAAS7H,EAAS02B,GAEZl+B,EAAI,EAAGA,EAAID,EAAGC,IACnB63C,EAAOD,GAAS1xC,EAAK0B,EAAOJ,EAASK,EAAQwD,EAAO6yB,EAAI,GACxDj+B,EAAI8E,KAAM8yC,GACVhwC,GAAUwH,EAEX,OAAOpP,CACR,CCGA,SAAS63C,GAAWpuC,GACnB,IAAIkO,EACA/N,EACA8B,EACAyD,EAIJ,IADAA,GADAvF,EAAK+C,GAAUlD,GAAG,IACXlJ,QACE,EACR,MAAM,IAAIgB,MAAO,4EAalB,OAXAmK,EAAKoB,GAAYrD,GAAG,GAEpBkO,EAAM/N,EAAIuF,EAAE,GACZvF,EAAIuF,EAAE,GAAMvF,EAAIuF,EAAE,GAClBvF,EAAIuF,EAAE,GAAMwI,EAEZA,EAAMjM,EAAIyD,EAAE,GACZzD,EAAIyD,EAAE,GAAMzD,EAAIyD,EAAE,GAClBzD,EAAIyD,EAAE,GAAMwI,EAGL,IAAIlO,EAAEvC,YAAa0F,GAAUnD,GAAKiD,GAASjD,GAAKG,EAAI8B,EAAIG,GAAgBjC,EAAI8B,GAAMsB,GAAUvD,GACpG,CCjCA,SAASquC,GAAgBnwC,EAAOs2B,EAAK8Z,EAAO/3C,GAC3C,IAAIqgB,EACAG,EAEA+a,EACAx7B,EACA8D,EAIJ,IADA03B,EAAI2C,GAAgBD,GADpB5d,EAAK1Y,EAAMpH,QACiB,IACnB,EACR,MAAM,IAAI8W,WAAYtS,EAAQ,6GAA8Gsb,EAAI4d,IAIjJ,GAFAzd,EAAKu3B,EAAMx3C,OACPiJ,GAAOuuC,KACApwC,EAAO4zB,GACjB,MAAM,IAAIlkB,WAAYtS,EAAQ,+IAAgJw2B,EAAG5zB,EAAO4zB,GAAK9iB,GAAMs/B,EAAO,QAE3M,IAAMh4C,EAAI,EAAGA,EAAIw7B,EAAGx7B,IACnBC,EAAKD,GAAM4H,EAAO5H,GAGnB,IADA8D,EAAI,EACI9D,EAAIw7B,EAAE/a,EAAIzgB,IACjBC,EAAKD,GAAMg4C,EAAOl0C,GAClBA,GAAK,EAGN,IADAA,EAAI03B,EAAI,GACClb,EACR,KAAQtgB,EAAIsgB,EAAGG,EAAG,EAAGzgB,IACpBC,EAAKD,GAAM4H,EAAO9D,GAClBA,GAAK,EAGP,OAAO7D,CACR,CC1CA,SAAS83C,GAAgBnwC,EAAOs2B,EAAK8Z,GACpC,IAAI/3C,EAAMH,GAAO8H,EAAMpH,OAASw3C,EAAMx3C,OAAS,GAE/C,OADA0H,GAAQN,EAAOs2B,EAAK8Z,EAAO/3C,GACpBA,CACR,CCUA,SAASg4C,GAAWvuC,EAAGw0B,EAAK8Z,EAAOjxC,GAClC,IAAIS,EACAI,EACAuiC,EACAz+B,EACA7B,EACA8B,EACA8U,EACA1U,EACAyvB,EACAx7B,EAsBJ,IApBA6J,EAAK+C,GAAUlD,GAAG,GAClBiC,EAAKoB,GAAYrD,GAAG,GACpBgC,EAAMuB,GAAUvD,GAIfygC,EAFU,KADXp+B,EAAIC,GAAeL,KACG,IAANI,EAERiiB,GAAkBtiB,GAEV,IAANK,EAOVnE,EAAQmwC,GAAgBluC,EAHxB2xB,EAAI2C,GAAgBD,EAAKr0B,EAAGrJ,OAAO,GAGJw3C,GAG/BxwC,EAAU,GACViZ,EAAKu3B,EAAMx3C,OACLR,EAAI,EAAGA,EAAIw7B,EAAGx7B,IACnBwH,EAAQzC,KAAM4G,EAAI3L,IAEnB,IAAMA,EAAI,EAAGA,EAAIygB,EAAIzgB,IACpBwH,EAAQzC,KAAM,GAEf,IAAM/E,EAAIw7B,EAAE,EAAGx7B,EAAI6J,EAAGrJ,OAAQR,IAC7BwH,EAAQzC,KAAM4G,EAAI3L,IAGnB,GAAKmqC,EAEJ,IADA3iC,EAASg0B,EAAE/a,EAAG,GAAM9U,EAAI6vB,GAClBx7B,EAAIygB,EAAG,EAAGzgB,EAAI,EAAGA,IACtBwH,EAASg0B,EAAEx7B,EAAE,GAAMwH,EAASg0B,EAAEx7B,GAAMg4C,EAAOh4C,QAI5C,IADAwH,EAASg0B,GAAM7vB,EAAI6vB,GACbx7B,EAAI,EAAGA,EAAIygB,EAAG,EAAGzgB,IACtBwH,EAASg0B,EAAEx7B,EAAE,GAAMwH,EAASg0B,EAAEx7B,GAAMg4C,EAAOh4C,GAG7C,OAAO,IAAI0J,EAAEvC,YAAa0F,GAAUnD,GAAKiD,GAASjD,GAAK9B,EAAOJ,EAASwF,GAAWtD,GAAKgC,EAAK,CAC3FkzB,UAAa73B,GAEf,CCvEAH,EAAAnH,GAAA,SAAAyI,ICbA,IAAI8X,GAAO,QCAX,IAAIA,GAAO,QC6CX,IAAIk4B,GAAQ,CCgBZ,SAAkBxuC,EAAG0R,EAAG/C,GACvB+C,EAAE9O,KAAM8O,EAAEvT,QAAWwQ,EAAK3O,EAAE4C,KAAM5C,EAAE7B,QACrC,ECFA,SAAkB6B,EAAG0R,EAAG/C,GACvB,IAAI7L,EACA6lB,EACAnS,EACAsZ,EACArZ,EACA1F,EACAa,EACA8E,EAkBJ,IAbAD,EAAKzW,EAAE9B,MAAO,GACdsY,EAAMxW,EAAElC,QAAS,GACjBgyB,EAAMpe,EAAE5T,QAAS,GAGjBiT,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGH8T,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,CAER,EC9BA,SAAkB9vB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAmZ,EACAC,EACA5vB,EACAsW,EACAG,EACAnF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EAkCJ,IA7BA1W,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHiU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACF,EC1DA,SAAkB/vB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACA7vB,EACAsW,EACAG,EACAG,EACAtF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EAwCJ,IAnCA7W,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHoU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACF,ECxEA,SAAkBhwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACA9vB,EACAsW,EACAG,EACAG,EACAG,EACAzF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EA8CJ,IAzCAhX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHuU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACF,ECtFA,SAAkBjwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACA/vB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EAoDJ,IA/CAnX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGH0U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACF,EClGA,SAAkBlwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDAtX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGH6U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACF,EClHA,SAAkBnwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAgEJ,IA3DAzX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHgV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACF,EChIA,SAAkBpwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsEJ,IAjEA5X,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHmV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACF,EC9IA,SAAkBrwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA4EJ,IAvEA/X,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHsV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACF,EC5JA,SAAmBtwB,EAAG0R,EAAG2S,EAAY1V,GACpC,IAAI7L,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkFJ,IA7EAlY,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGHyV,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACDvf,GAAMoH,EACNvG,GAAM2e,CACN,CACF,GXhLIke,GAAiB,CYmBrB,SAAkBzuC,EAAG0R,EAAG/C,GACvB+C,EAAEjO,UAAW,GAAKiO,EAAE9O,KAAM8O,EAAEvT,OAAQwQ,EAAK3O,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,SACtE,ECFA,SAAkB6B,EAAG0R,EAAG/C,GACvB,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAsZ,EACArZ,EACA1F,EACAa,EACA8E,EAsBJ,IAjBAD,EAAKzW,EAAE9B,MAAO,GACdsY,EAAMxW,EAAElC,QAAS,GACjBgyB,EAAMpe,EAAE5T,QAAS,GAGjBiT,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGbiT,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,CAER,ECpCA,SAAkB9vB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAmZ,EACAC,EACA5vB,EACAsW,EACAG,EACAnF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EAsCJ,IAjCA1W,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGboT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACF,EChEA,SAAkB/vB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACA7vB,EACAsW,EACAG,EACAG,EACAtF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EA4CJ,IAvCA7W,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGbuT,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACF,EC9EA,SAAkBhwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACA9vB,EACAsW,EACAG,EACAG,EACAG,EACAzF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EAkDJ,IA7CAhX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGb0T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACF,EC5FA,SAAkBjwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACA/vB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EAwDJ,IAnDAnX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGb6T,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACF,ECxGA,SAAkBlwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDAtX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGbgU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACF,ECxHA,SAAkBnwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAoEJ,IA/DAzX,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGbmU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACF,ECtIA,SAAkBpwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0EJ,IArEA5X,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGbsU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACF,ECpJA,SAAkBrwB,EAAG0R,EAAG2S,EAAY1V,GACnC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAgFJ,IA3EA/X,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGbyU,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACF,EClKA,SAAmBtwB,EAAG0R,EAAG2S,EAAY1V,GACpC,IAAI7L,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsFJ,IAjFAlY,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGb4U,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACDvf,GAAMoH,EACNvG,GAAM2e,CACN,CACF,GtBzLIme,GAAgB,CuBLpB,SAAyB1uC,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAmZ,EACAC,EACArX,EACAgY,EACAvwB,EACAwY,EACAlW,EACAgP,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAgC,EACAC,EACAzW,EA0BJ,IApBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGH5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBif,EAAM9H,EAAO9P,EAAG4W,EAAG,GACb7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB7Y,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CAGJ,ECrFA,SAAyB/vB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACAtX,EACAK,EACA2X,EACAC,EACAxwB,EACAwY,EACAlW,EACAC,EACA+O,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EA0BJ,IApBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGH1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBkf,EAAM/H,EAAO5P,EAAG0W,EAAG,GACb5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB1Y,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CAIL,EC/GA,SAAyBhwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACAvX,EACAK,EACAE,EACAyX,EACAC,EACAC,EACAzwB,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA9W,EA0BJ,IApBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGHvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACnBmf,EAAMhI,EAAOzP,EAAGuW,EAAG,GACb1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBvY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CAKN,ECvIA,SAAyBjwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACAxX,EACAK,EACAE,EACAG,EACAsX,EACAC,EACAC,EACAC,EACA1wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACAjX,EA0BJ,IApBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGHpW,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACnBof,EAAMjI,EAAOtP,EAAGoW,EAAG,GACbvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBpY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CAMP,EC/JA,SAAyBlwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAzX,EACAK,EACAE,EACAG,EACAG,EACAmX,EACAC,EACAC,EACAC,EACAC,EACA3wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACA/H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACApX,EA0BJ,IApBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGHjW,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACnBqf,EAAMlI,EAAOnP,EAAGiW,EAAG,GACbpW,EAAKnZ,EAAG,GAAImZ,EAAK,GAYtB,IAXKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,EAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,EAAGoW,EAAG,GACdvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBjY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CAOR,ECvLA,SAAyBnwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAgX,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAlI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAvX,GA0BJ,IApBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGH9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPiB,EAAMd,EAAOgB,GAAGnI,EAAG,GACnBsf,EAAMnI,EAAOhP,GAAG8V,EAAG,GACbjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB9X,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CAQT,EC/MA,SAAyBpwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GA0BJ,IApBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGH3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPoB,EAAMjB,EAAOmB,GAAGtI,EAAG,GACnBuf,EAAMpI,EAAO7O,GAAG2V,EAAG,GACb9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB3X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBiS,EAAM/W,GAAOjD,EAAK7L,EAAMiO,IACxBA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CASV,ECvOA,SAAyBrwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA0W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAie,EACA9W,EACAgQ,EACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA0BJ,IApBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGHxV,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,EAAOsB,GAAGzI,EAAG,GACnBwf,EAAMrI,EAAO1O,GAAGwV,EAAG,GACb3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtB6e,EAAMZ,EAAG,GAAO5V,EAAG4V,EAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,EAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,EAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBxX,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBiS,EAAM/W,IAAOjD,EAAK7L,EAAMiO,KACxBA,IAAMyF,EACN5E,IAAMke,EAEP/e,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CAUX,EC/PA,SAA0BtwB,EAAG0R,EAAG/C,GAC/B,IAAI8J,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACA3I,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GA0BJ,IApBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GAGHrV,GAAKla,EAAG,GAAIka,GAAK,GAUtB,IATKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,GAAOyB,GAAG5I,GAAG,GACnByf,EAAMtI,GAAOvO,GAAGqV,GAAG,GACbxV,GAAK/Z,EAAG,GAAI+Z,GAAK,GAYtB,IAXKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,GAAG,GAAOwI,EAAGxI,GAAG,GACtB8e,EAAMb,GAAG,GAAOzV,EAAGyV,GAAG,GACtB1V,EAAMG,EAAQD,GAAGzI,GAAG,GACpBwf,EAAMC,EAAQhX,GAAGwV,GAAG,GACd3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,EAAGrI,GAAG,GACtB6e,EAAMZ,GAAG,GAAO5V,EAAG4V,GAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,GAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,GAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,EAAGlI,GAAG,GACtB4e,EAAMX,GAAG,GAAO/V,EAAG+V,GAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,GAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,GAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,EAAG/H,GAAG,GACtB2e,EAAMV,GAAG,GAAOlW,EAAGkW,GAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,GAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,GAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,EAAG5H,GAAG,GACtB0e,EAAMT,GAAG,GAAOrW,EAAGqW,GAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,GAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,GAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,EAAGzH,GAAG,GACtBye,EAAMR,GAAG,GAAOxW,EAAGwW,GAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,GAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,GAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO/O,EAAG+O,GAAG,GACtBwe,EAAMP,GAAG,GAAOhtB,EAAGgtB,GAAG,GACtB3W,EAAME,EAAQD,GAAGvH,GAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,GAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAOhP,EAAGgP,GAAG,GACtBue,EAAMN,GAAG,GAAOjtB,EAAGitB,GAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,GAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,GAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,GAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,GAAG,GAGnB/Y,EAAMlF,GAAG,GAAOkH,EAAGlH,GAAG,GACtBse,EAAML,GAAG,GAAO/W,EAAG+W,GAAG,GAGhBrX,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBiS,EAAM/W,IAAOjD,EAAK7L,EAAMiO,KACxBA,IAAMyF,EACN5E,IAAMke,EAEP/e,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CACDvf,IAAMoH,EACNvG,IAAM2e,CACN,CAWZ,G/BzQIoe,GAAyB,CgCA7B,SAAyB3uC,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAmZ,EACAC,EACArX,EACAgY,EACAvwB,EACAwY,EACAlW,EACAgP,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAgC,EACAC,EACAzW,EA8BJ,IAxBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZqV,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBif,EAAM9H,EAAO9P,EAAG4W,EAAG,GACb7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB7Y,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CAGJ,EC3FA,SAAyB/vB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACAtX,EACAK,EACA2X,EACAC,EACAxwB,EACAwY,EACAlW,EACAC,EACA+O,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EA8BJ,IAxBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZuV,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBkf,EAAM/H,EAAO5P,EAAG0W,EAAG,GACb5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB1Y,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CAIL,ECrHA,SAAyBhwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACAvX,EACAK,EACAE,EACAyX,EACAC,EACAC,EACAzwB,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA9W,EA8BJ,IAxBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZ0V,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACnBmf,EAAMhI,EAAOzP,EAAGuW,EAAG,GACb1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBvY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CAKN,EC7IA,SAAyBjwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACAxX,EACAK,EACAE,EACAG,EACAsX,EACAC,EACAC,EACAC,EACA1wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACAjX,EA8BJ,IAxBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZ6V,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACnBof,EAAMjI,EAAOtP,EAAGoW,EAAG,GACbvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBpY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CAMP,ECrKA,SAAyBlwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAzX,EACAK,EACAE,EACAG,EACAG,EACAmX,EACAC,EACAC,EACAC,EACAC,EACA3wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACA/H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,GACApX,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZgW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPc,EAAMX,EAAOa,GAAGhI,EAAG,GACnBqf,EAAMlI,EAAOnP,GAAGiW,EAAG,GACbpW,EAAKnZ,EAAG,GAAImZ,EAAK,GAYtB,IAXKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,EAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,EAAGoW,EAAG,GACdvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBjY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CAOR,EC7LA,SAAyBnwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAgX,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAlI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAvX,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZmW,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPiB,EAAMd,EAAOgB,GAAGnI,EAAG,GACnBsf,EAAMnI,EAAOhP,GAAG8V,EAAG,GACbjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB9X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CAQT,ECrNA,SAAyBpwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZsW,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPoB,EAAMjB,EAAOmB,GAAGtI,EAAG,GACnBuf,EAAMpI,EAAO7O,GAAG2V,EAAG,GACb9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB3X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtB1Z,EAAK2rB,EAAM/W,EAAIjD,EAAK5R,EAAK+F,EAAMiO,KAC/BA,GAAMyF,EACN5E,GAAMke,EAEP/e,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CASV,EC7OA,SAAyBrwB,EAAG0R,EAAG/C,GAC9B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA0W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAie,EACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZyW,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,GAAOsB,GAAGzI,EAAG,GACnBwf,EAAMrI,GAAO1O,GAAGwV,EAAG,GACb3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtB6e,EAAMZ,EAAG,GAAO5V,EAAG4V,EAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,EAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,EAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBxX,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtB1Z,EAAK2rB,EAAM/W,GAAIjD,EAAK5R,EAAK+F,EAAMiO,MAC/BA,IAAMyF,EACN5E,IAAMke,EAEP/e,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CAUX,ECrQA,SAA0BtwB,EAAG0R,EAAG/C,GAC/B,IAAI8J,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA3I,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GA8BJ,IAxBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGZ4W,GAAKla,EAAG,GAAIka,GAAK,GAUtB,IATKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,GAAOyB,GAAG5I,GAAG,GACnByf,EAAMtI,GAAOvO,GAAGqV,GAAG,GACbxV,GAAK/Z,EAAG,GAAI+Z,GAAK,GAYtB,IAXKA,GAAKzB,GACTwB,GAAKC,GACLA,GAAK,IAELD,GAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,GAAG,GAAOwI,GAAGxI,GAAG,GACtB8e,EAAMb,GAAG,GAAOzV,GAAGyV,GAAG,GACtB1V,EAAMG,EAAQD,GAAGzI,GAAG,GACpBwf,EAAMC,EAAQhX,GAAGwV,GAAG,GACd3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,GAAKC,GACLA,GAAK,IAELD,GAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,GAAGrI,GAAG,GACtB6e,EAAMZ,GAAG,GAAO5V,GAAG4V,GAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,GAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,GAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,EAAGlI,GAAG,GACtB4e,EAAMX,GAAG,GAAO/V,EAAG+V,GAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,GAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,GAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,EAAG/H,GAAG,GACtB2e,EAAMV,GAAG,GAAOlW,EAAGkW,GAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,GAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,GAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,EAAG5H,GAAG,GACtB0e,EAAMT,GAAG,GAAOrW,EAAGqW,GAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,GAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,GAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,EAAGzH,GAAG,GACtBye,EAAMR,GAAG,GAAOxW,EAAGwW,GAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,GAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,GAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO/O,EAAG+O,GAAG,GACtBwe,EAAMP,GAAG,GAAOhtB,EAAGgtB,GAAG,GACtB3W,EAAME,EAAQD,GAAGvH,GAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,GAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAOhP,EAAGgP,GAAG,GACtBue,EAAMN,GAAG,GAAOjtB,EAAGitB,GAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,GAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,GAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,GAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,GAAG,GAGnB/Y,EAAMlF,GAAG,GAAOkH,EAAGlH,GAAG,GACtBse,EAAML,GAAG,GAAO/W,EAAG+W,GAAG,GAGhBrX,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtB1Z,EAAK2rB,EAAM/W,GAAIjD,EAAK5R,EAAK+F,EAAMiO,MAC/BA,IAAMyF,EACN5E,IAAMke,EAEP/e,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CACDvf,IAAMoH,EACNvG,IAAM2e,CACN,CAWZ,GxCpRI/V,GAAWg0B,GAAM13C,OAAS,EyC7F9B,IAAIwf,GAAO,QCAX,IAAIA,GAAO,QC2CX,IAAIk4B,GAAQ,CCDZ,SAAuBxuC,EAAG4uC,EAAS3gC,GAClC,OAAOA,EAAM2gC,EAAS5uC,EAAE4C,KAAM5C,EAAE7B,QACjC,ECFA,SAAuB6B,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAnH,EACAoH,EACA1F,EACA2F,EAkBJ,IAbAD,EAAKzW,EAAE9B,MAAO,GACdsY,EAAMxW,EAAElC,QAAS,GAGjBiT,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGAl4B,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEP,OAAOnH,CACR,ECxBA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAtH,EACAlP,EACAsW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EA8BJ,IAzBA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGA/3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAOtH,CACR,ECjDA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAzH,EACAlP,EACAsW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAkCJ,IA7BA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGA53B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAOzH,CACR,EC3DA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACA5H,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAsCJ,IAjCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGAz3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO5H,CACR,ECrEA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACAG,EACA/H,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA0CJ,IArCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGAt3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO/H,CACR,EC7EA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlI,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EA8CJ,IAzCAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGAn3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOlI,CACR,ECzFA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArI,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAkDJ,IA7CAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGAh3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOrI,CACR,ECnGA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAsDJ,IAjDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGA72B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAOxI,CACR,EC7GA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA0DJ,IArDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGA12B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO3I,CACR,ECvHA,SAAwBrP,EAAG4uC,EAAS3gC,GACnC,IAAInL,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA9I,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA8DJ,IAzDAlY,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGTyM,EAAMu/B,EAGAv2B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO9I,CACR,GX1HIo/B,GAAiB,CYMrB,SAAuBzuC,EAAG4uC,EAAS3gC,GAClC,OAAOA,EAAM2gC,EAAS5uC,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAM5C,EAAE7B,QACnD,ECFA,SAAuB6B,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAnH,EACAoH,EACA1F,EACA2F,EAqBJ,IAhBAD,EAAKzW,EAAE9B,MAAO,GACdsY,EAAMxW,EAAElC,QAAS,GAGjBiT,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGAl4B,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEP,OAAOnH,CACR,EC5BA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAtH,EACAlP,EACAsW,EACAG,EACAnF,EACAV,EACA2F,EACAG,EAiCJ,IA5BA1W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGA/3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD,OAAOtH,CACR,ECrDA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAzH,EACAlP,EACAsW,EACAG,EACAG,EACAtF,EACAV,EACA2F,EACAG,EACAG,EAqCJ,IAhCA7W,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGA53B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD,OAAOzH,CACR,EC/DA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACA5H,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAzF,EACAV,EACA2F,EACAG,EACAG,EACAG,EAyCJ,IApCAhX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGAz3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACD,OAAO5H,CACR,ECzEA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACA/H,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EA6CJ,IAxCAnX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGAt3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACD,OAAO/H,CACR,ECjFA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlI,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EAiDJ,IA5CAtX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGAn3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACD,OAAOlI,CACR,EC7FA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArI,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAqDJ,IAhDAzX,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGAh3B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD,OAAOrI,CACR,ECvGA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAyDJ,IApDA5X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGA72B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD,OAAOxI,CACR,ECjHA,SAAuBrP,EAAG4uC,EAAS3gC,GAClC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EA6DJ,IAxDA/X,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGA12B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACD,OAAO3I,CACR,EC3HA,SAAwBrP,EAAG4uC,EAAS3gC,GACnC,IAAInL,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA9I,EACAlP,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAV,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EAiEJ,IA5DAlY,EAAKH,EAAE9B,MAEsB,IAAxBoE,GADLmP,EAAKzR,EAAElC,UAGN2Y,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,KAGxBgF,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,IAGzBV,EAAK/Q,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT7F,EAAMiD,EAAEyD,UAAW,GAGnB4L,EAAMu/B,EAGAv2B,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CACD,OAAO9I,CACR,GtBrIIq/B,GAAgB,CuBrBpB,SAA8B1uC,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACA+B,EACArJ,EACAlP,EACAwY,EACAlW,EACAgP,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAzW,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGA91B,EAAK3Y,EAAG,GAAI2Y,EAAK,GAStB,IARKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAOtH,CACR,EC1EA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACA4B,EACAK,EACA1J,EACAlP,EACAwY,EACAlW,EACAC,EACA+O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGA51B,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAOzH,CACR,EC/FA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA5J,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA9W,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGAz1B,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO5H,CACR,EClHA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA/J,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACAjX,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGAt1B,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO/H,CACR,ECrIA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAlK,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACApX,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGAn1B,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOlI,CACR,ECxJA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACArK,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvX,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGAh1B,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOrI,CACR,EC3KA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAxK,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EAyBJ,IAnBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGA70B,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAOxI,CACR,EC9LA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3K,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7X,GAyBJ,IAnBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,GAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGA10B,EAAK/Z,EAAG,GAAI+Z,EAAK,GAStB,IARKA,EAAKzB,GACTwB,EAAKC,EACLA,EAAK,IAELD,EAAKxB,EACLyB,GAAMzB,GAEPuB,EAAMpB,EAAOsB,EAAGzI,EAAG,GACbsI,EAAK5Z,EAAG,GAAI4Z,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO3I,CACR,ECjNA,SAA+BrP,EAAG4uC,EAAS3gC,GAC1C,IAAIwK,EACA3V,EACA0T,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA9K,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GAyBJ,IAnBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,GAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGTpC,EAAMu/B,EAGAv0B,GAAKla,EAAG,GAAIka,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,GAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKvM,EAAMiO,IACvBA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO9I,CACR,G/BtMIs/B,GAAyB,CgCZ7B,SAA8B3uC,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACA+B,EACArJ,EACAlP,EACAwY,EACAlW,EACAgP,EACAmH,EACA7H,EACA2F,EACAG,EACAgC,EACAC,EACAzW,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGA91B,EAAK3Y,EAAG,GAAI2Y,EAAK,GAStB,IARKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACboH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBoF,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CAGH,OAAOtH,CACR,EC9EA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACA4B,EACAK,EACA1J,EACAlP,EACAwY,EACAlW,EACAC,EACA+O,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGA51B,EAAK7Y,EAAG,GAAI6Y,EAAK,GAStB,IARKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACbqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBuF,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CAIJ,OAAOzH,CACR,ECnGA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAyB,EACAK,EACAE,EACA5J,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA9W,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGAz1B,EAAKhZ,EAAG,GAAIgZ,EAAK,GAStB,IARKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACbuH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB0F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CAKL,OAAO5H,CACR,ECtHA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAsB,EACAK,EACAE,EACAG,EACA/J,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACAjX,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGAt1B,EAAKnZ,EAAG,GAAImZ,EAAK,GAStB,IARKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACb0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB6F,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CAMN,OAAO/H,CACR,ECzIA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAmB,EACAK,EACAE,EACAG,EACAG,EACAlK,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACA/H,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,EACApX,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGAn1B,EAAKtZ,EAAG,GAAIsZ,EAAK,GAStB,IARKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPc,EAAMX,EAAOa,EAAGhI,EAAG,GACb6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBgG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CAOP,OAAOlI,CACR,EC5JA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAgB,EACAK,EACAE,EACAG,EACAG,EACAG,EACArK,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAlI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiB,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAvX,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGAh1B,EAAKzZ,EAAG,GAAIyZ,EAAK,GAStB,IARKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPiB,EAAMd,EAAOgB,EAAGnI,EAAG,GACbgI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBmG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CAQR,OAAOrI,CACR,EC/KA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAa,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAxK,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAc,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1X,EA4BJ,IAtBAlC,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,EAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGA70B,EAAK5Z,EAAG,GAAI4Z,EAAK,GAStB,IARKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPoB,EAAMjB,EAAOmB,EAAGtI,EAAG,GACbmI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhBsG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CAST,OAAOxI,CACR,EClMA,SAA8BrP,EAAG4uC,EAAS3gC,GACzC,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAU,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3K,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAW,EACAC,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACA7X,GA4BJ,IAtBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,GAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGA10B,GAAK/Z,EAAG,GAAI+Z,GAAK,GAStB,IARKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,EAAOsB,GAAGzI,EAAG,GACbsI,EAAK5Z,EAAG,GAAI4Z,EAAK,GAUtB,IATKA,EAAKtB,GACTqB,EAAKC,EACLA,EAAK,IAELD,EAAKrB,EACLsB,GAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,EAAGtI,EAAG,GACdmI,EAAKzZ,EAAG,GAAIyZ,EAAK,GAUtB,IATKA,EAAKnB,GACTkB,EAAKC,EACLA,EAAK,IAELD,EAAKlB,EACLmB,GAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,EAAGnI,EAAG,GACdgI,EAAKtZ,EAAG,GAAIsZ,EAAK,GAUtB,IATKA,EAAKhB,GACTe,EAAKC,EACLA,EAAK,IAELD,EAAKf,EACLgB,GAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,EAAGhI,EAAG,GACd6H,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,EAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhByG,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CAUV,OAAO3I,CACR,ECrNA,SAA+BrP,EAAG4uC,EAAS3gC,GAC1C,IAAIwK,EACA3V,EACA/F,EACAyZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAO,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA9K,EACAlP,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,EACAmH,EACA7H,EACA2F,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAQ,EACAC,EACAE,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GA4BJ,IAtBAlC,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,UACnBqC,GACPsR,EAAKpP,GAAEoP,GAGPgH,EAAQ3C,GAAW9V,EAAEd,OAGrB0Z,EAAK5Y,EAAE7B,OAGP2E,EAAO9C,EAAE4C,KAGT4T,EAAM/E,EAAG,GAGT1U,EAAMiD,EAAEyD,UAAU,GAGlB4L,EAAMu/B,EAGAv0B,GAAKla,EAAG,GAAIka,GAAK,GAStB,IARKA,GAAK5B,GACT2B,EAAKC,GACLA,GAAK,IAELD,EAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,EAAOyB,GAAG5I,EAAG,GACbyI,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,EAAG,GAAOwI,EAAGxI,EAAG,GACtBuI,EAAMG,EAAQD,GAAGzI,EAAG,GACdsI,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtBoI,EAAMG,EAAQD,GAAGtI,EAAG,GACdmI,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtBiI,EAAMG,EAAQD,GAAGnI,EAAG,GACdgI,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB8H,EAAMG,EAAQD,GAAGhI,EAAG,GACd6H,GAAKnZ,EAAG,GAAImZ,GAAK,GAUtB,IATKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB2H,EAAMG,EAAQD,GAAG7H,EAAG,GACd0H,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBwH,EAAMG,EAAQD,EAAG1H,EAAG,GACduH,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBsH,EAAME,EAAQD,EAAGvH,EAAG,GACdqH,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBiH,EAAMK,EAAQD,EAAGrH,EAAG,GACdoH,EAAK1Y,EAAG,GAAI0Y,EAAK,GAetB,IAdKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GAGnBkF,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GAGhB4G,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,IACtBrH,EAAMpB,EAAMoB,EAAKtS,EAAK+F,EAAMiO,IAC5BA,GAAMyF,EAEPzF,GAAM4F,CACN,CACD5F,GAAM+F,CACN,CACD/F,GAAMkG,CACN,CACDlG,GAAMqG,CACN,CACDrG,GAAMwG,CACN,CACDxG,GAAM2G,CACN,CACD3G,GAAM8G,CACN,CACD9G,GAAMiH,CACN,CACDjH,GAAMoH,CACN,CAWX,OAAO9I,CACR,GxCnNImL,GAAWg0B,GAAM13C,OAAS,EyCrD9B,SAAS+3C,GAAkB14C,GAC1B,OACW,OAAVA,GACiB,iBAAVA,GACPoT,GAAsBpT,EAAMW,SAC5BX,EAAMW,QAAUg4C,IACmB,iBAA5B34C,EAAMwH,mBACe,iBAArBxH,EAAMoO,YACe,iBAArBpO,EAAM0X,UAEf,CCxCA,IAAIkhC,GAAYnvB,GAAa,aACzBovB,GAAapvB,GAAa,cAC1BqvB,GAAUrvB,GAAa,QCV3B,IAAItJ,GAAO,QCAX,IAAIA,GAAO,QC4CX,IAAIk4B,GAAQ,CCuBZ,SAAkBxuC,EAAG0R,EAAG/C,EAAKV,EAAMD,GAClC,IAAI4K,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OACP+C,EAAI+M,EAAK7V,KAAM4V,EAAShO,EAAE4C,KAAMgW,GAAM,EAAG,CAAEA,EAAIgQ,GAAM,CAAE5oB,EAAG0R,SACnD,IAANxQ,IACJwQ,EAAE9O,KAAMgmB,GAAOja,EAAKzN,GAEtB,ECPA,SAAkBlB,EAAG0R,EAAG/C,EAAKV,EAAMD,GAClC,IAAIlL,EACA6lB,EACAnS,EACAsZ,EACArZ,EACA1F,EACAa,EACA8E,EACAxV,EACA5K,EAmBJ,IAdAmgB,EAAKzW,EAAE9B,MAAO,GACdsY,EAAMxW,EAAElC,QAAS,GACjBgyB,EAAMpe,EAAE5T,QAAS,GAGjBiT,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACEogB,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,CAEP,ECrCA,SAAkB0J,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAmZ,EACAC,EACA5vB,EACAsW,EACAG,EACAnF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACA3V,EACA5K,EAmCJ,IA9BA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACEugB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACF,ECjEA,SAAkB/vB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACA7vB,EACAsW,EACAG,EACAG,EACAtF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACA9V,EACA5K,EAyCJ,IApCA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACE0gB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACF,EC7EA,SAAkBhwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACA9vB,EACAsW,EACAG,EACAG,EACAG,EACAzF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAjW,EACA5K,EA+CJ,IA1CA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACE6gB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACF,EC7FA,SAAkBjwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACA/vB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACApW,EACA5K,EAqDJ,IAhDA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACEghB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACF,EC3GA,SAAkBlwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvW,EACA5K,EA2DJ,IAtDA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACEmhB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACF,ECzHA,SAAkBnwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1W,EACA5K,EAiEJ,IA5DA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACEshB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACF,ECvIA,SAAkBpwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7W,EACA5K,EAuEJ,IAlEA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACEyhB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACF,ECrJA,SAAkBrwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAhX,EACA5K,EA6EJ,IAxEA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,EAAI,EACE4hB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACF,ECnKA,SAAmBtwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC/C,IAAIlL,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAnX,EACA5K,GAmFJ,IA9EA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGTtM,GAAI,EACE+hB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACDvf,GAAMoH,EACNvG,GAAM2e,CACN,CACF,GX9LIke,GAAiB,CY4BrB,SAAkBzuC,EAAG0R,EAAG/C,EAAKV,EAAMD,GAClC,IAAI4K,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OACP+C,EAAI+M,EAAK7V,KAAM4V,EAAShO,EAAEyD,UAAW,GAAKzD,EAAE4C,KAAMgW,GAAM,EAAG,CAAEA,EAAIgQ,GAAM,CAAE5oB,EAAG0R,SACrE,IAANxQ,GACJwQ,EAAEjO,UAAW,GAAKiO,EAAE9O,KAAMgmB,EAAIja,EAAKzN,GAErC,ECPA,SAAkBlB,EAAG0R,EAAG/C,EAAKV,EAAMD,GAClC,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAsZ,EACArZ,EACA1F,EACAa,EACA8E,EACAxV,EACA5K,EAuBJ,IAlBAmgB,EAAKzW,EAAE9B,MAAO,GACdsY,EAAMxW,EAAElC,QAAS,GACjBgyB,EAAMpe,EAAE5T,QAAS,GAGjBiT,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACEogB,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,CAEP,EC3CA,SAAkB0J,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAmZ,EACAC,EACA5vB,EACAsW,EACAG,EACAnF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACA3V,EACA5K,EAuCJ,IAlCA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACEugB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACF,ECrEA,SAAkB/vB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACA7vB,EACAsW,EACAG,EACAG,EACAtF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACA9V,EACA5K,EA6CJ,IAxCA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACE0gB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACF,ECrFA,SAAkBhwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACA9vB,EACAsW,EACAG,EACAG,EACAG,EACAzF,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAjW,EACA5K,EAmDJ,IA9CA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACE6gB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACF,ECnGA,SAAkBjwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACA/vB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACA5F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACApW,EACA5K,EAyDJ,IApDA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACEghB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACF,ECjHA,SAAkBlwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACA/F,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAvW,EACA5K,EA+DJ,IA1DA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACEmhB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACF,EC/HA,SAAkBnwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAlG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA1W,EACA5K,EAqEJ,IAhEA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACEshB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACF,EC7IA,SAAkBpwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACArG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA7W,EACA5K,EA2EJ,IAtEA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACEyhB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACF,EC3JA,SAAkBrwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC9C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxG,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAhX,EACA5K,EAiFJ,IA5EA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,EAAI,EACE4hB,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACF,ECzKA,SAAmBtwB,EAAG0R,EAAG2S,EAAY1V,EAAKV,EAAMD,GAC/C,IAAIlL,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACApwB,EACAsW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3G,EACAie,EACA3e,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAnX,GACA5K,GAuFJ,IAlFA6J,EAAKH,EAAE9B,MACPuT,EAAKzR,EAAElC,QACP4xB,EAAKhe,EAAE5T,QACFumB,GAEJ5N,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,KAGxBjZ,EAAKtW,EAAI,GACTyW,EAAKzW,EAAI,GACT4W,EAAK5W,EAAI,GACT+W,EAAK/W,EAAI,GACTkX,EAAKlX,EAAI,GACTqX,EAAKrX,EAAI,GACTwX,EAAKxX,EAAI,GACT2X,EAAK3X,EAAI,GACT8X,EAAK9X,EAAI,GACTiY,EAAKjY,EAAI,GACTqW,EAAM/E,EAAI,GACVkF,EAAMlF,EAAI,GAAQgF,EAAGhF,EAAG,GACxBqF,EAAMrF,EAAI,GAAQmF,EAAGnF,EAAG,GACxBwF,EAAMxF,EAAI,GAAQsF,EAAGtF,EAAG,GACxB2F,EAAM3F,EAAI,GAAQyF,EAAGzF,EAAG,GACxB8F,EAAM9F,EAAI,GAAQ4F,EAAG5F,EAAG,GACxBiG,EAAMjG,EAAI,GAAQ+F,EAAG/F,EAAG,GACxBoG,EAAMpG,EAAI,GAAQkG,EAAGlG,EAAG,GACxBuG,EAAMvG,EAAI,GAAQqG,EAAGrG,EAAG,GACxB0G,EAAM1G,EAAI,GAAQwG,EAAGxG,EAAG,GACxBqe,EAAMJ,EAAI,GACVK,EAAML,EAAI,GAAQjZ,EAAGiZ,EAAG,GACxBM,EAAMN,EAAI,GAAQ9Y,EAAG8Y,EAAG,GACxBO,EAAMP,EAAI,GAAQ3Y,EAAG2Y,EAAG,GACxBQ,EAAMR,EAAI,GAAQxY,EAAGwY,EAAG,GACxBS,EAAMT,EAAI,GAAQrY,EAAGqY,EAAG,GACxBU,EAAMV,EAAI,GAAQlY,EAAGkY,EAAG,GACxBW,EAAMX,EAAI,GAAQ/X,EAAG+X,EAAG,GACxBY,EAAMZ,EAAI,GAAQ5X,EAAG4X,EAAG,GACxBa,EAAMb,EAAI,GAAQzX,EAAGyX,EAAG,IAGzB3e,EAAK/Q,EAAE7B,OACPyT,EAAKF,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT7F,EAAMiD,EAAEyD,UAAW,GACnBzG,EAAM0U,EAAEjO,UAAW,GAGnBnN,GAAI,EACE+hB,GAAK,EAAGA,GAAKD,EAAIC,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKD,EAAIC,SAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,KAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CACDtf,GAAMiH,EACNpG,GAAM0e,CACN,CACDvf,GAAMoH,EACNvG,GAAM2e,CACN,CACF,GtBzMIme,GAAgB,CuBIpB,SAAyB1uC,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAmZ,EACAC,EACArX,EACAgY,EACAvwB,EACAwY,EACAlW,EACAgP,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAgC,EACAC,EACAzW,EACAnB,EACA5K,EA2BJ,IArBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,EAAI,EACEwiB,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBif,EAAM9H,EAAO9P,EAAG4W,EAAG,GACb7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB7Y,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CAGJ,EC9FA,SAAyB/vB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACAtX,EACAK,EACA2X,EACAC,EACAxwB,EACAwY,EACAlW,EACAC,EACA+O,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EACAnB,EACA5K,EA2BJ,IArBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,EAAI,EACE0iB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBkf,EAAM/H,EAAO5P,EAAG0W,EAAG,GACb5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB1Y,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CAIL,ECtHA,SAAyBhwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACAvX,EACAK,EACAE,EACAyX,EACAC,EACAC,EACAzwB,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA9W,EACAnB,EACA5K,EA2BJ,IArBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,EAAI,EACE6iB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACnBmf,EAAMhI,EAAOzP,EAAGuW,EAAG,GACb1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBvY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CAKN,EC9IA,SAAyBjwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACAxX,EACAK,EACAE,EACAG,EACAsX,EACAC,EACAC,EACAC,EACA1wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACAjX,EACAnB,EACA5K,EA2BJ,IArBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,EAAI,EACEgjB,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACnBof,EAAMjI,EAAOtP,EAAGoW,EAAG,GACbvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBpY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,IAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CAMP,ECtKA,SAAyBlwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAzX,EACAK,EACAE,EACAG,EACAG,EACAmX,EACAC,EACAC,EACAC,EACAC,EACA3wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACA/H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,EACAG,EACAG,GACApX,GACAnB,GACA5K,GA2BJ,IArBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,GAAI,EACEmjB,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPc,EAAMX,EAAOa,GAAGhI,EAAG,GACnBqf,EAAMlI,EAAOnP,GAAGiW,EAAG,GACbpW,EAAKnZ,EAAG,GAAImZ,EAAK,GAYtB,IAXKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,EAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,EAAGoW,EAAG,GACdvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBjY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,KAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CAOR,EC9LA,SAAyBnwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAgX,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAlI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAvX,GACAnB,GACA5K,GA2BJ,IArBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,GAAI,EACEsjB,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPiB,EAAMd,EAAOgB,GAAGnI,EAAG,GACnBsf,EAAMnI,EAAOhP,GAAG8V,EAAG,GACbjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB9X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,KAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CAQT,ECtNA,SAAyBpwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GACAnB,GACA5K,GA2BJ,IArBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,GAAI,EACEyjB,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPoB,EAAMjB,EAAOmB,GAAGtI,EAAG,GACnBuf,EAAMpI,EAAO7O,GAAG2V,EAAG,GACb9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB3X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,GAAOjD,EAAKzN,KAEnB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CACDrf,GAAM8G,EACNjG,GAAMye,CACN,CASV,EC9OA,SAAyBrwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA0W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,EACAie,EACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GACAnB,GACA5K,GA2BJ,IArBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGTp5B,GAAI,EACE4jB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,GAAOsB,GAAGzI,EAAG,GACnBwf,EAAMrI,GAAO1O,GAAGwV,EAAG,GACb3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,EAAG,GAAOqI,EAAGrI,EAAG,GACtB6e,EAAMZ,EAAG,GAAO5V,EAAG4V,EAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,EAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,EAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBxX,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,UAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,IAAMza,GAAG,CAAEya,GAAIa,IAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,IAAOjD,EAAKzN,KAEnB6P,IAAMyF,EACN5E,IAAMke,EACNx5B,IAAK,EAENya,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CAUX,ECtQA,SAA0BtwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GAC1C,IAAIyK,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACA3I,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GACAnB,GACA5K,GA2BJ,IArBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GAGTp5B,GAAI,EACE+jB,GAAKla,EAAG,GAAIka,GAAK,GAUtB,IATKA,GAAK5B,GACT2B,GAAKC,GACLA,GAAK,IAELD,GAAK3B,EACL4B,IAAM5B,GAEP0B,EAAMvB,GAAOyB,GAAG5I,GAAG,GACnByf,EAAMtI,GAAOvO,GAAGqV,GAAG,GACbxV,GAAK/Z,EAAG,GAAI+Z,GAAK,GAYtB,IAXKA,GAAKzB,GACTwB,GAAKC,GACLA,GAAK,IAELD,GAAKxB,EACLyB,IAAMzB,GAEPN,EAAM1G,GAAG,GAAOwI,GAAGxI,GAAG,GACtB8e,EAAMb,GAAG,GAAOzV,GAAGyV,GAAG,GACtB1V,EAAMG,EAAQD,GAAGzI,GAAG,GACpBwf,EAAMC,EAAQhX,GAAGwV,GAAG,GACd3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,GAAKC,GACLA,GAAK,IAELD,GAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,GAAGrI,GAAG,GACtB6e,EAAMZ,GAAG,GAAO5V,GAAG4V,GAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,GAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,GAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,EAAGlI,GAAG,GACtB4e,EAAMX,GAAG,GAAO/V,EAAG+V,GAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,GAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,GAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,EAAG/H,GAAG,GACtB2e,EAAMV,GAAG,GAAOlW,EAAGkW,GAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,GAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,GAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,EAAG5H,GAAG,GACtB0e,EAAMT,GAAG,GAAOrW,EAAGqW,GAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,GAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,GAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,EAAGzH,GAAG,GACtBye,EAAMR,GAAG,GAAOxW,EAAGwW,GAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,GAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,GAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO/O,EAAG+O,GAAG,GACtBwe,EAAMP,GAAG,GAAOhtB,EAAGgtB,GAAG,GACtB3W,EAAME,EAAQD,GAAGvH,GAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,GAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAOhP,EAAGgP,GAAG,GACtBue,EAAMN,GAAG,GAAOjtB,EAAGitB,GAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,GAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,GAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,GAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,GAAG,GAGnB/Y,EAAMlF,GAAG,GAAOkH,EAAGlH,GAAG,GACtBse,EAAML,GAAG,GAAO/W,EAAG+W,GAAG,GAGhBrX,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,GAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,UAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASlL,EAAMiO,IAAMza,GAAG,CAAEya,GAAIa,IAAM,CAAE5R,EAAG0R,OAEvDiX,EAAM/W,IAAOjD,EAAKzN,KAEnB6P,IAAMyF,EACN5E,IAAMke,EACNx5B,IAAK,EAENya,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CACDvf,IAAMoH,EACNvG,IAAM2e,CACN,CAWZ,G/BvRIoe,GAAyB,CgCW7B,SAAyB3uC,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAmZ,EACAC,EACArX,EACAgY,EACAvwB,EACAwY,EACAlW,EACAgP,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAgC,EACAC,EACAzW,EACAnB,EACA5K,EA+BJ,IAzBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,EAAI,EACEwiB,EAAK3Y,EAAG,GAAI2Y,EAAK,GAUtB,IATKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEPC,EAAME,EAAOE,EAAGrH,EAAG,GACnBif,EAAM9H,EAAO9P,EAAG4W,EAAG,GACb7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB7Y,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CAGJ,ECpGA,SAAyB/vB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAgZ,EACAC,EACAC,EACAtX,EACAK,EACA2X,EACAC,EACAxwB,EACAwY,EACAlW,EACAC,EACA+O,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACA6B,EACAC,EACAE,EACA3W,EACAnB,EACA5K,EA+BJ,IAzBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,EAAI,EACE0iB,EAAK7Y,EAAG,GAAI6Y,EAAK,GAUtB,IATKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPM,EAAMH,EAAOI,EAAGvH,EAAG,GACnBkf,EAAM/H,EAAO5P,EAAG0W,EAAG,GACb5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB1Y,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CAIL,EC5HA,SAAyBhwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACA6Y,EACAC,EACAC,EACAC,EACAvX,EACAK,EACAE,EACAyX,EACAC,EACAC,EACAzwB,EACAwY,EACAlW,EACAC,EACAwW,EACAzH,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACA0B,EACAC,EACAE,EACAG,EACA9W,EACAnB,EACA5K,EA+BJ,IAzBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,EAAI,EACE6iB,EAAKhZ,EAAG,GAAIgZ,EAAK,GAUtB,IATKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPQ,EAAML,EAAOO,EAAG1H,EAAG,GACnBmf,EAAMhI,EAAOzP,EAAGuW,EAAG,GACb1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBvY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CAKN,ECpJA,SAAyBjwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACAxX,EACAK,EACAE,EACAG,EACAsX,EACAC,EACAC,EACAC,EACA1wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACA5H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAuB,EACAC,EACAE,EACAG,EACAG,EACAjX,EACAnB,EACA5K,EA+BJ,IAzBA6J,GADAkC,EAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,EAAEoP,GACPie,EAAKrtB,EAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,EAAI,EACEgjB,EAAKnZ,EAAG,GAAImZ,EAAK,GAUtB,IATKA,EAAKb,GACTY,EAAKC,EACLA,EAAK,IAELD,EAAKZ,EACLa,GAAMb,GAEPW,EAAMR,EAAOU,EAAG7H,EAAG,GACnBof,EAAMjI,EAAOtP,EAAGoW,EAAG,GACbvW,EAAKhZ,EAAG,GAAIgZ,EAAK,GAYtB,IAXKA,EAAKV,GACTS,EAAKC,EACLA,EAAK,IAELD,EAAKT,EACLU,GAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,EAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,EAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBpY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,EAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,EAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,IAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,GAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CAMP,EC5KA,SAAyBlwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAzX,EACAK,EACAE,EACAG,EACAG,EACAmX,EACAC,EACAC,EACAC,EACAC,EACA3wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACA/H,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoB,EACAC,EACAE,EACAG,GACAG,GACAG,GACApX,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,GAAI,EACEmjB,GAAKtZ,EAAG,GAAIsZ,GAAK,GAUtB,IATKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPc,EAAMX,EAAOa,GAAGhI,EAAG,GACnBqf,EAAMlI,EAAOnP,GAAGiW,EAAG,GACbpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,EAAK7Y,EAAG,GAAI6Y,EAAK,GAYtB,IAXKA,EAAKP,GACT/V,EAAKsW,EACLA,EAAK,IAELtW,EAAK+V,EACLO,GAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,EAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,EAAG0W,EAAG,GACd5W,EAAK3Y,EAAG,GAAI2Y,EAAK,GAYtB,IAXKA,EAAKL,GACThW,EAAKqW,EACLA,EAAK,IAELrW,EAAKgW,EACLK,GAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,EAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,EAAG4W,EAAG,GACd7W,EAAK1Y,EAAG,GAAI0Y,EAAK,GAiBtB,IAhBKA,EAAKJ,GACTE,EAAKE,EACLA,EAAK,IAELF,EAAKF,EACLI,GAAMJ,GAGP1H,EAAK2H,EAAQG,EAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,EAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhBjY,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,KAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CAOR,ECpMA,SAAyBnwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAoY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAgX,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAlI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,EACA8E,EACAG,EACAG,EACAG,EACAG,GACAG,GACAG,GACAiB,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAvX,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,GAAI,EACEsjB,GAAKzZ,EAAG,GAAIyZ,GAAK,GAUtB,IATKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPiB,EAAMd,EAAOgB,GAAGnI,EAAG,GACnBsf,EAAMnI,EAAOhP,GAAG8V,EAAG,GACbjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,EAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB9X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAK+B,EAAI/B,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKtU,EAAIsU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKpU,EAAIoU,IAAO,CAC7B,IAAMH,EAAK,EAAGA,EAAKiC,EAAIjC,SAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,GAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,EAAIjD,EAAKzN,KAErB6P,GAAMyF,EACN5E,GAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,GAAMme,CACN,CACDhf,GAAM+F,EACNlF,GAAMoe,CACN,CACDjf,GAAMkG,EACNrF,GAAMqe,CACN,CACDlf,GAAMqG,EACNxF,GAAMse,CACN,CACDnf,GAAMwG,EACN3F,GAAMue,CACN,CACDpf,GAAM2G,EACN9F,GAAMwe,CACN,CAQT,EC5NA,SAAyBpwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAiY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACA6W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACArI,EACAie,EACA9W,EACAgQ,EACA7X,EACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAc,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACA1X,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,EAAKpP,GAAEoP,GACPie,EAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,EAAK5Y,EAAE7B,OACPyqB,EAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,EAAG,GACTqe,EAAMJ,EAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,GAAI,EACEyjB,GAAK5Z,EAAG,GAAI4Z,GAAK,GAUtB,IATKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPoB,EAAMjB,EAAOmB,GAAGtI,EAAG,GACnBuf,EAAMpI,EAAO7O,GAAG2V,EAAG,GACb9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,EAAG,GAAOkI,EAAGlI,EAAG,GACtB4e,EAAMX,EAAG,GAAO/V,EAAG+V,EAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,EAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,EAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,EAAG,GAAO+H,EAAG/H,EAAG,GACtB2e,EAAMV,EAAG,GAAOlW,EAAGkW,EAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,EAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,EAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,EAAG,GAAO4H,EAAG5H,EAAG,GACtB0e,EAAMT,EAAG,GAAOrW,EAAGqW,EAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,EAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,EAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,EAAG,GAAOyH,EAAGzH,EAAG,GACtBye,EAAMR,EAAG,GAAOxW,EAAGwW,EAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,EAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,EAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,EAAG,GAAO/O,EAAG+O,EAAG,GACtBwe,EAAMP,EAAG,GAAOhtB,EAAGgtB,EAAG,GACtB3W,EAAME,EAAQD,GAAGvH,EAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,EAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,EAAG,GAAOhP,EAAGgP,EAAG,GACtBue,EAAMN,EAAG,GAAOjtB,EAAGitB,EAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,EAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,EAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,EAAK2H,EAAQG,GAAGpH,EAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,EAAG,GAGnB/Y,EAAMlF,EAAG,GAAOkH,EAAGlH,EAAG,GACtBse,EAAML,EAAG,GAAO/W,EAAG+W,EAAG,GAGhB3X,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,UAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,GAAMza,GAAG,CAAEya,EAAIa,IAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,GAAIjD,EAAKzN,KAErB6P,GAAMyF,EACN5E,IAAMke,EACNx5B,IAAK,EAENya,GAAM4F,EACN/E,IAAMme,CACN,CACDhf,GAAM+F,EACNlF,IAAMoe,CACN,CACDjf,GAAMkG,EACNrF,IAAMqe,CACN,CACDlf,GAAMqG,EACNxF,IAAMse,CACN,CACDnf,GAAMwG,EACN3F,IAAMue,CACN,CACDpf,GAAM2G,EACN9F,IAAMwe,CACN,CACDrf,GAAM8G,EACNjG,IAAMye,CACN,CASV,ECpPA,SAAyBrwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GACzC,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACA0W,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAxI,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAW,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACA7X,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,GAAG,GACTqe,EAAMJ,GAAG,GAGT3yB,EAAMiD,EAAEyD,UAAU,GAClBzG,EAAM0U,EAAEjO,UAAU,GAGlBnN,GAAI,EACE4jB,GAAK/Z,EAAG,GAAI+Z,GAAK,GAUtB,IATKA,GAAKzB,GACTwB,EAAKC,GACLA,GAAK,IAELD,EAAKxB,EACLyB,IAAMzB,GAEPuB,EAAMpB,GAAOsB,GAAGzI,GAAG,GACnBwf,EAAMrI,GAAO1O,GAAGwV,GAAG,GACb3V,GAAK5Z,EAAG,GAAI4Z,GAAK,GAYtB,IAXKA,GAAKtB,GACTqB,EAAKC,GACLA,GAAK,IAELD,EAAKrB,EACLsB,IAAMtB,GAEPT,EAAMvG,GAAG,GAAOqI,EAAGrI,GAAG,GACtB6e,EAAMZ,GAAG,GAAO5V,EAAG4V,GAAG,GACtB7V,EAAMG,EAAQD,GAAGtI,GAAG,GACpBuf,EAAMC,EAAQlX,GAAG2V,GAAG,GACd9V,GAAKzZ,EAAG,GAAIyZ,GAAK,GAYtB,IAXKA,GAAKnB,GACTkB,EAAKC,GACLA,GAAK,IAELD,EAAKlB,EACLmB,IAAMnB,GAEPZ,EAAMpG,GAAG,GAAOkI,EAAGlI,GAAG,GACtB4e,EAAMX,GAAG,GAAO/V,EAAG+V,GAAG,GACtBhW,EAAMG,EAAQD,GAAGnI,GAAG,GACpBsf,EAAMC,EAAQpX,GAAG8V,GAAG,GACdjW,GAAKtZ,EAAG,GAAIsZ,GAAK,GAYtB,IAXKA,GAAKhB,GACTe,EAAKC,GACLA,GAAK,IAELD,EAAKf,EACLgB,IAAMhB,GAEPf,EAAMjG,GAAG,GAAO+H,EAAG/H,GAAG,GACtB2e,EAAMV,GAAG,GAAOlW,EAAGkW,GAAG,GACtBnW,EAAMG,EAAQD,GAAGhI,GAAG,GACpBqf,EAAMC,EAAQtX,GAAGiW,GAAG,GACdpW,GAAKnZ,EAAG,GAAImZ,GAAK,GAYtB,IAXKA,GAAKb,GACTY,EAAKC,GACLA,GAAK,IAELD,EAAKZ,EACLa,IAAMb,GAEPlB,EAAM9F,GAAG,GAAO4H,EAAG5H,GAAG,GACtB0e,EAAMT,GAAG,GAAOrW,EAAGqW,GAAG,GACtBtW,EAAMG,EAAQD,GAAG7H,GAAG,GACpBof,EAAMC,EAAQxX,GAAGoW,GAAG,GACdvW,GAAKhZ,EAAG,GAAIgZ,GAAK,GAYtB,IAXKA,GAAKV,GACTS,EAAKC,GACLA,GAAK,IAELD,EAAKT,EACLU,IAAMV,GAEPrB,EAAM3F,GAAG,GAAOyH,EAAGzH,GAAG,GACtBye,EAAMR,GAAG,GAAOxW,EAAGwW,GAAG,GACtBzW,EAAMG,EAAQD,GAAG1H,GAAG,GACpBmf,EAAMC,EAAQ1X,GAAGuW,GAAG,GACd1W,GAAK7Y,EAAG,GAAI6Y,GAAK,GAYtB,IAXKA,GAAKP,GACT/V,EAAKsW,GACLA,GAAK,IAELtW,EAAK+V,EACLO,IAAMP,GAEPxB,EAAMxF,GAAG,GAAO/O,EAAG+O,GAAG,GACtBwe,EAAMP,GAAG,GAAOhtB,EAAGgtB,GAAG,GACtB3W,EAAME,EAAQD,GAAGvH,GAAG,GACpBkf,EAAMC,EAAQ5X,GAAG0W,GAAG,GACd5W,GAAK3Y,EAAG,GAAI2Y,GAAK,GAYtB,IAXKA,GAAKL,GACThW,EAAKqW,GACLA,GAAK,IAELrW,EAAKgW,EACLK,IAAML,GAEP3B,EAAMrF,GAAG,GAAOhP,EAAGgP,GAAG,GACtBue,EAAMN,GAAG,GAAOjtB,EAAGitB,GAAG,GACtBhX,EAAMK,EAAQD,GAAGrH,GAAG,GACpBif,EAAMC,EAAQ7X,GAAG4W,GAAG,GACd7W,GAAK1Y,EAAG,GAAI0Y,GAAK,GAiBtB,IAhBKA,GAAKJ,GACTE,EAAKE,GACLA,GAAK,IAELF,EAAKF,EACLI,IAAMJ,GAGP1H,GAAK2H,EAAQG,GAAGpH,GAAG,GACnBG,GAAK8e,EAAQ7X,GAAG6W,GAAG,GAGnB/Y,EAAMlF,GAAG,GAAOkH,EAAGlH,GAAG,GACtBse,EAAML,GAAG,GAAO/W,EAAG+W,GAAG,GAGhBxX,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,UAEX,KADXxV,GAAI+M,EAAK7V,KAAM4V,EAASjR,EAAK+F,EAAMiO,IAAMza,GAAG,CAAEya,GAAIa,IAAM,CAAE5R,EAAG0R,MAE5D1U,EAAK2rB,EAAM/W,GAAIjD,EAAKzN,KAErB6P,IAAMyF,EACN5E,IAAMke,EACNx5B,IAAK,EAENya,IAAM4F,EACN/E,IAAMme,CACN,CACDhf,IAAM+F,EACNlF,IAAMoe,CACN,CACDjf,IAAMkG,EACNrF,IAAMqe,CACN,CACDlf,IAAMqG,EACNxF,IAAMse,CACN,CACDnf,IAAMwG,EACN3F,IAAMue,CACN,CACDpf,IAAM2G,EACN9F,IAAMwe,CACN,CACDrf,IAAM8G,EACNjG,IAAMye,CACN,CACDtf,IAAMiH,EACNpG,IAAM0e,CACN,CAUX,EC5QA,SAA0BtwB,EAAG0R,EAAG/C,EAAKV,EAAMD,GAC1C,IAAIyK,EACA3V,EACA6lB,EACA5rB,EACAC,EACAwZ,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,GACAG,GACAG,GACAG,GACAG,GACA3I,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GACAnB,GACA5K,GA+BJ,IAzBA6J,GADAkC,GAAImP,GAAWxR,EAAE9B,MAAO8B,EAAElC,QAAS4T,EAAE5T,UAC9BqC,GACPsR,GAAKpP,GAAEoP,GACPie,GAAKrtB,GAAEqtB,GAGPjX,EAAQ3C,GAAW9V,EAAEd,MAAOwS,EAAExS,OAG9B0Z,GAAK5Y,EAAE7B,OACPyqB,GAAKlX,EAAEvT,OAGP2E,EAAO9C,EAAE4C,KACT+lB,EAAOjX,EAAE9O,KAGT4T,EAAM/E,G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EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAK+B,EAAI/B,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKtU,EAAIsU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKpU,EAAIoU,KAAO,CAC7B,IAAMH,GAAK,EAAGA,GAAKiC,EAAIjC,KACtBiS,EAAM/W,IAAO9O,EAAMiO,GACnBA,GAAMyF,EACN5E,IAAMke,EAEP/e,GAAM4F,EACN/E,IAAMme,CACN,CACDhf,GAAM+F,EACNlF,IAAMoe,CACN,CACDjf,GAAMkG,EACNrF,IAAMqe,CACN,CACDlf,GAAMqG,EACNxF,IAAMse,CACN,CACDnf,GAAMwG,EACN3F,IAAMue,CACN,CACDpf,GAAM2G,EACN9F,IAAMwe,CACN,CACDrf,GAAM8G,EACNjG,IAAMye,CACN,CACDtf,GAAMiH,EACNpG,IAAM0e,CACN,CAUX,EC/PA,SAA2BtwB,EAAG0R,GAC7B,IAAI+G,EACA3V,EACA6lB,EACAnS,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA2X,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA7X,EACAK,EACAE,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACAuW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/wB,EACAwY,EACAlW,EACAC,EACAwW,EACAG,EACAG,EACAG,EACAG,EACAG,EACAG,EACA3I,GACAie,GACA9W,GACAgQ,GACA7X,GACAa,GACA8E,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAQ,GACAC,GACAE,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAG,GACAhY,GA0BJ,IApBAlC,GADAkC,GAAImP,GAAWxR,EAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324]} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 070a681..0000000 --- a/lib/index.js +++ /dev/null @@ -1,2026 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/* -* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name. -*/ - -/* -* The following modules are intentionally not exported: function-object, napi, unary -*/ - -// MODULES // - -var setReadOnly = require( '@stdlib/utils-define-read-only-property' ); - - -// MAIN // - -/** -* Top-level namespace. -* -* @namespace ns -*/ -var ns = {}; - -/** -* @name any -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/any} -*/ -setReadOnly( ns, 'any', require( '@stdlib/ndarray-base-any' ) ); - -/** -* @name anyBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/any-by} -*/ -setReadOnly( ns, 'anyBy', require( '@stdlib/ndarray-base-any-by' ) ); - -/** -* @name appendSingletonDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/append-singleton-dimensions} -*/ -setReadOnly( ns, 'appendSingletonDimensions', require( '@stdlib/ndarray-base-append-singleton-dimensions' ) ); - -/** -* @name assert -* @memberof ns -* @readonly -* @type {Namespace} -* @see {@link module:@stdlib/ndarray/base/assert} -*/ -setReadOnly( ns, 'assert', require( '@stdlib/ndarray-base-assert' ) ); - -/** -* @name assign -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/assign} -*/ -setReadOnly( ns, 'assign', require( '@stdlib/ndarray-base-assign' ) ); - -/** -* @name assignDiagonal -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/assign-diagonal} -*/ -setReadOnly( ns, 'assignDiagonal', require( '@stdlib/ndarray-base-assign-diagonal' ) ); - -/** -* @name assignScalar -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/assign-scalar} -*/ -setReadOnly( ns, 'assignScalar', require( '@stdlib/ndarray-base-assign-scalar' ) ); - -/** -* @name atleast1d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/atleast1d} -*/ -setReadOnly( ns, 'atleast1d', require( '@stdlib/ndarray-base-atleast1d' ) ); - -/** -* @name atleast2d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/atleast2d} -*/ -setReadOnly( ns, 'atleast2d', require( '@stdlib/ndarray-base-atleast2d' ) ); - -/** -* @name atleast3d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/atleast3d} -*/ -setReadOnly( ns, 'atleast3d', require( '@stdlib/ndarray-base-atleast3d' ) ); - -/** -* @name atleastnd -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/atleastnd} -*/ -setReadOnly( ns, 'atleastnd', require( '@stdlib/ndarray-base-atleastnd' ) ); - -/** -* @name binary -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary} -*/ -setReadOnly( ns, 'binary', require( '@stdlib/ndarray-base-binary' ) ); - -/** -* @name binaryInputCastingDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-input-casting-dtype} -*/ -setReadOnly( ns, 'binaryInputCastingDataType', require( '@stdlib/ndarray-base-binary-input-casting-dtype' ) ); - -/** -* @name binaryLoopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-loop-interchange-order} -*/ -setReadOnly( ns, 'binaryLoopOrder', require( '@stdlib/ndarray-base-binary-loop-interchange-order' ) ); - -/** -* @name binaryOutputDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-output-dtype} -*/ -setReadOnly( ns, 'binaryOutputDataType', require( '@stdlib/ndarray-base-binary-output-dtype' ) ); - -/** -* @name binaryReduceStrided1d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d} -*/ -setReadOnly( ns, 'binaryReduceStrided1d', require( '@stdlib/ndarray-base-binary-reduce-strided1d' ) ); - -/** -* @name binaryReduceStrided1dDispatch -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch} -*/ -setReadOnly( ns, 'binaryReduceStrided1dDispatch', require( '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch' ) ); - -/** -* @name binaryReduceStrided1dDispatchFactory -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-reduce-strided1d-dispatch-factory} -*/ -setReadOnly( ns, 'binaryReduceStrided1dDispatchFactory', require( '@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory' ) ); - -/** -* @name binaryBlockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/binary-tiling-block-size} -*/ -setReadOnly( ns, 'binaryBlockSize', require( '@stdlib/ndarray-base-binary-tiling-block-size' ) ); - -/** -* @name bind2vind -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/bind2vind} -*/ -setReadOnly( ns, 'bind2vind', require( '@stdlib/ndarray-base-bind2vind' ) ); - -/** -* @name broadcastArray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/broadcast-array} -*/ -setReadOnly( ns, 'broadcastArray', require( '@stdlib/ndarray-base-broadcast-array' ) ); - -/** -* @name broadcastArrayExceptDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/broadcast-array-except-dimensions} -*/ -setReadOnly( ns, 'broadcastArrayExceptDimensions', require( '@stdlib/ndarray-base-broadcast-array-except-dimensions' ) ); - -/** -* @name broadcastArrays -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/broadcast-arrays} -*/ -setReadOnly( ns, 'broadcastArrays', require( '@stdlib/ndarray-base-broadcast-arrays' ) ); - -/** -* @name broadcastScalar -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/broadcast-scalar} -*/ -setReadOnly( ns, 'broadcastScalar', require( '@stdlib/ndarray-base-broadcast-scalar' ) ); - -/** -* @name broadcastScalarLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/broadcast-scalar-like} -*/ -setReadOnly( ns, 'broadcastScalarLike', require( '@stdlib/ndarray-base-broadcast-scalar-like' ) ); - -/** -* @name broadcastShapes -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/broadcast-shapes} -*/ -setReadOnly( ns, 'broadcastShapes', require( '@stdlib/ndarray-base-broadcast-shapes' ) ); - -/** -* @name buffer -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/buffer} -*/ -setReadOnly( ns, 'buffer', require( '@stdlib/ndarray-base-buffer' ) ); - -/** -* @name bufferCtors -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/buffer-ctors} -*/ -setReadOnly( ns, 'bufferCtors', require( '@stdlib/ndarray-base-buffer-ctors' ) ); - -/** -* @name bufferDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/buffer-dtype} -*/ -setReadOnly( ns, 'bufferDataType', require( '@stdlib/ndarray-base-buffer-dtype' ) ); - -/** -* @name bufferDataTypeEnum -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/buffer-dtype-enum} -*/ -setReadOnly( ns, 'bufferDataTypeEnum', require( '@stdlib/ndarray-base-buffer-dtype-enum' ) ); - -/** -* @name bytesPerElement -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/bytes-per-element} -*/ -setReadOnly( ns, 'bytesPerElement', require( '@stdlib/ndarray-base-bytes-per-element' ) ); - -/** -* @name char2dtype -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/char2dtype} -*/ -setReadOnly( ns, 'char2dtype', require( '@stdlib/ndarray-base-char2dtype' ) ); - -/** -* @name clampIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/clamp-index} -*/ -setReadOnly( ns, 'clampIndex', require( '@stdlib/ndarray-base-clamp-index' ) ); - -/** -* @name clipIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/clip-index} -*/ -setReadOnly( ns, 'clipIndex', require( '@stdlib/ndarray-base-clip-index' ) ); - -/** -* @name complementShape -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/complement-shape} -*/ -setReadOnly( ns, 'complementShape', require( '@stdlib/ndarray-base-complement-shape' ) ); - -/** -* @name consensusOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/consensus-order} -*/ -setReadOnly( ns, 'consensusOrder', require( '@stdlib/ndarray-base-consensus-order' ) ); - -/** -* @name copy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/copy} -*/ -setReadOnly( ns, 'copy', require( '@stdlib/ndarray-base-copy' ) ); - -/** -* @name countFalsy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/count-falsy} -*/ -setReadOnly( ns, 'countFalsy', require( '@stdlib/ndarray-base-count-falsy' ) ); - -/** -* @name countIf -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/count-if} -*/ -setReadOnly( ns, 'countIf', require( '@stdlib/ndarray-base-count-if' ) ); - -/** -* @name countTruthy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/count-truthy} -*/ -setReadOnly( ns, 'countTruthy', require( '@stdlib/ndarray-base-count-truthy' ) ); - -/** -* @name ndarray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ctor} -*/ -setReadOnly( ns, 'ndarray', require( '@stdlib/ndarray-base-ctor' ) ); - -/** -* @name data -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/data-buffer} -*/ -setReadOnly( ns, 'data', require( '@stdlib/ndarray-base-data-buffer' ) ); - -/** -* @name descriptor -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/descriptor} -*/ -setReadOnly( ns, 'descriptor', require( '@stdlib/ndarray-base-descriptor' ) ); - -/** -* @name diagonal -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/diagonal} -*/ -setReadOnly( ns, 'diagonal', require( '@stdlib/ndarray-base-diagonal' ) ); - -/** -* @name dtype -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype} -*/ -setReadOnly( ns, 'dtype', require( '@stdlib/ndarray-base-dtype' ) ); - -/** -* @name dtypeAlignment -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-alignment} -*/ -setReadOnly( ns, 'dtypeAlignment', require( '@stdlib/ndarray-base-dtype-alignment' ) ); - -/** -* @name dtypeChar -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-char} -*/ -setReadOnly( ns, 'dtypeChar', require( '@stdlib/ndarray-base-dtype-char' ) ); - -/** -* @name dtypeChars -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-chars} -*/ -setReadOnly( ns, 'dtypeChars', require( '@stdlib/ndarray-base-dtype-chars' ) ); - -/** -* @name dtypeDesc -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-desc} -*/ -setReadOnly( ns, 'dtypeDesc', require( '@stdlib/ndarray-base-dtype-desc' ) ); - -/** -* @name dtypeEnum2Str -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-enum2str} -*/ -setReadOnly( ns, 'dtypeEnum2Str', require( '@stdlib/ndarray-base-dtype-enum2str' ) ); - -/** -* @name dtypeEnums -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-enums} -*/ -setReadOnly( ns, 'dtypeEnums', require( '@stdlib/ndarray-base-dtype-enums' ) ); - -/** -* @name dtypeObjects -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-objects} -*/ -setReadOnly( ns, 'dtypeObjects', require( '@stdlib/ndarray-base-dtype-objects' ) ); - -/** -* @name dtypeResolveEnum -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-resolve-enum} -*/ -setReadOnly( ns, 'dtypeResolveEnum', require( '@stdlib/ndarray-base-dtype-resolve-enum' ) ); - -/** -* @name dtypeResolveStr -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-resolve-str} -*/ -setReadOnly( ns, 'dtypeResolveStr', require( '@stdlib/ndarray-base-dtype-resolve-str' ) ); - -/** -* @name dtypeStr2Enum -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-str2enum} -*/ -setReadOnly( ns, 'dtypeStr2Enum', require( '@stdlib/ndarray-base-dtype-str2enum' ) ); - -/** -* @name dtypeStrings -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype-strings} -*/ -setReadOnly( ns, 'dtypeStrings', require( '@stdlib/ndarray-base-dtype-strings' ) ); - -/** -* @name dtype2c -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtype2c} -*/ -setReadOnly( ns, 'dtype2c', require( '@stdlib/ndarray-base-dtype2c' ) ); - -/** -* @name dtypes2enums -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtypes2enums} -*/ -setReadOnly( ns, 'dtypes2enums', require( '@stdlib/ndarray-base-dtypes2enums' ) ); - -/** -* @name dtypes2signatures -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtypes2signatures} -*/ -setReadOnly( ns, 'dtypes2signatures', require( '@stdlib/ndarray-base-dtypes2signatures' ) ); - -/** -* @name dtypes2strings -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/dtypes2strings} -*/ -setReadOnly( ns, 'dtypes2strings', require( '@stdlib/ndarray-base-dtypes2strings' ) ); - -/** -* @name empty -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/empty} -*/ -setReadOnly( ns, 'empty', require( '@stdlib/ndarray-base-empty' ) ); - -/** -* @name emptyLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/empty-like} -*/ -setReadOnly( ns, 'emptyLike', require( '@stdlib/ndarray-base-empty-like' ) ); - -/** -* @name every -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/every} -*/ -setReadOnly( ns, 'every', require( '@stdlib/ndarray-base-every' ) ); - -/** -* @name everyBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/every-by} -*/ -setReadOnly( ns, 'everyBy', require( '@stdlib/ndarray-base-every-by' ) ); - -/** -* @name expandDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/expand-dimensions} -*/ -setReadOnly( ns, 'expandDimensions', require( '@stdlib/ndarray-base-expand-dimensions' ) ); - -/** -* @name falses -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/falses} -*/ -setReadOnly( ns, 'falses', require( '@stdlib/ndarray-base-falses' ) ); - -/** -* @name falsesLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/falses-like} -*/ -setReadOnly( ns, 'falsesLike', require( '@stdlib/ndarray-base-falses-like' ) ); - -/** -* @name fill -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/fill} -*/ -setReadOnly( ns, 'fill', require( '@stdlib/ndarray-base-fill' ) ); - -/** -* @name fillBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/fill-by} -*/ -setReadOnly( ns, 'fillBy', require( '@stdlib/ndarray-base-fill-by' ) ); - -/** -* @name fillDiagonal -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/fill-diagonal} -*/ -setReadOnly( ns, 'fillDiagonal', require( '@stdlib/ndarray-base-fill-diagonal' ) ); - -/** -* @name find -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/find} -*/ -setReadOnly( ns, 'find', require( '@stdlib/ndarray-base-find' ) ); - -/** -* @name flag -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/flag} -*/ -setReadOnly( ns, 'flag', require( '@stdlib/ndarray-base-flag' ) ); - -/** -* @name flags -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/flags} -*/ -setReadOnly( ns, 'flags', require( '@stdlib/ndarray-base-flags' ) ); - -/** -* @name flattenShape -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/flatten-shape} -*/ -setReadOnly( ns, 'flattenShape', require( '@stdlib/ndarray-base-flatten-shape' ) ); - -/** -* @name flattenShapeFrom -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/flatten-shape-from} -*/ -setReadOnly( ns, 'flattenShapeFrom', require( '@stdlib/ndarray-base-flatten-shape-from' ) ); - -/** -* @name fliplr -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/fliplr} -*/ -setReadOnly( ns, 'fliplr', require( '@stdlib/ndarray-base-fliplr' ) ); - -/** -* @name flipud -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/flipud} -*/ -setReadOnly( ns, 'flipud', require( '@stdlib/ndarray-base-flipud' ) ); - -/** -* @name forEach -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/for-each} -*/ -setReadOnly( ns, 'forEach', require( '@stdlib/ndarray-base-for-each' ) ); - -/** -* @name array2ndarray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/from-array} -*/ -setReadOnly( ns, 'array2ndarray', require( '@stdlib/ndarray-base-from-array' ) ); - -/** -* @name scalar2ndarray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/from-scalar} -*/ -setReadOnly( ns, 'scalar2ndarray', require( '@stdlib/ndarray-base-from-scalar' ) ); - -/** -* @name scalar2ndarrayLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/from-scalar-like} -*/ -setReadOnly( ns, 'scalar2ndarrayLike', require( '@stdlib/ndarray-base-from-scalar-like' ) ); - -/** -* @name full -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/full} -*/ -setReadOnly( ns, 'full', require( '@stdlib/ndarray-base-full' ) ); - -/** -* @name fullBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/full-by} -*/ -setReadOnly( ns, 'fullBy', require( '@stdlib/ndarray-base-full-by' ) ); - -/** -* @name includes -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/includes} -*/ -setReadOnly( ns, 'includes', require( '@stdlib/ndarray-base-includes' ) ); - -/** -* @name ind -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ind} -*/ -setReadOnly( ns, 'ind', require( '@stdlib/ndarray-base-ind' ) ); - -/** -* @name ind2sub -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ind2sub} -*/ -setReadOnly( ns, 'ind2sub', require( '@stdlib/ndarray-base-ind2sub' ) ); - -/** -* @name iterationOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/iteration-order} -*/ -setReadOnly( ns, 'iterationOrder', require( '@stdlib/ndarray-base-iteration-order' ) ); - -/** -* @name loopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/loop-interchange-order} -*/ -setReadOnly( ns, 'loopOrder', require( '@stdlib/ndarray-base-loop-interchange-order' ) ); - -/** -* @name map -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/map} -*/ -setReadOnly( ns, 'map', require( '@stdlib/ndarray-base-map' ) ); - -/** -* @name maxViewBufferIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/max-view-buffer-index} -*/ -setReadOnly( ns, 'maxViewBufferIndex', require( '@stdlib/ndarray-base-max-view-buffer-index' ) ); - -/** -* @name maybeBroadcastArray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array} -*/ -setReadOnly( ns, 'maybeBroadcastArray', require( '@stdlib/ndarray-base-maybe-broadcast-array' ) ); - -/** -* @name maybeBroadcastArrayExceptDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array-except-dimensions} -*/ -setReadOnly( ns, 'maybeBroadcastArrayExceptDimensions', require( '@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions' ) ); - -/** -* @name maybeBroadcastArrays -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-arrays} -*/ -setReadOnly( ns, 'maybeBroadcastArrays', require( '@stdlib/ndarray-base-maybe-broadcast-arrays' ) ); - -/** -* @name metaDataProps -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/meta-data-props} -*/ -setReadOnly( ns, 'metaDataProps', require( '@stdlib/ndarray-base-meta-data-props' ) ); - -/** -* @name minSignedIntegerDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/min-signed-integer-dtype} -*/ -setReadOnly( ns, 'minSignedIntegerDataType', require( '@stdlib/ndarray-base-min-signed-integer-dtype' ) ); - -/** -* @name minUnsignedIntegerDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/min-unsigned-integer-dtype} -*/ -setReadOnly( ns, 'minUnsignedIntegerDataType', require( '@stdlib/ndarray-base-min-unsigned-integer-dtype' ) ); - -/** -* @name minViewBufferIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/min-view-buffer-index} -*/ -setReadOnly( ns, 'minViewBufferIndex', require( '@stdlib/ndarray-base-min-view-buffer-index' ) ); - -/** -* @name minmaxViewBufferIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/minmax-view-buffer-index} -*/ -setReadOnly( ns, 'minmaxViewBufferIndex', require( '@stdlib/ndarray-base-minmax-view-buffer-index' ) ); - -/** -* @name nans -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nans} -*/ -setReadOnly( ns, 'nans', require( '@stdlib/ndarray-base-nans' ) ); - -/** -* @name nansLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nans-like} -*/ -setReadOnly( ns, 'nansLike', require( '@stdlib/ndarray-base-nans-like' ) ); - -/** -* @name ndarraylike2descriptor -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ndarraylike2descriptor} -*/ -setReadOnly( ns, 'ndarraylike2descriptor', require( '@stdlib/ndarray-base-ndarraylike2descriptor' ) ); - -/** -* @name ndarraylike2ndarray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ndarraylike2ndarray} -*/ -setReadOnly( ns, 'ndarraylike2ndarray', require( '@stdlib/ndarray-base-ndarraylike2ndarray' ) ); - -/** -* @name ndarraylike2object -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ndarraylike2object} -*/ -setReadOnly( ns, 'ndarraylike2object', require( '@stdlib/ndarray-base-ndarraylike2object' ) ); - -/** -* @name ndarraylike2scalar -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ndarraylike2scalar} -*/ -setReadOnly( ns, 'ndarraylike2scalar', require( '@stdlib/ndarray-base-ndarraylike2scalar' ) ); - -/** -* @name ndims -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ndims} -*/ -setReadOnly( ns, 'ndims', require( '@stdlib/ndarray-base-ndims' ) ); - -/** -* @name nextCartesianIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/next-cartesian-index} -*/ -setReadOnly( ns, 'nextCartesianIndex', require( '@stdlib/ndarray-base-next-cartesian-index' ) ); - -/** -* @name nonsingletonDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nonsingleton-dimensions} -*/ -setReadOnly( ns, 'nonsingletonDimensions', require( '@stdlib/ndarray-base-nonsingleton-dimensions' ) ); - -/** -* @name normalizeIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/normalize-index} -*/ -setReadOnly( ns, 'normalizeIndex', require( '@stdlib/ndarray-base-normalize-index' ) ); - -/** -* @name normalizeIndices -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/normalize-indices} -*/ -setReadOnly( ns, 'normalizeIndices', require( '@stdlib/ndarray-base-normalize-indices' ) ); - -/** -* @name nullary -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nullary} -*/ -setReadOnly( ns, 'nullary', require( '@stdlib/ndarray-base-nullary' ) ); - -/** -* @name nullaryLoopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nullary-loop-interchange-order} -*/ -setReadOnly( ns, 'nullaryLoopOrder', require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ) ); - -/** -* @name nullaryStrided1d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nullary-strided1d} -*/ -setReadOnly( ns, 'nullaryStrided1d', require( '@stdlib/ndarray-base-nullary-strided1d' ) ); - -/** -* @name nullaryStrided1dDispatch -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch} -*/ -setReadOnly( ns, 'nullaryStrided1dDispatch', require( '@stdlib/ndarray-base-nullary-strided1d-dispatch' ) ); - -/** -* @name nullaryStrided1dDispatchFactory -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nullary-strided1d-dispatch-factory} -*/ -setReadOnly( ns, 'nullaryStrided1dDispatchFactory', require( '@stdlib/ndarray-base-nullary-strided1d-dispatch-factory' ) ); - -/** -* @name nullaryBlockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nullary-tiling-block-size} -*/ -setReadOnly( ns, 'nullaryBlockSize', require( '@stdlib/ndarray-base-nullary-tiling-block-size' ) ); - -/** -* @name nulls -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nulls} -*/ -setReadOnly( ns, 'nulls', require( '@stdlib/ndarray-base-nulls' ) ); - -/** -* @name nullsLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/nulls-like} -*/ -setReadOnly( ns, 'nullsLike', require( '@stdlib/ndarray-base-nulls-like' ) ); - -/** -* @name numel -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/numel} -*/ -setReadOnly( ns, 'numel', require( '@stdlib/ndarray-base-numel' ) ); - -/** -* @name numelDimension -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/numel-dimension} -*/ -setReadOnly( ns, 'numelDimension', require( '@stdlib/ndarray-base-numel-dimension' ) ); - -/** -* @name offset -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/offset} -*/ -setReadOnly( ns, 'offset', require( '@stdlib/ndarray-base-offset' ) ); - -/** -* @name offsets -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/offsets} -*/ -setReadOnly( ns, 'offsets', require( '@stdlib/ndarray-base-offsets' ) ); - -/** -* @name ones -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ones} -*/ -setReadOnly( ns, 'ones', require( '@stdlib/ndarray-base-ones' ) ); - -/** -* @name onesLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ones-like} -*/ -setReadOnly( ns, 'onesLike', require( '@stdlib/ndarray-base-ones-like' ) ); - -/** -* @name order -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/order} -*/ -setReadOnly( ns, 'order', require( '@stdlib/ndarray-base-order' ) ); - -/** -* @name outputDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/output-dtype} -*/ -setReadOnly( ns, 'outputDataType', require( '@stdlib/ndarray-base-output-dtype' ) ); - -/** -* @name outputOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/output-order} -*/ -setReadOnly( ns, 'outputOrder', require( '@stdlib/ndarray-base-output-order' ) ); - -/** -* @name outputPolicyEnum2Str -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/output-policy-enum2str} -*/ -setReadOnly( ns, 'outputPolicyEnum2Str', require( '@stdlib/ndarray-base-output-policy-enum2str' ) ); - -/** -* @name outputPolicyResolveEnum -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-enum} -*/ -setReadOnly( ns, 'outputPolicyResolveEnum', require( '@stdlib/ndarray-base-output-policy-resolve-enum' ) ); - -/** -* @name outputPolicyResolveStr -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-str} -*/ -setReadOnly( ns, 'outputPolicyResolveStr', require( '@stdlib/ndarray-base-output-policy-resolve-str' ) ); - -/** -* @name outputPolicyStr2Enum -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/output-policy-str2enum} -*/ -setReadOnly( ns, 'outputPolicyStr2Enum', require( '@stdlib/ndarray-base-output-policy-str2enum' ) ); - -/** -* @name pop -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/pop} -*/ -setReadOnly( ns, 'pop', require( '@stdlib/ndarray-base-pop' ) ); - -/** -* @name prependSingletonDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/prepend-singleton-dimensions} -*/ -setReadOnly( ns, 'prependSingletonDimensions', require( '@stdlib/ndarray-base-prepend-singleton-dimensions' ) ); - -/** -* @name promoteDataTypes -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/promote-dtypes} -*/ -setReadOnly( ns, 'promoteDataTypes', require( '@stdlib/ndarray-base-promote-dtypes' ) ); - -/** -* @name quaternaryLoopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/quaternary-loop-interchange-order} -*/ -setReadOnly( ns, 'quaternaryLoopOrder', require( '@stdlib/ndarray-base-quaternary-loop-interchange-order' ) ); - -/** -* @name quaternaryBlockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/quaternary-tiling-block-size} -*/ -setReadOnly( ns, 'quaternaryBlockSize', require( '@stdlib/ndarray-base-quaternary-tiling-block-size' ) ); - -/** -* @name quinaryLoopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/quinary-loop-interchange-order} -*/ -setReadOnly( ns, 'quinaryLoopOrder', require( '@stdlib/ndarray-base-quinary-loop-interchange-order' ) ); - -/** -* @name quinaryBlockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/quinary-tiling-block-size} -*/ -setReadOnly( ns, 'quinaryBlockSize', require( '@stdlib/ndarray-base-quinary-tiling-block-size' ) ); - -/** -* @name reinterpretBoolean -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reinterpret-boolean} -*/ -setReadOnly( ns, 'reinterpretBoolean', require( '@stdlib/ndarray-base-reinterpret-boolean' ) ); - -/** -* @name reinterpretComplex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reinterpret-complex} -*/ -setReadOnly( ns, 'reinterpretComplex', require( '@stdlib/ndarray-base-reinterpret-complex' ) ); - -/** -* @name reinterpretComplex64 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reinterpret-complex64} -*/ -setReadOnly( ns, 'reinterpretComplex64', require( '@stdlib/ndarray-base-reinterpret-complex64' ) ); - -/** -* @name reinterpretComplex128 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reinterpret-complex128} -*/ -setReadOnly( ns, 'reinterpretComplex128', require( '@stdlib/ndarray-base-reinterpret-complex128' ) ); - -/** -* @name removeSingletonDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/remove-singleton-dimensions} -*/ -setReadOnly( ns, 'removeSingletonDimensions', require( '@stdlib/ndarray-base-remove-singleton-dimensions' ) ); - -/** -* @name reverse -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reverse} -*/ -setReadOnly( ns, 'reverse', require( '@stdlib/ndarray-base-reverse' ) ); - -/** -* @name reverseDimension -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reverse-dimension} -*/ -setReadOnly( ns, 'reverseDimension', require( '@stdlib/ndarray-base-reverse-dimension' ) ); - -/** -* @name reverseDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/reverse-dimensions} -*/ -setReadOnly( ns, 'reverseDimensions', require( '@stdlib/ndarray-base-reverse-dimensions' ) ); - -/** -* @name rot90 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/rot90} -*/ -setReadOnly( ns, 'rot90', require( '@stdlib/ndarray-base-rot90' ) ); - -/** -* @name rot180 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/rot180} -*/ -setReadOnly( ns, 'rot180', require( '@stdlib/ndarray-base-rot180' ) ); - -/** -* @name rotl90 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/rotl90} -*/ -setReadOnly( ns, 'rotl90', require( '@stdlib/ndarray-base-rotl90' ) ); - -/** -* @name rotr90 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/rotr90} -*/ -setReadOnly( ns, 'rotr90', require( '@stdlib/ndarray-base-rotr90' ) ); - -/** -* @name serializeMetaData -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/serialize-meta-data} -*/ -setReadOnly( ns, 'serializeMetaData', require( '@stdlib/ndarray-base-serialize-meta-data' ) ); - -/** -* @name setDescriptorOffsets -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/set-descriptor-offsets} -*/ -setReadOnly( ns, 'setDescriptorOffsets', require( '@stdlib/ndarray-base-set-descriptor-offsets' ) ); - -/** -* @name shape -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/shape} -*/ -setReadOnly( ns, 'shape', require( '@stdlib/ndarray-base-shape' ) ); - -/** -* @name shape2strides -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/shape2strides} -*/ -setReadOnly( ns, 'shape2strides', require( '@stdlib/ndarray-base-shape2strides' ) ); - -/** -* @name shift -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/shift} -*/ -setReadOnly( ns, 'shift', require( '@stdlib/ndarray-base-shift' ) ); - -/** -* @name singletonDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/singleton-dimensions} -*/ -setReadOnly( ns, 'singletonDimensions', require( '@stdlib/ndarray-base-singleton-dimensions' ) ); - -/** -* @name slice -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice} -*/ -setReadOnly( ns, 'slice', require( '@stdlib/ndarray-base-slice' ) ); - -/** -* @name sliceAssign -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice-assign} -*/ -setReadOnly( ns, 'sliceAssign', require( '@stdlib/ndarray-base-slice-assign' ) ); - -/** -* @name sliceDimension -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice-dimension} -*/ -setReadOnly( ns, 'sliceDimension', require( '@stdlib/ndarray-base-slice-dimension' ) ); - -/** -* @name sliceDimensionFrom -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice-dimension-from} -*/ -setReadOnly( ns, 'sliceDimensionFrom', require( '@stdlib/ndarray-base-slice-dimension-from' ) ); - -/** -* @name sliceDimensionTo -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice-dimension-to} -*/ -setReadOnly( ns, 'sliceDimensionTo', require( '@stdlib/ndarray-base-slice-dimension-to' ) ); - -/** -* @name sliceFrom -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice-from} -*/ -setReadOnly( ns, 'sliceFrom', require( '@stdlib/ndarray-base-slice-from' ) ); - -/** -* @name sliceTo -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/slice-to} -*/ -setReadOnly( ns, 'sliceTo', require( '@stdlib/ndarray-base-slice-to' ) ); - -/** -* @name some -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/some} -*/ -setReadOnly( ns, 'some', require( '@stdlib/ndarray-base-some' ) ); - -/** -* @name someBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/some-by} -*/ -setReadOnly( ns, 'someBy', require( '@stdlib/ndarray-base-some-by' ) ); - -/** -* @name spreadDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/spread-dimensions} -*/ -setReadOnly( ns, 'spreadDimensions', require( '@stdlib/ndarray-base-spread-dimensions' ) ); - -/** -* @name stride -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/stride} -*/ -setReadOnly( ns, 'stride', require( '@stdlib/ndarray-base-stride' ) ); - -/** -* @name strides -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/strides} -*/ -setReadOnly( ns, 'strides', require( '@stdlib/ndarray-base-strides' ) ); - -/** -* @name strides2offset -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/strides2offset} -*/ -setReadOnly( ns, 'strides2offset', require( '@stdlib/ndarray-base-strides2offset' ) ); - -/** -* @name strides2order -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/strides2order} -*/ -setReadOnly( ns, 'strides2order', require( '@stdlib/ndarray-base-strides2order' ) ); - -/** -* @name sub2ind -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/sub2ind} -*/ -setReadOnly( ns, 'sub2ind', require( '@stdlib/ndarray-base-sub2ind' ) ); - -/** -* @name ternary -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ternary} -*/ -setReadOnly( ns, 'ternary', require( '@stdlib/ndarray-base-ternary' ) ); - -/** -* @name ternaryLoopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ternary-loop-interchange-order} -*/ -setReadOnly( ns, 'ternaryLoopOrder', require( '@stdlib/ndarray-base-ternary-loop-interchange-order' ) ); - -/** -* @name ternaryOutputDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ternary-output-dtype} -*/ -setReadOnly( ns, 'ternaryOutputDataType', require( '@stdlib/ndarray-base-ternary-output-dtype' ) ); - -/** -* @name ternaryBlockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/ternary-tiling-block-size} -*/ -setReadOnly( ns, 'ternaryBlockSize', require( '@stdlib/ndarray-base-ternary-tiling-block-size' ) ); - -/** -* @name tile -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/tile} -*/ -setReadOnly( ns, 'tile', require( '@stdlib/ndarray-base-tile' ) ); - -/** -* @name blockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/tiling-block-size} -*/ -setReadOnly( ns, 'blockSize', require( '@stdlib/ndarray-base-tiling-block-size' ) ); - -/** -* @name ndarray2array -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-array} -*/ -setReadOnly( ns, 'ndarray2array', require( '@stdlib/ndarray-base-to-array' ) ); - -/** -* @name toFlippedlr -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-flippedlr} -*/ -setReadOnly( ns, 'toFlippedlr', require( '@stdlib/ndarray-base-to-flippedlr' ) ); - -/** -* @name toFlippedud -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-flippedud} -*/ -setReadOnly( ns, 'toFlippedud', require( '@stdlib/ndarray-base-to-flippedud' ) ); - -/** -* @name toNormalizedIndices -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-normalized-indices} -*/ -setReadOnly( ns, 'toNormalizedIndices', require( '@stdlib/ndarray-base-to-normalized-indices' ) ); - -/** -* @name toReversed -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-reversed} -*/ -setReadOnly( ns, 'toReversed', require( '@stdlib/ndarray-base-to-reversed' ) ); - -/** -* @name toReversedDimension -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-reversed-dimension} -*/ -setReadOnly( ns, 'toReversedDimension', require( '@stdlib/ndarray-base-to-reversed-dimension' ) ); - -/** -* @name toReversedDimensions -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-reversed-dimensions} -*/ -setReadOnly( ns, 'toReversedDimensions', require( '@stdlib/ndarray-base-to-reversed-dimensions' ) ); - -/** -* @name toRot90 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-rot90} -*/ -setReadOnly( ns, 'toRot90', require( '@stdlib/ndarray-base-to-rot90' ) ); - -/** -* @name toRot180 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-rot180} -*/ -setReadOnly( ns, 'toRot180', require( '@stdlib/ndarray-base-to-rot180' ) ); - -/** -* @name toRotl90 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-rotl90} -*/ -setReadOnly( ns, 'toRotl90', require( '@stdlib/ndarray-base-to-rotl90' ) ); - -/** -* @name toRotr90 -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-rotr90} -*/ -setReadOnly( ns, 'toRotr90', require( '@stdlib/ndarray-base-to-rotr90' ) ); - -/** -* @name toTransposed -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-transposed} -*/ -setReadOnly( ns, 'toTransposed', require( '@stdlib/ndarray-base-to-transposed' ) ); - -/** -* @name toUnflattened -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-unflattened} -*/ -setReadOnly( ns, 'toUnflattened', require( '@stdlib/ndarray-base-to-unflattened' ) ); - -/** -* @name toUniqueNormalizedIndices -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/to-unique-normalized-indices} -*/ -setReadOnly( ns, 'toUniqueNormalizedIndices', require( '@stdlib/ndarray-base-to-unique-normalized-indices' ) ); - -/** -* @name transpose -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/transpose} -*/ -setReadOnly( ns, 'transpose', require( '@stdlib/ndarray-base-transpose' ) ); - -/** -* @name trues -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/trues} -*/ -setReadOnly( ns, 'trues', require( '@stdlib/ndarray-base-trues' ) ); - -/** -* @name truesLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/trues-like} -*/ -setReadOnly( ns, 'truesLike', require( '@stdlib/ndarray-base-trues-like' ) ); - -/** -* @name unary -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary} -*/ -setReadOnly( ns, 'unary', require( '@stdlib/ndarray-base-unary' ) ); - -/** -* @name unaryAccumulate -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-accumulate} -*/ -setReadOnly( ns, 'unaryAccumulate', require( '@stdlib/ndarray-base-unary-accumulate' ) ); - -/** -* @name unaryAddonDispatch -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-addon-dispatch} -*/ -setReadOnly( ns, 'unaryAddonDispatch', require( '@stdlib/ndarray-base-unary-addon-dispatch' ) ); - -/** -* @name unaryBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-by} -*/ -setReadOnly( ns, 'unaryBy', require( '@stdlib/ndarray-base-unary-by' ) ); - -/** -* @name unaryInputCastingDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-input-casting-dtype} -*/ -setReadOnly( ns, 'unaryInputCastingDataType', require( '@stdlib/ndarray-base-unary-input-casting-dtype' ) ); - -/** -* @name unaryLoopOrder -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-loop-interchange-order} -*/ -setReadOnly( ns, 'unaryLoopOrder', require( '@stdlib/ndarray-base-unary-loop-interchange-order' ) ); - -/** -* @name unaryOutputDataType -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-output-dtype} -*/ -setReadOnly( ns, 'unaryOutputDataType', require( '@stdlib/ndarray-base-unary-output-dtype' ) ); - -/** -* @name unaryReduceStrided1d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d} -*/ -setReadOnly( ns, 'unaryReduceStrided1d', require( '@stdlib/ndarray-base-unary-reduce-strided1d' ) ); - -/** -* @name unaryReduceStrided1dAssignStruct -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-assign-struct} -*/ -setReadOnly( ns, 'unaryReduceStrided1dAssignStruct', require( '@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct' ) ); - -/** -* @name unaryReduceStrided1dBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-by} -*/ -setReadOnly( ns, 'unaryReduceStrided1dBy', require( '@stdlib/ndarray-base-unary-reduce-strided1d-by' ) ); - -/** -* @name unaryReduceStrided1dDispatch -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch} -*/ -setReadOnly( ns, 'unaryReduceStrided1dDispatch', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch' ) ); - -/** -* @name unaryReduceStrided1dDispatchBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by} -*/ -setReadOnly( ns, 'unaryReduceStrided1dDispatchBy', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by' ) ); - -/** -* @name unaryReduceStrided1dDispatchByFactory -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-by-factory} -*/ -setReadOnly( ns, 'unaryReduceStrided1dDispatchByFactory', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory' ) ); - -/** -* @name unaryReduceStrided1dDispatchFactory -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-strided1d-dispatch-factory} -*/ -setReadOnly( ns, 'unaryReduceStrided1dDispatchFactory', require( '@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory' ) ); - -/** -* @name unaryReduceSubarray -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray} -*/ -setReadOnly( ns, 'unaryReduceSubarray', require( '@stdlib/ndarray-base-unary-reduce-subarray' ) ); - -/** -* @name unaryReduceSubarrayBy -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-reduce-subarray-by} -*/ -setReadOnly( ns, 'unaryReduceSubarrayBy', require( '@stdlib/ndarray-base-unary-reduce-subarray-by' ) ); - -/** -* @name unaryStrided1d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-strided1d} -*/ -setReadOnly( ns, 'unaryStrided1d', require( '@stdlib/ndarray-base-unary-strided1d' ) ); - -/** -* @name unaryStrided1dDispatch -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch} -*/ -setReadOnly( ns, 'unaryStrided1dDispatch', require( '@stdlib/ndarray-base-unary-strided1d-dispatch' ) ); - -/** -* @name unaryStrided1dDispatchFactory -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-strided1d-dispatch-factory} -*/ -setReadOnly( ns, 'unaryStrided1dDispatchFactory', require( '@stdlib/ndarray-base-unary-strided1d-dispatch-factory' ) ); - -/** -* @name unaryBlockSize -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unary-tiling-block-size} -*/ -setReadOnly( ns, 'unaryBlockSize', require( '@stdlib/ndarray-base-unary-tiling-block-size' ) ); - -/** -* @name unflatten -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unflatten} -*/ -setReadOnly( ns, 'unflatten', require( '@stdlib/ndarray-base-unflatten' ) ); - -/** -* @name unflattenShape -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/unflatten-shape} -*/ -setReadOnly( ns, 'unflattenShape', require( '@stdlib/ndarray-base-unflatten-shape' ) ); - -/** -* @name vind2bind -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/vind2bind} -*/ -setReadOnly( ns, 'vind2bind', require( '@stdlib/ndarray-base-vind2bind' ) ); - -/** -* @name wrapIndex -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/wrap-index} -*/ -setReadOnly( ns, 'wrapIndex', require( '@stdlib/ndarray-base-wrap-index' ) ); - -/** -* @name zeros -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/zeros} -*/ -setReadOnly( ns, 'zeros', require( '@stdlib/ndarray-base-zeros' ) ); - -/** -* @name zerosLike -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/zeros-like} -*/ -setReadOnly( ns, 'zerosLike', require( '@stdlib/ndarray-base-zeros-like' ) ); - -/** -* @name zip2views1d -* @memberof ns -* @readonly -* @type {Function} -* @see {@link module:@stdlib/ndarray/base/zip2views1d} -*/ -setReadOnly( ns, 'zip2views1d', require( '@stdlib/ndarray-base-zip2views1d' ) ); - - -// EXPORTS // - -module.exports = ns; diff --git a/package.json b/package.json index 7f149e0..18c750f 100644 --- a/package.json +++ b/package.json @@ -3,30 +3,7 @@ "version": "0.4.1", "description": "Base ndarray.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "lib/index.js", - "directories": { - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "main": "./index.js", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -35,573 +12,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/ndarray-base-any": "^0.1.1", - "@stdlib/ndarray-base-any-by": "^0.1.1", - "@stdlib/ndarray-base-append-singleton-dimensions": "github:stdlib-js/ndarray-base-append-singleton-dimensions#main", - "@stdlib/ndarray-base-assert": "^0.4.1", - "@stdlib/ndarray-base-assign": "^0.2.1", - "@stdlib/ndarray-base-assign-diagonal": "github:stdlib-js/ndarray-base-assign-diagonal#main", - "@stdlib/ndarray-base-assign-scalar": "github:stdlib-js/ndarray-base-assign-scalar#main", - "@stdlib/ndarray-base-atleast1d": "github:stdlib-js/ndarray-base-atleast1d#main", - "@stdlib/ndarray-base-atleast2d": "github:stdlib-js/ndarray-base-atleast2d#main", - "@stdlib/ndarray-base-atleast3d": "github:stdlib-js/ndarray-base-atleast3d#main", - "@stdlib/ndarray-base-atleastnd": "github:stdlib-js/ndarray-base-atleastnd#main", - "@stdlib/ndarray-base-binary": "^0.1.1", - "@stdlib/ndarray-base-binary-input-casting-dtype": "^0.1.1", - "@stdlib/ndarray-base-binary-loop-interchange-order": "^0.2.4", - "@stdlib/ndarray-base-binary-output-dtype": "^0.1.1", - "@stdlib/ndarray-base-binary-reduce-strided1d": "^0.1.1", - "@stdlib/ndarray-base-binary-reduce-strided1d-dispatch": "^0.1.1", - "@stdlib/ndarray-base-binary-reduce-strided1d-dispatch-factory": "^0.0.1", - "@stdlib/ndarray-base-binary-tiling-block-size": "^0.2.3", - "@stdlib/ndarray-base-bind2vind": "^0.2.3", - "@stdlib/ndarray-base-broadcast-array": "^0.2.4", - "@stdlib/ndarray-base-broadcast-array-except-dimensions": "^0.1.1", - "@stdlib/ndarray-base-broadcast-arrays": "^0.2.3", - "@stdlib/ndarray-base-broadcast-scalar": "^0.2.4", - "@stdlib/ndarray-base-broadcast-scalar-like": "^0.1.1", - "@stdlib/ndarray-base-broadcast-shapes": "^0.2.3", - "@stdlib/ndarray-base-buffer": "^0.3.1", - "@stdlib/ndarray-base-buffer-ctors": "^0.4.1", - "@stdlib/ndarray-base-buffer-dtype": "^0.4.1", - "@stdlib/ndarray-base-buffer-dtype-enum": "^0.3.1", - "@stdlib/ndarray-base-bytes-per-element": "^0.3.1", - "@stdlib/ndarray-base-char2dtype": "^0.2.3", - "@stdlib/ndarray-base-clamp-index": "^0.2.3", - "@stdlib/ndarray-base-clip-index": "github:stdlib-js/ndarray-base-clip-index#main", - "@stdlib/ndarray-base-complement-shape": "^0.1.1", - "@stdlib/ndarray-base-consensus-order": "github:stdlib-js/ndarray-base-consensus-order#main", - "@stdlib/ndarray-base-copy": "^0.1.1", - "@stdlib/ndarray-base-count-falsy": "^0.1.1", - "@stdlib/ndarray-base-count-if": "^0.1.1", - "@stdlib/ndarray-base-count-truthy": "^0.1.1", - "@stdlib/ndarray-base-ctor": "^0.3.1", - "@stdlib/ndarray-base-data-buffer": "^0.2.3", - "@stdlib/ndarray-base-descriptor": "github:stdlib-js/ndarray-base-descriptor#main", - "@stdlib/ndarray-base-diagonal": "github:stdlib-js/ndarray-base-diagonal#main", - "@stdlib/ndarray-base-dtype": "^0.2.3", - "@stdlib/ndarray-base-dtype-alignment": "^0.1.1", - "@stdlib/ndarray-base-dtype-char": "^0.3.1", - "@stdlib/ndarray-base-dtype-chars": "^0.1.1", - "@stdlib/ndarray-base-dtype-desc": "^0.3.1", - "@stdlib/ndarray-base-dtype-enum2str": "^0.2.3", - "@stdlib/ndarray-base-dtype-enums": "^0.1.1", - "@stdlib/ndarray-base-dtype-objects": "^0.1.1", - "@stdlib/ndarray-base-dtype-resolve-enum": "^0.3.1", - "@stdlib/ndarray-base-dtype-resolve-str": "^0.3.1", - "@stdlib/ndarray-base-dtype-str2enum": "^0.2.3", - "@stdlib/ndarray-base-dtype-strings": "^0.1.1", - "@stdlib/ndarray-base-dtype2c": "^0.3.1", - "@stdlib/ndarray-base-dtypes2enums": "^0.1.1", - "@stdlib/ndarray-base-dtypes2signatures": "^0.2.3", - "@stdlib/ndarray-base-dtypes2strings": "^0.1.1", - "@stdlib/ndarray-base-empty": "^0.3.2", - "@stdlib/ndarray-base-empty-like": "^0.3.1", - "@stdlib/ndarray-base-every": "^0.1.1", - "@stdlib/ndarray-base-every-by": "^0.1.1", - "@stdlib/ndarray-base-expand-dimensions": "^0.3.1", - "@stdlib/ndarray-base-falses": "github:stdlib-js/ndarray-base-falses#main", - "@stdlib/ndarray-base-falses-like": "github:stdlib-js/ndarray-base-falses-like#main", - "@stdlib/ndarray-base-fill": "^0.1.1", - "@stdlib/ndarray-base-fill-by": "^0.1.1", - "@stdlib/ndarray-base-fill-diagonal": "github:stdlib-js/ndarray-base-fill-diagonal#main", - "@stdlib/ndarray-base-find": "^0.1.1", - "@stdlib/ndarray-base-flag": "^0.2.3", - "@stdlib/ndarray-base-flags": "^0.2.3", - "@stdlib/ndarray-base-flatten-shape": "^0.1.1", - "@stdlib/ndarray-base-flatten-shape-from": "^0.1.1", - "@stdlib/ndarray-base-fliplr": "^0.2.3", - "@stdlib/ndarray-base-flipud": "^0.2.3", - "@stdlib/ndarray-base-for-each": "^0.1.2", - "@stdlib/ndarray-base-from-array": "^0.1.1", - "@stdlib/ndarray-base-from-scalar": "^0.2.3", - "@stdlib/ndarray-base-from-scalar-like": "^0.1.1", - "@stdlib/ndarray-base-full": "github:stdlib-js/ndarray-base-full#main", - "@stdlib/ndarray-base-full-by": "github:stdlib-js/ndarray-base-full-by#main", - "@stdlib/ndarray-base-includes": "^0.1.1", - "@stdlib/ndarray-base-ind": "^0.2.3", - "@stdlib/ndarray-base-ind2sub": "^0.2.3", - "@stdlib/ndarray-base-iteration-order": "^0.2.3", - "@stdlib/ndarray-base-loop-interchange-order": "^0.1.1", - "@stdlib/ndarray-base-map": "^0.1.1", - "@stdlib/ndarray-base-max-view-buffer-index": "^0.2.3", - "@stdlib/ndarray-base-maybe-broadcast-array": "^0.2.5", - "@stdlib/ndarray-base-maybe-broadcast-array-except-dimensions": "github:stdlib-js/ndarray-base-maybe-broadcast-array-except-dimensions#main", - "@stdlib/ndarray-base-maybe-broadcast-arrays": "^0.2.2", - "@stdlib/ndarray-base-meta-data-props": "^0.2.3", - "@stdlib/ndarray-base-min-signed-integer-dtype": "^0.1.1", - "@stdlib/ndarray-base-min-unsigned-integer-dtype": "^0.1.1", - "@stdlib/ndarray-base-min-view-buffer-index": "^0.2.3", - "@stdlib/ndarray-base-minmax-view-buffer-index": "^0.2.3", - "@stdlib/ndarray-base-nans": "github:stdlib-js/ndarray-base-nans#main", - "@stdlib/ndarray-base-nans-like": "github:stdlib-js/ndarray-base-nans-like#main", - "@stdlib/ndarray-base-ndarraylike2descriptor": "github:stdlib-js/ndarray-base-ndarraylike2descriptor#main", - "@stdlib/ndarray-base-ndarraylike2ndarray": "^0.1.1", - "@stdlib/ndarray-base-ndarraylike2object": "^0.2.3", - "@stdlib/ndarray-base-ndarraylike2scalar": "^0.1.1", - "@stdlib/ndarray-base-ndims": "^0.2.3", - "@stdlib/ndarray-base-next-cartesian-index": "^0.2.3", - "@stdlib/ndarray-base-nonsingleton-dimensions": "^0.2.3", - "@stdlib/ndarray-base-normalize-index": "^0.2.3", - "@stdlib/ndarray-base-normalize-indices": "^0.1.1", - "@stdlib/ndarray-base-nullary": "^0.3.2", - "@stdlib/ndarray-base-nullary-loop-interchange-order": "^0.2.3", - "@stdlib/ndarray-base-nullary-strided1d": "^0.1.1", - "@stdlib/ndarray-base-nullary-strided1d-dispatch": "^0.1.1", - "@stdlib/ndarray-base-nullary-strided1d-dispatch-factory": "^0.0.1", - "@stdlib/ndarray-base-nullary-tiling-block-size": "^0.2.3", - "@stdlib/ndarray-base-nulls": "github:stdlib-js/ndarray-base-nulls#main", - "@stdlib/ndarray-base-nulls-like": "github:stdlib-js/ndarray-base-nulls-like#main", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-numel-dimension": "^0.3.3", - "@stdlib/ndarray-base-offset": "^0.2.3", - "@stdlib/ndarray-base-offsets": "github:stdlib-js/ndarray-base-offsets#main", - "@stdlib/ndarray-base-ones": "github:stdlib-js/ndarray-base-ones#main", - "@stdlib/ndarray-base-ones-like": "github:stdlib-js/ndarray-base-ones-like#main", - "@stdlib/ndarray-base-order": "^0.2.3", - "@stdlib/ndarray-base-output-dtype": "^0.1.1", - "@stdlib/ndarray-base-output-order": "github:stdlib-js/ndarray-base-output-order#main", - "@stdlib/ndarray-base-output-policy-enum2str": "^0.2.3", - "@stdlib/ndarray-base-output-policy-resolve-enum": "^0.2.1", - "@stdlib/ndarray-base-output-policy-resolve-str": "^0.2.3", - "@stdlib/ndarray-base-output-policy-str2enum": "^0.2.3", - "@stdlib/ndarray-base-pop": "^0.1.1", - "@stdlib/ndarray-base-prepend-singleton-dimensions": "^0.3.1", - "@stdlib/ndarray-base-promote-dtypes": "^0.1.1", - "@stdlib/ndarray-base-quaternary-loop-interchange-order": "^0.1.1", - "@stdlib/ndarray-base-quaternary-tiling-block-size": "^0.1.1", - "@stdlib/ndarray-base-quinary-loop-interchange-order": "^0.1.1", - "@stdlib/ndarray-base-quinary-tiling-block-size": "^0.1.1", - "@stdlib/ndarray-base-reinterpret-boolean": "github:stdlib-js/ndarray-base-reinterpret-boolean#main", - "@stdlib/ndarray-base-reinterpret-complex": "github:stdlib-js/ndarray-base-reinterpret-complex#main", - "@stdlib/ndarray-base-reinterpret-complex128": "github:stdlib-js/ndarray-base-reinterpret-complex128#main", - "@stdlib/ndarray-base-reinterpret-complex64": "github:stdlib-js/ndarray-base-reinterpret-complex64#main", - "@stdlib/ndarray-base-remove-singleton-dimensions": "^0.2.3", - "@stdlib/ndarray-base-reverse": "^0.3.1", - "@stdlib/ndarray-base-reverse-dimension": "^0.2.3", - "@stdlib/ndarray-base-reverse-dimensions": "github:stdlib-js/ndarray-base-reverse-dimensions#main", - "@stdlib/ndarray-base-rot180": "github:stdlib-js/ndarray-base-rot180#main", - "@stdlib/ndarray-base-rot90": "github:stdlib-js/ndarray-base-rot90#main", - "@stdlib/ndarray-base-rotl90": "github:stdlib-js/ndarray-base-rotl90#main", - "@stdlib/ndarray-base-rotr90": "github:stdlib-js/ndarray-base-rotr90#main", - "@stdlib/ndarray-base-serialize-meta-data": "^0.2.3", - "@stdlib/ndarray-base-set-descriptor-offsets": "github:stdlib-js/ndarray-base-set-descriptor-offsets#main", - "@stdlib/ndarray-base-shape": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-base-shift": "^0.1.1", - "@stdlib/ndarray-base-singleton-dimensions": "^0.2.3", - "@stdlib/ndarray-base-slice": "^0.2.3", - "@stdlib/ndarray-base-slice-assign": "^0.2.2", - "@stdlib/ndarray-base-slice-dimension": "^0.2.3", - "@stdlib/ndarray-base-slice-dimension-from": "^0.2.4", - "@stdlib/ndarray-base-slice-dimension-to": "^0.2.4", - "@stdlib/ndarray-base-slice-from": "^0.2.3", - "@stdlib/ndarray-base-slice-to": "^0.2.3", - "@stdlib/ndarray-base-some": "^0.1.1", - "@stdlib/ndarray-base-some-by": "^0.1.1", - "@stdlib/ndarray-base-spread-dimensions": "^0.1.1", - "@stdlib/ndarray-base-stride": "^0.2.3", - "@stdlib/ndarray-base-strides": "^0.2.3", - "@stdlib/ndarray-base-strides2offset": "^0.2.3", - "@stdlib/ndarray-base-strides2order": "^0.2.3", - "@stdlib/ndarray-base-sub2ind": "^0.2.3", - "@stdlib/ndarray-base-ternary": "^0.1.1", - "@stdlib/ndarray-base-ternary-loop-interchange-order": "^0.1.1", - "@stdlib/ndarray-base-ternary-output-dtype": "^0.1.1", - "@stdlib/ndarray-base-ternary-tiling-block-size": "^0.1.1", - "@stdlib/ndarray-base-tile": "github:stdlib-js/ndarray-base-tile#main", - "@stdlib/ndarray-base-tiling-block-size": "^0.1.1", - "@stdlib/ndarray-base-to-array": "^0.2.2", - "@stdlib/ndarray-base-to-flippedlr": "^0.1.1", - "@stdlib/ndarray-base-to-flippedud": "^0.1.1", - "@stdlib/ndarray-base-to-normalized-indices": "^0.1.1", - "@stdlib/ndarray-base-to-reversed": "^0.1.1", - "@stdlib/ndarray-base-to-reversed-dimension": "^0.1.1", - "@stdlib/ndarray-base-to-reversed-dimensions": "github:stdlib-js/ndarray-base-to-reversed-dimensions#main", - "@stdlib/ndarray-base-to-rot180": "github:stdlib-js/ndarray-base-to-rot180#main", - "@stdlib/ndarray-base-to-rot90": "github:stdlib-js/ndarray-base-to-rot90#main", - "@stdlib/ndarray-base-to-rotl90": "github:stdlib-js/ndarray-base-to-rotl90#main", - "@stdlib/ndarray-base-to-rotr90": "github:stdlib-js/ndarray-base-to-rotr90#main", - "@stdlib/ndarray-base-to-transposed": "github:stdlib-js/ndarray-base-to-transposed#main", - "@stdlib/ndarray-base-to-unflattened": "github:stdlib-js/ndarray-base-to-unflattened#main", - "@stdlib/ndarray-base-to-unique-normalized-indices": "^0.1.1", - "@stdlib/ndarray-base-transpose": "^0.2.4", - "@stdlib/ndarray-base-trues": "github:stdlib-js/ndarray-base-trues#main", - "@stdlib/ndarray-base-trues-like": "github:stdlib-js/ndarray-base-trues-like#main", - "@stdlib/ndarray-base-unary": "^0.3.1", - "@stdlib/ndarray-base-unary-accumulate": "^0.1.1", - "@stdlib/ndarray-base-unary-addon-dispatch": "^0.1.1", - "@stdlib/ndarray-base-unary-by": "^0.2.3", - "@stdlib/ndarray-base-unary-input-casting-dtype": "^0.1.1", - "@stdlib/ndarray-base-unary-loop-interchange-order": "^0.3.1", - "@stdlib/ndarray-base-unary-output-dtype": "^0.3.1", - "@stdlib/ndarray-base-unary-reduce-strided1d": "^0.1.1", - "@stdlib/ndarray-base-unary-reduce-strided1d-assign-struct": "^0.0.1", - "@stdlib/ndarray-base-unary-reduce-strided1d-by": "^0.1.1", - "@stdlib/ndarray-base-unary-reduce-strided1d-dispatch": "^0.0.1", - "@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by": "^0.0.1", - "@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-by-factory": "^0.0.1", - "@stdlib/ndarray-base-unary-reduce-strided1d-dispatch-factory": "^0.0.1", - "@stdlib/ndarray-base-unary-reduce-subarray": "^0.1.1", - "@stdlib/ndarray-base-unary-reduce-subarray-by": "^0.1.1", - "@stdlib/ndarray-base-unary-strided1d": "^0.1.1", - "@stdlib/ndarray-base-unary-strided1d-dispatch": "^0.1.1", - "@stdlib/ndarray-base-unary-strided1d-dispatch-factory": "^0.0.1", - "@stdlib/ndarray-base-unary-tiling-block-size": "^0.2.3", - "@stdlib/ndarray-base-unflatten": "github:stdlib-js/ndarray-base-unflatten#main", - "@stdlib/ndarray-base-unflatten-shape": "github:stdlib-js/ndarray-base-unflatten-shape#main", - "@stdlib/ndarray-base-vind2bind": "^0.2.3", - "@stdlib/ndarray-base-wrap-index": "^0.2.3", - "@stdlib/ndarray-base-zeros": "^0.3.1", - "@stdlib/ndarray-base-zeros-like": "^0.3.1", - "@stdlib/ndarray-base-zip2views1d": "^0.1.1", - "@stdlib/utils-define-read-only-property": "^0.2.3" - }, - "devDependencies": { - "@stdlib/array-base-accessor-getter": "^0.2.3", - "@stdlib/array-base-accessor-setter": "^0.2.3", - "@stdlib/array-base-any-is-entry-in": "^0.1.1", - "@stdlib/array-base-arraylike2object": "^0.2.2", - "@stdlib/array-base-assert-contains": "^0.2.3", - "@stdlib/array-base-assert-has-equal-values-indexed": "^0.1.1", - "@stdlib/array-base-assert-is-accessor-array": "^0.2.3", - "@stdlib/array-base-assert-is-booleanarray": "^0.0.3", - "@stdlib/array-base-assert-is-complex-typed-array": "^0.1.3", - "@stdlib/array-base-assert-is-complex128array": "^0.2.3", - "@stdlib/array-base-assert-is-complex64array": "^0.2.3", - "@stdlib/array-base-assert-is-sorted-ascending": "^0.1.1", - "@stdlib/array-base-cartesian-power": "^0.2.3", - "@stdlib/array-base-cartesian-product": "^0.2.3", - "@stdlib/array-base-cartesian-square": "^0.2.3", - "@stdlib/array-base-copy": "^0.2.3", - "@stdlib/array-base-copy-indexed": "^0.2.3", - "@stdlib/array-base-every-by": "^0.2.3", - "@stdlib/array-base-fill": "^0.1.1", - "@stdlib/array-base-filled": "^0.2.3", - "@stdlib/array-base-getter": "^0.2.3", - "@stdlib/array-base-indices-complement": "^0.1.1", - "@stdlib/array-base-insert-at": "^0.1.1", - "@stdlib/array-base-join": "^0.1.2", - "@stdlib/array-base-n-cartesian-product": "^0.2.3", - "@stdlib/array-base-nulls": "^0.1.1", - "@stdlib/array-base-ones": "^0.2.3", - "@stdlib/array-base-put": "^0.0.3", - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/array-base-reverse": "^0.2.3", - "@stdlib/array-base-setter": "^0.2.3", - "@stdlib/array-base-slice": "^0.3.1", - "@stdlib/array-base-take-indexed": "^0.2.3", - "@stdlib/array-base-take-indexed2": "^0.1.1", - "@stdlib/array-base-to-accessor-array": "^0.2.3", - "@stdlib/array-base-without": "^0.1.1", - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/array-base-zeros": "^0.2.3", - "@stdlib/array-base-zip": "^0.1.1", - "@stdlib/array-bool": "^0.1.2", - "@stdlib/array-buffer": "^0.2.3", - "@stdlib/array-cartesian-square": "^0.2.3", - "@stdlib/array-complex128": "^0.3.2", - "@stdlib/array-complex64": "^0.3.2", - "@stdlib/array-dataview": "^0.2.3", - "@stdlib/array-dtypes": "^0.4.1", - "@stdlib/array-empty": "^0.3.1", - "@stdlib/array-empty-like": "^0.3.1", - "@stdlib/array-filled": "^0.3.1", - "@stdlib/array-filled-by": "^0.3.1", - "@stdlib/array-float16": "github:stdlib-js/array-float16#main", - "@stdlib/array-float32": "^0.2.3", - "@stdlib/array-float64": "^0.2.3", - "@stdlib/array-int16": "^0.2.3", - "@stdlib/array-int32": "^0.2.3", - "@stdlib/array-int8": "^0.2.3", - "@stdlib/array-one-to": "^0.2.3", - "@stdlib/array-ones": "^0.2.2", - "@stdlib/array-struct-factory": "^0.1.1", - "@stdlib/array-typed": "^0.3.2", - "@stdlib/array-typed-complex-ctors": "^0.2.3", - "@stdlib/array-uint16": "^0.2.3", - "@stdlib/array-uint32": "^0.2.3", - "@stdlib/array-uint8": "^0.2.3", - "@stdlib/array-uint8c": "^0.2.3", - "@stdlib/array-zero-to": "^0.2.3", - "@stdlib/array-zeros": "^0.2.3", - "@stdlib/assert-has-bigint-support": "^0.2.3", - "@stdlib/assert-has-own-property": "^0.2.3", - "@stdlib/assert-has-property": "^0.2.3", - "@stdlib/assert-instance-of": "^0.3.1", - "@stdlib/assert-is-array": "^0.2.3", - "@stdlib/assert-is-array-array": "^0.2.3", - "@stdlib/assert-is-array-like-object": "^0.2.3", - "@stdlib/assert-is-boolean": "^0.2.3", - "@stdlib/assert-is-booleanarray": "^0.0.3", - "@stdlib/assert-is-browser": "^0.2.3", - "@stdlib/assert-is-buffer": "^0.2.3", - "@stdlib/assert-is-collection": "^0.2.3", - "@stdlib/assert-is-complex-like": "^0.2.4", - "@stdlib/assert-is-complex128array": "^0.2.3", - "@stdlib/assert-is-complex64": "^0.2.3", - "@stdlib/assert-is-complex64array": "^0.2.3", - "@stdlib/assert-is-dataview": "^0.2.3", - "@stdlib/assert-is-empty-collection": "^0.2.4", - "@stdlib/assert-is-equal-array": "^0.1.1", - "@stdlib/assert-is-equal-booleanarray": "^0.1.1", - "@stdlib/assert-is-float32array": "^0.2.3", - "@stdlib/assert-is-float64array": "^0.2.3", - "@stdlib/assert-is-function": "^0.2.3", - "@stdlib/assert-is-function-array": "^0.2.3", - "@stdlib/assert-is-int16array": "^0.2.3", - "@stdlib/assert-is-int32array": "^0.2.3", - "@stdlib/assert-is-int8array": "^0.2.3", - "@stdlib/assert-is-integer": "^0.2.3", - "@stdlib/assert-is-integer-array": "^0.2.3", - "@stdlib/assert-is-little-endian": "^0.2.3", - "@stdlib/assert-is-method": "^0.2.3", - "@stdlib/assert-is-ndarray-like": "^0.2.3", - "@stdlib/assert-is-nonnegative-integer": "^0.2.3", - "@stdlib/assert-is-nonnegative-integer-array": "^0.2.3", - "@stdlib/assert-is-number": "^0.2.3", - "@stdlib/assert-is-object": "^0.2.3", - "@stdlib/assert-is-plain-object": "^0.2.3", - "@stdlib/assert-is-positive-integer": "^0.2.3", - "@stdlib/assert-is-same-accessor-array": "^0.1.1", - "@stdlib/assert-is-same-array": "^0.2.3", - "@stdlib/assert-is-same-complex128array": "^0.2.3", - "@stdlib/assert-is-same-complex64array": "^0.2.3", - "@stdlib/assert-is-same-float32array": "^0.2.3", - "@stdlib/assert-is-same-float64array": "^0.2.3", - "@stdlib/assert-is-same-value": "^0.2.3", - "@stdlib/assert-is-string": "^0.2.3", - "@stdlib/assert-is-string-array": "^0.2.3", - "@stdlib/assert-is-struct": "^0.1.1", - "@stdlib/assert-is-struct-constructor-like": "^0.1.1", - "@stdlib/assert-is-typed-array-like": "^0.2.3", - "@stdlib/assert-is-uint16array": "^0.2.3", - "@stdlib/assert-is-uint32array": "^0.2.3", - "@stdlib/assert-is-uint8array": "^0.2.3", - "@stdlib/assert-is-uint8clampedarray": "^0.2.3", - "@stdlib/assert-is-undefined-or-null": "^0.2.3", - "@stdlib/bigint-ctor": "^0.2.3", - "@stdlib/blas-base-gscal": "^0.3.1", - "@stdlib/blas-base-ndarray-ddot": "^0.1.1", - "@stdlib/blas-base-ndarray-gdot": "^0.1.1", - "@stdlib/blas-base-ndarray-sdot": "^0.1.1", - "@stdlib/blas-ext-base-dfill": "^0.3.1", - "@stdlib/blas-ext-base-gcusum": "^0.3.1", - "@stdlib/blas-ext-base-gfill": "^0.2.3", - "@stdlib/blas-ext-base-gindex-of-row": "^0.1.1", - "@stdlib/blas-ext-base-gsorthp": "^0.3.1", - "@stdlib/blas-ext-base-gsum": "^0.3.1", - "@stdlib/blas-ext-base-ndarray-dsorthp": "^0.1.1", - "@stdlib/blas-ext-base-ndarray-gcusum": "^0.1.1", - "@stdlib/blas-ext-base-ndarray-gsorthp": "^0.1.1", - "@stdlib/blas-ext-base-ndarray-ssorthp": "^0.1.1", - "@stdlib/blas-ext-base-zfill": "^0.1.1", - "@stdlib/blas-ext-zero-to": "github:stdlib-js/blas-ext-zero-to#main", - "@stdlib/boolean-ctor": "^0.2.3", - "@stdlib/buffer-alloc-unsafe": "^0.2.3", - "@stdlib/buffer-ctor": "^0.2.3", - "@stdlib/buffer-from-array": "^0.2.3", - "@stdlib/complex-base-cast-return": "^0.2.3", - "@stdlib/complex-ctors": "^0.2.3", - "@stdlib/complex-dtype": "^0.2.3", - "@stdlib/complex-float32-base-add": "^0.2.1", - "@stdlib/complex-float32-ctor": "^0.1.1", - "@stdlib/complex-float32-imag": "^0.1.2", - "@stdlib/complex-float32-real": "^0.1.2", - "@stdlib/complex-float64-base-add": "^0.2.1", - "@stdlib/complex-float64-base-add3": "^0.1.1", - "@stdlib/complex-float64-ctor": "^0.1.2", - "@stdlib/complex-float64-imag": "^0.1.2", - "@stdlib/complex-float64-real": "^0.1.2", - "@stdlib/console-log": "^0.2.3", - "@stdlib/console-log-each": "^0.2.4", - "@stdlib/console-log-each-map": "^0.1.1", - "@stdlib/constants-complex128-nan": "^0.2.3", - "@stdlib/constants-int16-max": "^0.2.3", - "@stdlib/constants-int16-min": "^0.2.3", - "@stdlib/constants-int32-max": "^0.3.1", - "@stdlib/constants-int32-min": "^0.2.3", - "@stdlib/constants-int8-max": "^0.2.3", - "@stdlib/constants-int8-min": "^0.2.3", - "@stdlib/constants-uint16-max": "^0.2.3", - "@stdlib/constants-uint32-max": "^0.2.3", - "@stdlib/constants-uint8-max": "^0.2.3", - "@stdlib/dstructs-struct": "^0.1.1", - "@stdlib/fs-read-dir": "^0.2.3", - "@stdlib/fs-read-file": "^0.2.3", - "@stdlib/fs-read-json": "^0.2.4", - "@stdlib/fs-unlink": "^0.2.3", - "@stdlib/fs-write-file": "^0.2.3", - "@stdlib/math-base-assert-is-integer": "^0.2.7", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-abs": "^0.2.3", - "@stdlib/math-base-special-cbrt": "^0.2.3", - "@stdlib/math-base-special-exp2": "^0.3.1", - "@stdlib/math-base-special-fast-max": "^0.3.1", - "@stdlib/math-base-special-fast-min": "^0.3.1", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-min": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/math-base-special-round": "^0.3.1", - "@stdlib/math-base-special-sqrt": "^0.2.3", - "@stdlib/math-base-special-trunc": "^0.2.3", - "@stdlib/ndarray-array": "^0.2.3", - "@stdlib/ndarray-base-assert-has-equal-shape": "^0.1.1", - "@stdlib/ndarray-base-assert-is-allowed-data-type-cast": "^0.3.1", - "@stdlib/ndarray-base-assert-is-binary-data-type": "github:stdlib-js/ndarray-base-assert-is-binary-data-type#main", - "@stdlib/ndarray-base-assert-is-boolean-data-type": "^0.2.1", - "@stdlib/ndarray-base-assert-is-boolean-index-data-type": "^0.1.1", - "@stdlib/ndarray-base-assert-is-buffer-length-compatible": "^0.1.3", - "@stdlib/ndarray-base-assert-is-buffer-length-compatible-shape": "^0.2.3", - "@stdlib/ndarray-base-assert-is-casting-mode": "^0.2.3", - "@stdlib/ndarray-base-assert-is-column-major": "^0.2.3", - "@stdlib/ndarray-base-assert-is-column-major-contiguous": "^0.2.3", - "@stdlib/ndarray-base-assert-is-column-major-string": "^0.1.1", - "@stdlib/ndarray-base-assert-is-complex-floating-point-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-complex-floating-point-data-type-char": "^0.0.1", - "@stdlib/ndarray-base-assert-is-contiguous": "^0.2.3", - "@stdlib/ndarray-base-assert-is-data-type": "^0.2.3", - "@stdlib/ndarray-base-assert-is-data-type-object": "^0.0.1", - "@stdlib/ndarray-base-assert-is-data-type-string": "^0.1.1", - "@stdlib/ndarray-base-assert-is-equal-data-type": "^0.1.1", - "@stdlib/ndarray-base-assert-is-floating-point-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-generic-data-type": "github:stdlib-js/ndarray-base-assert-is-generic-data-type#main", - "@stdlib/ndarray-base-assert-is-index-data-type": "^0.1.1", - "@stdlib/ndarray-base-assert-is-index-mode": "^0.2.3", - "@stdlib/ndarray-base-assert-is-input-casting-policy": "^0.1.1", - "@stdlib/ndarray-base-assert-is-integer-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-integer-index-data-type": "^0.1.1", - "@stdlib/ndarray-base-assert-is-mask-index-data-type": "^0.1.1", - "@stdlib/ndarray-base-assert-is-mostly-safe-data-type-cast": "^0.3.1", - "@stdlib/ndarray-base-assert-is-numeric-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-order": "^0.2.3", - "@stdlib/ndarray-base-assert-is-output-data-type-policy": "^0.1.1", - "@stdlib/ndarray-base-assert-is-read-only": "^0.2.3", - "@stdlib/ndarray-base-assert-is-real-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-real-floating-point-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-row-major": "^0.2.3", - "@stdlib/ndarray-base-assert-is-row-major-contiguous": "^0.2.2", - "@stdlib/ndarray-base-assert-is-row-major-string": "^0.1.1", - "@stdlib/ndarray-base-assert-is-safe-data-type-cast": "^0.3.1", - "@stdlib/ndarray-base-assert-is-same-kind-data-type-cast": "^0.3.1", - "@stdlib/ndarray-base-assert-is-scalar-mostly-safe-compatible": "^0.1.1", - "@stdlib/ndarray-base-assert-is-signed-integer-data-type": "^0.3.1", - "@stdlib/ndarray-base-assert-is-single-segment-compatible": "^0.2.3", - "@stdlib/ndarray-base-assert-is-struct-data-type": "^0.1.1", - "@stdlib/ndarray-base-assert-is-unsigned-integer-data-type": "^0.3.1", - "@stdlib/ndarray-base-kernels-generic-unary-strided1d-blocked": "github:stdlib-js/ndarray-base-kernels-generic-unary-strided1d-blocked#main", - "@stdlib/ndarray-base-kernels-generic-unary-strided1d-strategy": "github:stdlib-js/ndarray-base-kernels-generic-unary-strided1d-strategy#main", - "@stdlib/ndarray-base-kernels-utils-increment-offsets": "github:stdlib-js/ndarray-base-kernels-utils-increment-offsets#main", - "@stdlib/ndarray-casting-modes": "^0.2.3", - "@stdlib/ndarray-ctor": "^0.3.1", - "@stdlib/ndarray-data-buffer": "^0.2.3", - "@stdlib/ndarray-defaults": "^0.4.1", - "@stdlib/ndarray-dtype": "^0.2.3", - "@stdlib/ndarray-dtype-ctor": "^0.1.1", - "@stdlib/ndarray-dtypes": "^0.4.1", - "@stdlib/ndarray-empty": "^0.3.1", - "@stdlib/ndarray-from-scalar": "^0.3.1", - "@stdlib/ndarray-ind2sub": "^0.2.3", - "@stdlib/ndarray-index-modes": "^0.2.3", - "@stdlib/ndarray-input-casting-policies": "^0.1.1", - "@stdlib/ndarray-min-dtype": "^0.3.1", - "@stdlib/ndarray-mostly-safe-casts": "^0.4.1", - "@stdlib/ndarray-ndims": "^0.2.3", - "@stdlib/ndarray-next-dtype": "^0.3.2", - "@stdlib/ndarray-numel": "^0.2.3", - "@stdlib/ndarray-offset": "^0.2.3", - "@stdlib/ndarray-ones": "github:stdlib-js/ndarray-ones#main", - "@stdlib/ndarray-order": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/ndarray-output-dtype-policies": "^0.3.1", - "@stdlib/ndarray-promotion-rules": "^0.4.1", - "@stdlib/ndarray-safe-casts": "^0.4.1", - "@stdlib/ndarray-same-kind-casts": "^0.4.1", - "@stdlib/ndarray-shape": "^0.2.3", - "@stdlib/ndarray-slice": "^0.2.3", - "@stdlib/ndarray-stride": "^0.2.3", - "@stdlib/ndarray-strides": "^0.2.3", - "@stdlib/ndarray-to-array": "^0.2.2", - "@stdlib/ndarray-zeros": "^0.3.1", - "@stdlib/ndarray-zeros-like": "^0.3.2", - "@stdlib/number-float64-base-add": "^0.1.1", - "@stdlib/number-float64-base-add3": "^0.1.1", - "@stdlib/number-float64-base-from-int64-bytes": "^0.2.3", - "@stdlib/number-float64-base-identity": "^0.1.1", - "@stdlib/number-float64-base-to-int64-bytes": "^0.2.3", - "@stdlib/object-assign": "^0.2.3", - "@stdlib/object-inverse": "^0.1.1", - "@stdlib/random-array-bernoulli": "^0.2.2", - "@stdlib/random-array-discrete-uniform": "^0.2.2", - "@stdlib/random-array-normal": "^0.2.2", - "@stdlib/random-array-uniform": "^0.2.2", - "@stdlib/random-base-discrete-uniform": "^0.2.2", - "@stdlib/random-base-randu": "^0.2.3", - "@stdlib/random-base-uniform": "^0.2.3", - "@stdlib/random-discrete-uniform": "^0.1.1", - "@stdlib/random-uniform": "^0.1.1", - "@stdlib/slice-base-args2multislice": "^0.2.3", - "@stdlib/slice-base-nonreduced-dimensions": "^0.2.3", - "@stdlib/slice-base-normalize-multi-slice": "^0.2.4", - "@stdlib/slice-base-shape": "^0.2.3", - "@stdlib/slice-ctor": "^0.2.3", - "@stdlib/slice-multi": "^0.2.3", - "@stdlib/stats-base-ndarray-cumax": "^0.1.1", - "@stdlib/stats-base-ndarray-dcumax": "^0.1.1", - "@stdlib/stats-base-ndarray-dmax": "^0.1.1", - "@stdlib/stats-base-ndarray-max": "^0.1.1", - "@stdlib/stats-base-ndarray-max-by": "^0.1.1", - "@stdlib/stats-base-ndarray-scumax": "^0.1.1", - "@stdlib/stats-base-ndarray-smax": "^0.1.1", - "@stdlib/stats-base-ndarray-ztest": "^0.1.1", - "@stdlib/stats-base-ztest-one-sample-results-float64": "^0.0.1", - "@stdlib/strided-base-reinterpret-boolean": "^0.0.3", - "@stdlib/strided-base-reinterpret-complex": "^0.1.3", - "@stdlib/strided-base-reinterpret-complex128": "^0.2.3", - "@stdlib/strided-base-reinterpret-complex64": "^0.2.2", - "@stdlib/string-base-replace": "^0.2.3", - "@stdlib/string-format": "^0.2.3", - "@stdlib/string-left-pad": "^0.2.3", - "@stdlib/string-replace": "^0.2.3", - "@stdlib/string-right-pad": "^0.2.3", - "@stdlib/string-substring-after": "^0.2.3", - "@stdlib/string-substring-before": "^0.2.3", - "@stdlib/string-uppercase": "^0.3.1", - "@stdlib/time-current-year": "^0.2.3", - "@stdlib/utils-compose": "^0.2.3", - "@stdlib/utils-constant-function": "^0.2.3", - "@stdlib/utils-constructor-name": "^0.2.3", - "@stdlib/utils-define-nonenumerable-read-only-accessor": "^0.2.4", - "@stdlib/utils-define-nonenumerable-read-only-property": "^0.2.3", - "@stdlib/utils-define-read-write-accessor": "^0.2.3", - "@stdlib/utils-keys": "^0.2.3", - "@stdlib/utils-map2": "^0.2.2", - "@stdlib/utils-nary-function": "^0.2.4", - "@stdlib/utils-noop": "^0.2.3", - "@stdlib/utils-try-require": "^0.2.3", - "@stdlib/utils-unzip": "^0.2.3", - "proxyquire": "^2.0.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "stdtypes", diff --git a/stats_browser.html b/stats_browser.html new file mode 100644 index 0000000..81141bb --- /dev/null +++ b/stats_browser.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/stats_node.html b/stats_node.html new file mode 100644 index 0000000..5043c0d --- /dev/null +++ b/stats_node.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 1523f82..0000000 --- a/test/test.js +++ /dev/null @@ -1,40 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var objectKeys = require( '@stdlib/utils-keys' ); -var ns = require( './../lib' ); - - -// TESTS // - -tape( 'main export is an object', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ns, 'object', 'main export is an object' ); - t.end(); -}); - -tape( 'the exported object contains key-value pairs', function test( t ) { - var keys = objectKeys( ns ); - t.strictEqual( keys.length > 0, true, 'has keys' ); - t.end(); -});